JAVA中最為關(guān)鍵的幾個(gè)知識點(diǎn)
想成為JAVA高手,你至少要非常熟悉并能自如地應(yīng)用如下幾個(gè)知識點(diǎn):
1.序列化機(jī)制.(有人認(rèn)為它并不是重要的技術(shù),我以我的經(jīng)驗(yàn)聲明,這是JAVA平臺第一重要的知識點(diǎn).)
2.RTTI機(jī)制
3.CALLBACK機(jī)制
4.反射機(jī)制
序列化:
是一切對象深度CLONE,對象的存儲與恢復(fù),對象的遠(yuǎn)程調(diào)用的基礎(chǔ),也就是說它是對象池化管理,分布式引用的基礎(chǔ),想想J2EE平臺如果不靠它能做什么?
RTTI:
是一切封裝的基礎(chǔ),沒有它,接口,抽象類,父類就沒有意義,如果封裝沒有了,同樣沒有父類,子類就不叫子類了.
CALLBACK:
CALLBACK首先是基于多線程的,沒有線程的調(diào)用就不要談回調(diào).子類調(diào)用父類的構(gòu)造方法叫回調(diào)用,那TMD的任何構(gòu)造對象都叫回調(diào)了,因?yàn)槿魏螌ο笾辽倮^承了Object,構(gòu)造時(shí)至少要調(diào)用Object的構(gòu)造方法.
CALLBACK機(jī)制:
一個(gè)主線程管理其它線程時(shí),不用輪詢方法檢查各個(gè)線程的狀態(tài),而是在子線程中出現(xiàn)某種狀態(tài)時(shí)通知主線程,啊,有人要按下我了,啊,我的值到達(dá)100了,(術(shù)語叫觸發(fā)了某種事件)這樣主線程收到這些消息再根據(jù)消息類型去調(diào)用相應(yīng)的方法.
一個(gè)例子,我(主線程)坐車去北京,當(dāng)車到北京時(shí)我要調(diào)用"下車"這個(gè)方法,如果不用回調(diào)用機(jī)制,我要不斷地問driver,到了沒有啊?如果我問超過三次而那個(gè)driver力氣又比我大的話,他肯定要打我,如果用回調(diào)用機(jī)制,就是用一個(gè)子線程(可以讓driver承擔(dān)這個(gè)角色)在那運(yùn)行,當(dāng)?shù)降臅r(shí)候通知我到了,我就調(diào)用"下車()",而不用過一會就問一次,這樣我可以省下時(shí)間睡覺或和車上的美眉聊天.
反射:
是RUNTIME的事,完成類的加載,類的分析,bean的自省等功能,JBUILDER為什么敲一個(gè)類的名稱后面就列出了它的成員變量和方法供你選擇?如果你想知道一個(gè)對象的某種方法被調(diào)用過多少次你用什么方法?這些知識可以讓你從一行Exception就能分析出錯(cuò)誤原因.以及自己實(shí)現(xiàn)classloader,安全管理等方面的工作.
文章出處:http://www.diybl.com/course/3_program/java/javashl/200726/10742.html