06.22 還在curd,寫簡單的代碼?物競天擇,Java程序員必須突破的知識點

就現在的Java開發程序員來說,我們的操作都一樣。現在越來越流行的框架,封裝越來越完善,各種框架都可以做到一切,幾乎不必注意底層的實現,初級程序員只要熟悉比較基礎的使用方法就可以了。這樣也可以快速開發上線;但是對於高級程序員來說,“內功”的實踐越來越重要,如算法、設計模式、底層基本原理等。只有掌握了這些基本技能之後,才能在發展過程中瞭解它,並能在問題出現時迅速找到問題的實質。

你工作了多少年了,你還在傳統公司寫簡單的代碼嗎?如果是的話!那恭喜你,真的會被社會淘汰的。這樣的你又和初級工程師有多少不同?那麼作為一個高級Java攻城獅需要突破哪些知識點呢?

還在curd,寫簡單的代碼?物競天擇,Java程序員必須突破的知識點

如果大家想要學習java編程的小夥伴,可以關注小編頭條號,【點擊頭像,右上角私信:學習】,小編也有6年編程經驗了,免費送一套比較系統的java資料、教程和工作經驗,權當是福利吧!

類的生命週期

1.加載,查找並加載類的二進制數據,在Java堆中也創建一個java.lang.Class類的對象

2.連接,連接又包含三塊內容:驗證、準備、初始化。

1)驗證,文件格式、元數據、字節碼、符號引用驗證;

2)準備,為類的靜態變量分配內存,並將其初始化為默認值;

3)解析,把類中的符號引用轉換為直接引用

3.初始化,為類的靜態變量賦予正確的初始值

4.使用,new出對象程序中使用

5.卸載,執行垃圾回收

集合常用方法:

List:

add(Object obj)、remove(Object obj)、remove(int index)、size()、get(int index)、iterator()、clear()

Set:

add(Object obj)、remove(Object obj)、size()、iterator()、clear()、沒有get方法

Map:

put(Object key, Object value)、get(Object key)、keySet()、values()、size()、remove(Object key) 、clear()

流的分類

根據方向分類:

輸入:InputStream、Reader

輸出:OutputStream、Writer

根據流操作的數據單位分類:

字節流:InputStream、OutputStream

字符流:Reader、Writer

還在curd,寫簡單的代碼?物競天擇,Java程序員必須突破的知識點

進程和線程的區別

計算機中一個正在運行的可執行程序的實例就是進程。一個進程可以包含多個線程。單個線程用於完成一個任務,而同時創建多個線程來完成多項任務,便是多線程。

二者都定義了某種邊界,不同的是進程定義的是應用程序與應用程序之間的邊界,不同的進程之間不能共享代碼和數據空間,而線程定義的是代碼執行堆棧和執行上下文的邊界。

用一個比喻來說,如果一個家庭代表一個進程,在家庭內部,各個成員就是線程,家庭中的每個成員都有義務對家庭的財富進行積累,同時也有權利對家庭財富進行消費,當面對一個任務的時候,家庭也可以派出幾個成員來協同完成,而家庭之外的人則沒有辦法直接消費不屬於自己家庭的財產。

調優工具

常用調優工具分為兩類,jdk自帶監控工具:jconsole和jvisualvm,第三方有:MAT(Memory Analyzer Tool)、GChisto。

1.jconsole,Java Monitoring and Management Console是從java5開始,在JDK中自帶的java監控和管理控制檯,用於對JVM中內存,線程和類等的監控

2.jvisualvm,jdk自帶全能工具,可以分析內存快照、線程快照;監控內存變化、GC變化等。

3.MAT,Memory Analyzer Tool,一個基於Eclipse的內存分析工具,是一個快速、功能豐富的Java heap分析工具,它可以幫助我們查找內存洩漏和減少內存消耗

4.GChisto,一款專業分析gc日誌的工具

如果大家想要學習java編程的小夥伴,可以關注小編頭條號,【點擊頭像,右上角私信:學習】,小編也有6年編程經驗了,免費送一套比較系統的java資料、教程和工作經驗,權當是福利吧!

還在curd,寫簡單的代碼?物競天擇,Java程序員必須突破的知識點


分享到:


相關文章: