更新時間:2019-08-02 09:31:16 來源:動力節點 瀏覽2901次
Java架構師實戰核心知識整理,由于每篇的細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點里面都有各種細化講解內容!
JVM
JVM是可運行Java代碼的假想計算機,包括一套字節碼指令集、一組寄存器、一個棧、一個垃圾回收,堆和一個存儲方法域。JVM是運行在操作系統之上的,它與硬件沒有直接的交互。
運行過程:
我們都知道Java源文件,通過編譯器,能夠生產相應的.Class文件,也就是字節碼文件,而字節碼文件又通過Java虛擬機中的解釋器,編譯成特定機器上的機器碼。
也就是如下:
①Java源文件—->編譯器—->字節碼文件
②字節碼文件—->JVM—->機器碼
每一種平臺的解釋器是不同的,但是實現的虛擬機是相同的,這也就是Java為什么能夠跨平臺的原因了,當一個程序從開始運行,這時虛擬機就開始實例化了,多個程序啟動就會存在多個虛擬機實例。程序退出或者關閉,則虛擬機實例消亡,多個虛擬機實例之間數據不能共享。
Java集合
接口繼承關系和實現
集合類存放于Java.util包中,主要有3種:set(集)、list(列表包含Queue)和map(映射)。
1.Collection:Collection是集合List、Set、Queue的最基本的接口。
2.Iterator:迭代器,可以通過迭代器遍歷集合中的數據
3.Map:是映射表的基礎接口
Java多線程并發
Java并發知識庫
Java線程實現/創建方式
繼承Thread類
Thread類本質上是實現了Runnable接口的一個實例,代表一個線程的實例。啟動線程的唯一方法就是通過Thread類的start()實例方法。start()方法是一個native方法,它將啟動一個新線程,并執行run()方法。
實現Runnable接口
如果自己的類已經extends另一個類,就無法直接extendsThread,此時,可以實現一個Runnable接口。
publicclassMyThreadextendsOtherClassimplementsRunnable{
publicvoidrun(){
System.out.println("MyThread.run()");
}
}13/04/2018Page55of283
//啟動MyThread,需要首先實例化一個Thread,并傳入自己的MyThread實例:
MyThreadmyThread=newMyThread();
Threadthread=newThread(myThread);
thread.start();
//事實上,當傳入一個Runnabletarget參數給Thread后,Thread的run()方法就會調用
target.run()
publicvoidrun(){
if(target!=null){
target.run();
}
}
Java基礎
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。
Spring原理
它是一個全面的、企業應用開發一站式的解決方案,貫穿表現層、業務層、持久層。但是Spring仍然可以和其他的框架無縫整合。
6.1.1.Spring特點
6.1.1.1.輕量級
6.1.1.2.控制反轉
6.1.1.3.面向切面
6.1.1.4.容器
6.1.1.5.框架集合
微服務
客戶端注冊(zookeeper)
客戶端注冊是服務自身要負責注冊與注銷的工作。當服務啟動后向注冊中心注冊自身,當服務下線時注銷自己。期間還需要和注冊中心保持心跳。心跳不一定要客戶端來做,也可以由注冊中心
負責(這個過程叫探活)。這種方式的缺點是注冊工作與服務耦合在一起,不同語言都要實現一套注冊邏輯。
Netty與RPC
Netty原理
Netty是一個高性能、異步事件驅動的NIO框架,基于JAVANIO提供的API實現。它提供了對TCP、UDP和文件傳輸的支持,作為一個異步NIO框架,Netty的所有IO操作都是異步非阻塞的,通過Future-Listener機制,用戶可以方便的主動獲取或者通過通知機制獲得IO操作結果。
Netty高性能
在IO編程過程中,當需要同時處理多個客戶端接入請求時,可以利用多線程或者IO多路復用技術進行處理。IO多路復用技術通過把多個IO的阻塞復用到同一個select的阻塞上,從而使得系統在單線程的情況下可以同時處理多個客戶端請求。與傳統的多線程/多進程模型比,I/O多路復用的最大優勢是系統開銷小,系統不需要創建新的額外進程或者線程,也不需要維護這些進程和線程的運行,降低了系統的維護工作量,節省了系統資源。
與Socket類和ServerSocket類相對應,NIO也提供了SocketChannel和ServerSocketChannel兩種不同的套接字通道實現。
多路復用通訊方式
Netty架構按照Reactor模式設計和實現,它的服務端通信序列圖如下:
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習