学习Java的几大难题,你们都解决了吗?
Java很難學(xué),遇到很多問題,剛學(xué)的小伙伴多多少少還是有一些抱怨的,但是這都不是事,只要下定決心,我們就一定可以!下面小編來分享一下學(xué)習(xí)Java的一些難題。
一、面向?qū)ο蟮臍v史演變
搞清楚面向?qū)ο蟮臍v史演變,Java的每個(gè)特性都是基于面向?qū)ο螽a(chǎn)生的。Java就是面向?qū)ο蠖?#xff0c;Java就是一種思想。你們?nèi)耸植皇怯幸槐締⒚蓵衪hink in Java麼?
?
國外書籍用的是think,國內(nèi)的書籍都是深入理解/學(xué)習(xí)/深入淺出/30天掌握/教程XXXX字眼的書籍。腦袋沒毛病吧,隨便一本書平均下來都有500頁,各種深入理解,掌握過后。你的年齡也到該入土的時(shí)候了。
不是流行大數(shù)據(jù)麼?Hadoop是因?yàn)橐黄撐恼Q生的,論文的作者是google公司的員工。但是Hadoop 的誕生要比google公司來得快。在這點(diǎn)只能說Java干得漂亮,要不然你們要想體會(huì)這種黑科技至少需要5年以上。
有時(shí)候真的很羨慕國內(nèi)寫代碼的人,這些小學(xué)沒畢業(yè)的人居然可以拿到國外那些至少要初中畢業(yè)才能拿到的工資。而國外那些高中畢業(yè)的人只能去幫Java寫些源代碼義務(wù)勞動(dòng)。
二、面向?qū)ο?/strong>
在Java的類庫里面有很多的骨架實(shí)現(xiàn)。設(shè)計(jì)模式的出現(xiàn)要比Java早很多年。設(shè)計(jì)模式的思想的作者或鼻祖是緣于一個(gè)磚匠,搬磚的磚。
你們應(yīng)該很慶幸設(shè)計(jì)模式就只有20幾種,終歸到底是源于Java的特性也就這么幾個(gè)。國外做過研究人能同時(shí)記住的東西是7±2。很巧的是Java的特性也就7±2。但是7±2也就最多組成20幾種設(shè)計(jì)模式。
好了問題來了,你能記住幾個(gè)Java特性(Java特性最多也就是9個(gè)哦),如果你能全部記住,那么問題升華了,你精通多少種設(shè)計(jì)模式。如果你們背的話,我能從1背到10億。
三、多線程
多線程只能說太難了,Java在多線程的上很落后的。Volatile關(guān)鍵字反反復(fù)復(fù)更新了幾次背后原理實(shí)現(xiàn),對于偽共享的實(shí)現(xiàn)也是在1.8才加入的。
?
多線程,偽共享,鎖機(jī)制,同步機(jī)制,重鎖機(jī)制。這些在15年前是高級(jí)課題,也是為什么很多Java書籍都把多線程放在最后一章節(jié)。也是15年前存在的東西。
看到?jīng)]有,就算是人家把Java開源你們在技術(shù)上也會(huì)落后15年,因?yàn)镴DK現(xiàn)在才到1.8。為什么是15年前,因?yàn)?5年前摩爾定律不再適用了,intel的老板跪在地上說,如果CPU超過4.0G我公司要倒閉了。所以多核的時(shí)代來臨了。
?
回過頭來為什么說多線程難,學(xué)習(xí)多線程,你要搞清楚同步,異步,管程(什么是管程,就是Java文件代碼上加了synchronized關(guān)鍵字后,變成class文件后。synchronized關(guān)鍵字變成了Java虛擬機(jī)的Moniters命令的中文翻譯),鎖機(jī)制,阻塞,以及線程的幾種狀態(tài)。
什么順序一致性,原子性,有鎖,無鎖。安全性,讀寫同步/讀不用同步,寫同步。多核,compareAndSet,getAndSet,偽共享,高速緩存,Volatile關(guān)鍵字,系統(tǒng)總線,等等等等。
多線程機(jī)制雖然多,但是這不是思想的重要性。再我看來最重要的就是為什么10年就有AtomicInteger為什么現(xiàn)在只在原來的基礎(chǔ)上跟新了一個(gè)LongAdder, 為什么這兩個(gè)類都是同一個(gè)老頭寫的而不是年輕人。
為什么這兩個(gè)類都引用了sun.misc.Unsafe這個(gè)非公開類。為什么是不安全的。現(xiàn)在發(fā)現(xiàn)多線程是有多難了吧,沒有發(fā)現(xiàn)這段話比上面那段面向?qū)ο蟮淖謹(jǐn)?shù)都多了一倍麼。
? ? ? ?為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java入門教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要入門的資料歡迎加入學(xué)習(xí)交流群:9285,05736
總結(jié)
以上是生活随笔為你收集整理的学习Java的几大难题,你们都解决了吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 32获取外部中断状态_Linux中断一网
- 下一篇: Java中整型的缓存机制