大話Java持久層

基礎(chǔ)知識儲備:

  • Java SE(Java語言【java.lang】蛤奥、Java集合框架【java.util】)
  • Java I/O(java.io.味抖、java.nio..*)
  • Java 網(wǎng)絡(luò)(java.net.刷喜、java.rmi.没陡、javax.net.*)
  • Java 并發(fā)(java.util.concurrent.小腊、java.util.concurrent..*)

實際上Jdk的內(nèi)容非常多伏尼,除了上面提到的最常用的工具和方法脖旱,剩下的內(nèi)容堪遂,比如像java security、java Swing萌庆、java awt等溶褪,可能平時不常用,但作為一名合格的程序員践险,那些都有必要了解猿妈。

Java EE

  • Servlet
  • JDBC
  • JPA

Servlet是現(xiàn)代web應(yīng)用的基礎(chǔ)吹菱,基于其原理搭建的MVC框架,比如Spring MVC彭则、Struts等鳍刷,是我們這代Java工程師都一定會用到的。經(jīng)典的Java EE容器Tomcat俯抖、Jetty等也是現(xiàn)在每天都會用到的工具输瓜,因此,Servlet技術(shù)一定要深入掌握蚌成。JDBC和JPA是Java持久層“唯二”的技術(shù)前痘。JDBC更底層,更基礎(chǔ)担忧,JPA則是針對ORM框架的接口規(guī)范芹缔。
Java EE覆蓋到企業(yè)開發(fā)的方方面面,但因為其臃腫的設(shè)計瓶盛,已經(jīng)越來越跟不上時代的腳步了最欠,最近有傳言稱Oracle將放棄這項技術(shù),但不論Java EE的前景如何惩猫,我上面提到的那三門技術(shù)芝硬,都不會輕易消失。

JVM

操作字節(jié)碼:ASM轧房、cglib拌阴、javassist
JVM的內(nèi)存和體系結(jié)構(gòu)

Java的語言的方方面面又都和JVM有關(guān),但這部分內(nèi)容我還不是很了解奶镶,以后在補充 //TODO

持久層常用框架:

數(shù)據(jù)庫連接池

  • Apache DBCP
  • Druid
  • Tomcat jdbc pool
  • HikariCP

不知道為什么迟赃,我對連接池技術(shù)一直情有獨鐘,當(dāng)年接觸到的第一個連接池是c3p0厂镇,也正是從那是開始纤壁,我才有所謂“性能”、“效率”這些概念捺信∽妹剑“池”,是經(jīng)典的以空間換時間的方式迄靠,提升程序效率的概念秒咨。“池”的應(yīng)用非常廣泛掌挚,不光有數(shù)據(jù)庫連接池拭荤,還有線程池,緩存池等等疫诽。這項技術(shù)發(fā)展到現(xiàn)在已經(jīng)非常穩(wěn)定舅世,普通公司的項目只要使用連接池旦委,一般就沒什么問題。隨著時代的發(fā)展雏亚,連接池的功能也在不斷擴(kuò)充缨硝,阿里的Druid就提供了sql監(jiān)控的功能。所以現(xiàn)在看連接池是相關(guān)內(nèi)容罢低,就不能僅是為了實現(xiàn)功能(本來功能就不多)查辩,而是要深入的理解原理,并能夠自己動手實踐网持,開發(fā)出高效穩(wěn)定的服務(wù)組件宜岛。

持久層的中間件

  • ottor
  • yugong
  • Cobar
  • Sharding - JDBC
  • myCat

Java持久層中間件通常分為兩類,一類是分庫分表功舀,一類是數(shù)據(jù)遷移萍倡。前者是在融合了JDBC和數(shù)據(jù)庫連接池的基礎(chǔ)上,實現(xiàn)的面向數(shù)據(jù)庫的高級功能辟汰。當(dāng)系統(tǒng)的數(shù)據(jù)量上升到一定級別之后列敲,分庫分表是必然的選擇,使用中間件帖汞,就可以和應(yīng)用分離戴而,做到靈活的控制。而后者則是對Java I/O翩蘸、并發(fā)技術(shù)的高級應(yīng)用所意。一道經(jīng)典的面試題是給你一個上GB的文件,問你如何快速的找到其中出現(xiàn)頻率最高的一組詞匯催首,或者問你如何快速的統(tǒng)計出一份報表扶踊。等你深入掌握了第二類框架的運行原理之后,這些都不是問題翅帜。

ORM框架

  • hibernate
  • myBatis
  • Jfinal
  • nutz

SSH(Spring + Struts2 + Hibernate3)最火的時候,我剛剛工作命满,后來有人說hibernate不行了涝滴,大家都在用myBatis,于是緊跟著又有了SSM(myBatis)胶台。再后來歼疮,“云”、“微服務(wù)”成為當(dāng)前最炙手可熱的概念诈唬,傳統(tǒng)的ORM框架也漸漸沒有了往日的熱度韩脏,大家都轉(zhuǎn)頭去搞自己的輕量級的ORM和MVC框架,國內(nèi)比較著名的有Jfinal和nutz铸磅。ORM赡矢,實體映射成了老舊的代名詞.......但是杭朱,我不這么認(rèn)為。現(xiàn)在打開hibernate的官網(wǎng)吹散,發(fā)現(xiàn)它保持的生命力弧械,就在6月底,還發(fā)布了其最新的5.2.1版本空民。一個框架的成功都是有原因的刃唐,其中肯定有非常多值得學(xué)習(xí)的地方。只有你足夠了解它的時候界轩,你才能準(zhǔn)確的判斷画饥,自己究竟需不需要它。

Spring相關(guān)

  • Spring JDBC
  • Spring JPA
  • Spring DATA

其實看上文也知道浊猾,各種框架變來變?nèi)ザ陡剩荢pring的核心統(tǒng)治地方,一直屹立不倒与殃。能做到這點是一件非常了不起的事情单山,這和Spring一直堅持高效,堅持給程序員各式各樣的“糖果”有關(guān)系幅疼。漸漸的米奸,在應(yīng)用端,Spring已經(jīng)有了一統(tǒng)天下的姿勢爽篷。上面僅列舉了Spring在Java持久層的工作悴晰,除此之外,還有很多內(nèi)容逐工,就不在這里一一列舉了铡溪。

緩存

  • Ehcache
  • memcached
  • J2Cache

NOSql:非關(guān)系型數(shù)據(jù)庫

redis
mongoDB

緩存和非關(guān)系型數(shù)據(jù)庫很像,都是提供數(shù)據(jù)的冗余保存泪喊,從而提升性能棕硫,而且都可以分布式的部署,達(dá)到高可用袒啼。兩者有區(qū)別的地方哈扮,可能就在對數(shù)據(jù)結(jié)構(gòu)和存儲方式的差異。

RDBMS:關(guān)系型數(shù)據(jù)庫

Oracle
MySQL
postgresql

大公司里蚓再,都會有專門的DBA去做高可用和性能上的架構(gòu)滑肉,那是一塊相對獨立而且門檻較高的領(lǐng)域。作為應(yīng)用開發(fā)的技術(shù)人員摘仅,雖然不用考慮底層的架構(gòu)靶庙,但也仍需對自己寫過的每一條sql負(fù)責(zé),尤其是在輕型的架構(gòu)中娃属,底層更多的使用了原生的JDBC或myBatis六荒,這些都需要程序員們自己些sql护姆,當(dāng)系統(tǒng)存在一條“無厘頭”的sql時,再強大的架構(gòu)也有可能被搞垮恬吕。

其他技術(shù)

MQ中間件签则,反向代理服務(wù)器
linux操作系統(tǒng)

參考

數(shù)據(jù)庫相關(guān)中間件全家桶

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铐料,隨后出現(xiàn)的幾起案子渐裂,更是在濱河造成了極大的恐慌,老刑警劉巖钠惩,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柒凉,死亡現(xiàn)場離奇詭異,居然都是意外死亡篓跛,警方通過查閱死者的電腦和手機膝捞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愧沟,“玉大人蔬咬,你說我怎么就攤上這事°逅拢” “怎么了林艘?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長混坞。 經(jīng)常有香客問我狐援,道長,這世上最難降的妖魔是什么究孕? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任啥酱,我火速辦了婚禮,結(jié)果婚禮上厨诸,老公的妹妹穿的比我還像新娘镶殷。我一直安慰自己,他們只是感情好微酬,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布绘趋。 她就那樣靜靜地躺著,像睡著了一般得封。 火紅的嫁衣襯著肌膚如雪埋心。 梳的紋絲不亂的頭發(fā)上指郁,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天忙上,我揣著相機與錄音,去河邊找鬼闲坎。 笑死疫粥,一個胖子當(dāng)著我的面吹牛茬斧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梗逮,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼项秉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了慷彤?” 一聲冷哼從身側(cè)響起娄蔼,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎底哗,沒想到半個月后岁诉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡跋选,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年涕癣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片前标。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡坠韩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出炼列,到底是詐尸還是另有隱情只搁,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布唯鸭,位于F島的核電站须蜗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏目溉。R本人自食惡果不足惜明肮,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缭付。 院中可真熱鬧柿估,春花似錦、人聲如沸陷猫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绣檬。三九已至足陨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娇未,已是汗流浹背墨缘。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人镊讼。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓宽涌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝶棋。 傳聞我的和親對象是個殘疾皇子卸亮,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)玩裙,斷路器兼贸,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風(fēng)情閱讀 1,648評論 0 3
  • 是誰來自山川湖海 卻囿于晝夜 抑或是悲哀的嘲弄 帶著灰塵的眼淚 是誰的不安與悒郁 發(fā)著暗澀的光 既然被播撒情欲的種...
    胡唐閱讀 331評論 0 2
  • 今天被樂刻融資的消息刷屏,本來挺好一件健身行業(yè)幸事颜及,理應(yīng)祝福之甩苛。但是樂刻居然打出2017年全球要開5000家店的消...
    w_jeff閱讀 7,854評論 1 4