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