我們一直在學(xué)習(xí)Java,但Java中總有一些概念含混不清,不論是對(duì)初級(jí)還是高級(jí)程序員都是如此。所以,這篇文章的目的就是弄清楚這些概念。讀完本文你會(huì)對(duì)這些概念有更深入的了解,還能弄清楚一切灰色的東西。
1、匿名類
Java匿名類很像局部類或內(nèi)聯(lián)類,只是沒有名字。我們可以利用匿名類,同時(shí)定義并實(shí)例化一個(gè)類。只有局部類僅被使用一次時(shí)才應(yīng)該這么做。匿名類不能有顯式定義的構(gòu)造函數(shù)。相反,每個(gè)匿名類都隱含地定義了一個(gè)匿名構(gòu)造函數(shù)。
創(chuàng)建匿名類有兩種方法:
擴(kuò)展已有的類(可以是抽象類,也可以是具體類)
創(chuàng)建接口
2、多線程
Java中的多線程能夠同時(shí)執(zhí)行多個(gè)線程。線程是輕量級(jí)的子進(jìn)程,也是處理的最小單位。使用多線程的主要目的是最 大化CPU的使用率。我們使用多線程而不是多進(jìn)程,因?yàn)榫€程更輕量化,也可以共享同一個(gè)進(jìn)程內(nèi)的內(nèi)存空間。多線程用來實(shí)現(xiàn)多任務(wù)。
為什么使用多線程?
使用線程可以讓Java應(yīng)用程序同時(shí)做多件事情,從而加快運(yùn)行速度。用技術(shù)術(shù)語(yǔ)來說,線程可以幫你在Java程序中實(shí)現(xiàn)并行操作。由于現(xiàn)代CPU非???,還可能包含多個(gè)核心,因此僅有一個(gè)線程就沒辦法使用所有的核心。
3、同步
同步指的是多線程的同步。synchronized的代碼塊在同一時(shí)刻只能被一個(gè)線程執(zhí)行。Java中的同步是個(gè)很重要的概念,因?yàn)镴ava是多線程語(yǔ)言,多個(gè)線程可以并行執(zhí)行。在多線程環(huán)境中,Java對(duì)象的同步,或者說Java類的同步非常重要。
為什么要同步?
如果代碼在多線程環(huán)境下執(zhí)行,那么在多個(gè)線程中共享的對(duì)象之間需要同步,以避免破壞狀態(tài),或者造成任何不可預(yù)料的行為。
4、序列化
Java中的序列化是一種機(jī)制,可以將對(duì)象的狀態(tài)寫入到字節(jié)流中。相反的操作叫做反序列化,將字節(jié)流轉(zhuǎn)換成對(duì)象。
序列化和反序列化的過程是平臺(tái)無(wú)關(guān)的,也就是說,在一個(gè)平臺(tái)上序列化對(duì)象,然后可以在另一個(gè)平臺(tái)上反序列化。
序列化時(shí)調(diào)用ObjectOutputStream的writeObject()方法,反序列化調(diào)用ObjectInputStream類的readObject()方法。