Java新手的一段代碼,到現(xiàn)在入職一年了竟然還沒搞懂?求解釋
如今的程序員,可以說是非常火熱的職業(yè)了。而Java作為應(yīng)用最為廣泛的編程語言之一,要說數(shù)業(yè)界最火的方向也不為過,市場上關(guān)于Java的書籍不知道有多少!網(wǎng)上關(guān)于Java的文章和資料也很多,雖然程序員的起步都是Helloworld,可是很多畢竟都是理論知識(shí),加上Java覆蓋得確實(shí)比較廣闊,這就讓得很多的Java新手的基礎(chǔ)不是很扎實(shí)。這不,近日有一位Java程序員表示:

可以看到,確實(shí)是一段比較基礎(chǔ)的代碼,很多程序員都能看得懂,于是網(wǎng)友們紛紛評(píng)論道:

可以看到,這位樓主的問題是不清楚為什么Null還能調(diào)用方法。于是有網(wǎng)友有在下方詳解道是因?yàn)闃侵鲗?duì)于類加載方面不是非常清楚,并不是Null的問題,而是因?yàn)殪o態(tài)方法的調(diào)用和類是否為Null不相關(guān)。不光如此,很多網(wǎng)友由此發(fā)現(xiàn)了這位樓主的問題,畢竟從事了一年的Java開發(fā)卻還不懂這個(gè)基礎(chǔ)問題,于是還有網(wǎng)友解釋:
- @書籍很多:講道理,應(yīng)該是編譯器優(yōu)化成了類的方法調(diào)用了,但是其實(shí)是沒有通過實(shí)例的,所以咯,并沒有npe。
- @技術(shù)附件:cmd里面Javac方法執(zhí)行完之后,靜態(tài)方法的調(diào)用和非靜態(tài)不一樣的,靜態(tài)方法的調(diào)用不需要Null對(duì)象啊,自然就沒問題。
- @睡覺啊是:建議樓主多去了解下方法區(qū)、堆、JVM之類的,人家t.m()這行IDE都提示你了,你還傻傻的問。
不光是Java,很多程序員新手在入門的時(shí)候可能學(xué)到的東西不是很全面,在某一方面的基礎(chǔ)不是很好其實(shí)是很正常的事情,我們只有把基礎(chǔ)學(xué)得扎實(shí)才能防止出現(xiàn)上述類似的情況!

























