一、記憶體與執行緒
1、記憶體結構
記憶體是計算機的重要部件之一,它是外存與CPU進行溝通的橋梁,計算機中所有程式的運行都在記憶體中進行,記憶體性能的強弱影響計算機整體發揮的水平,JVM的記憶體結構規定Java程式在執行時記憶體的申請、劃分、使用、回收的管理策略,通說來說JVM的記憶體管理指運行時資料區這一大塊的管理,

2、執行緒運行
JVM中一個應用是可以有多個執行緒并行執行,執行緒被一對一映射為服務所在作業系統執行緒,調度在可用的CPU上執行,啟動時會創建一個作業系統執行緒;當該執行緒終止時,這個作業系統執行緒也會被回收,

在虛擬機啟動運行時,會創建多個執行緒,資料區中有的模塊是執行緒共享的,有的是執行緒私有的:

執行緒共享:元資料區、堆Heap;
執行緒私有:虛擬機堆疊、本地方法堆疊、程式計數器;
單個CPU在特定時刻只能執行一個執行緒,所以多執行緒通過幾塊空間的使用,然后不斷的爭搶CPU的執行時間段,
二、元資料空間
基本描述
方法元空間(方法區)在JVM啟動的時候被創建,是被各個執行緒共享的記憶體空間,用于存放類和方法的元資料以及常量池,比如Class和Method,
在實際的開發中,經常因為加載的類太多,進而導致記憶體溢位問題,這樣可以對元空間的大小進行擴展,
與堆的關系

元空間存放加載的類資訊,當類被實體化時,堆中存盤實體化的物件資訊,并且通過物件型別資料的指標找到類,
三、堆空間
基本描述
JVM啟動時創建堆區,是記憶體管理的核心區,通常情況下也是最大的記憶體空間,是被所有執行緒共享的,幾乎所有的物件實體都要在堆中分配記憶體,所以這里也是垃圾回收的重點空間,
堆疊關系

堆疊是JVM運行時的單位,堆是存盤單位,當堆疊中方法結束,相關物件失去所有參考后,不會馬上被移除堆空間,要等到垃圾收集器運行的時候,
最后的內容
在開頭跟大家分享的時候我就說,面試我是沒有做好準備的,全靠平時的積累,確實有點臨時抱佛腳了,以至于我自己還是挺懊惱的,(準備好了或許可以拿個40k,沒做準備只有30k+,你們懂那種感覺嗎)
如何準備面試?
1、前期鋪墊(技術沉積)
程式員面試其實是對于技術的一次摸底考試,你的技術牛逼,那你就是大爺,大廠對于技術的要求主要體現在:基礎,原理,深入研究原始碼,廣度,實戰五個方面,也只有將原理理論結合實戰才能把技術點吃透,
下面是我會看的一些資料筆記,希望能幫助大家由淺入深,由點到面的學習Java,應對大廠面試官的靈魂追問,有需要的話就戳這里:藍色傳送門打包帶走吧,
這部分內容過多,小編只貼出部分內容展示給大家了,見諒見諒!
- Java程式員必看《Java開發核心筆記(華山版)》

- Redis學習筆記

- Java并發編程學習筆記
四部分,詳細拆分并發編程——并發編程+模式篇+應用篇+原理篇

- Java程式員必看書籍《深入理解 ava虛擬機第3版》(pdf版)

- 大廠面試必問——資料結構與演算法匯集筆記

其他像Spring,SpringBoot,SpringCloud,SpringCloudAlibaba,Dubbo,Zookeeper,Kafka,RocketMQ,RabbitMQ,Netty,MySQL,Docker,K8s等等我都整理好,這里就不一一展示了,

2、狂刷面試題
技術主要是體現在平時的積累實用,面試前準備兩個月的時間再好好復習一遍,緊接著就可以刷面試題了,下面這些面試題都是小編精心整理的,貼給大家看看,
①大廠高頻45道筆試題(智商題)

②BAT大廠面試總結(部分內容截圖)


③面試總結


3、結合實際,修改簡歷
程式員的簡歷一定要多下一些功夫,尤其是對一些字眼要再三斟酌,如“精通、熟悉、了解”這三者的區別一定要區分清楚,否則就是在給自己挖坑了,當然不會包裝,我可以將我的簡歷給你參考參考,如果還不夠,那下面這些簡歷模板任你挑選:

以上分享,希望大家可以在金三銀四跳槽季找到一份好作業,但千萬也記住,技術一定是平時作業種累計或者自學(或報班跟著老師學)通過實戰累計的,千萬不要臨時抱佛腳,
另外,面試中遇到不會的問題不妨嘗試講講自己的思路,因為有些問題不是考察我們的編程能力,而是邏輯思維表達能力;最后平時要進行自我分析與評價,做好職業規劃,不斷摸索,提高自己的編程能力和抽象思維能力,
)通過實戰累計的,千萬不要臨時抱佛腳,
另外,面試中遇到不會的問題不妨嘗試講講自己的思路,因為有些問題不是考察我們的編程能力,而是邏輯思維表達能力;最后平時要進行自我分析與評價,做好職業規劃,不斷摸索,提高自己的編程能力和抽象思維能力,
以上文章中,提及到的所有的筆記內容、面試題等資料,均可以免費分享給大家學習,有需要的話就戳這里打包帶走吧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290200.html
標籤:其他
