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