中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JVM面試題

2018-07-31    來源:importnew

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

1、你知道哪些或者你們線上使?什么GC策略?它有什么優(yōu)勢,適?于什么場景?

參考?觸發(fā)JVM進(jìn)行Full GC的情況及應(yīng)對策略。

2、Java類加載器包括?種?它們之間的??關(guān)系是怎么樣的?雙親委派機(jī)制是什么意思?有什么好處?

啟動Bootstrap類加載、擴(kuò)展Extension類加載、系統(tǒng)System類加載。

父子關(guān)系如下:

  • 啟動類加載器 ,由C++ 實(shí)現(xiàn),沒有父類;
  • 擴(kuò)展類加載器,由Java語言實(shí)現(xiàn),父類加載器為null;
  • 系統(tǒng)類加載器,由Java語言實(shí)現(xiàn),父類加載器為擴(kuò)展類加載器;
  • 自定義類加載器,父類加載器肯定為AppClassLoader。

雙親委派機(jī)制:類加載器收到類加載請求,自己不加載,向上委托給父類加載,父類加載不了,再自己加載。
優(yōu)勢避免Java核心API篡改。詳細(xì)查看:深入理解Java類加載器(ClassLoader)

3、如何?定義?個(gè)類加載器?你使?過哪些或者你在什么場景下需要?個(gè)?定義的類加載器嗎?

自定義類加載的意義:

  1. 加載特定路徑的class文件
  2. 加載一個(gè)加密的網(wǎng)絡(luò)class文件
  3. 熱部署加載class文件

4、堆內(nèi)存設(shè)置的參數(shù)是什么?

  • -Xmx 設(shè)置堆的最大空間大小
  • -Xms 設(shè)置堆的最小空間大小

5、Perm Space中保存什么數(shù)據(jù)?會引起OutOfMemory嗎?

加載class文件。

會引起,出現(xiàn)異?梢栽O(shè)置 -XX:PermSize 的大小。JDK 1.8后,字符串常量不存放在永久帶,而是在堆內(nèi)存中,JDK8以后沒有永久代概念,而是用元空間替代,元空間不存在虛擬機(jī)中,二是使用本地內(nèi)存。

詳細(xì)查看Java8內(nèi)存模型—永久代(PermGen)和元空間(Metaspace)

6、做GC時(shí),?個(gè)對象在內(nèi)存各個(gè)Space中被移動的順序是什么?

標(biāo)記清除法,復(fù)制算法,標(biāo)記整理、分代算法。

新生代一般采用復(fù)制算法 GC,老年代使用標(biāo)記整理算法。
垃圾收集器:串行新生代收集器、串行老生代收集器、并行新生代收集器、并行老年代收集器。
CMS(Current Mark Sweep)收集器是一種以獲取最短回收停頓時(shí)間為目標(biāo)的收集器,它是一種并發(fā)收集器,采用的是Mark-Sweep算法。

詳見?Java GC機(jī)制。

7、你有沒有遇到過OutOfMemory問題?你是怎么來處理這個(gè)問題的?處理 過程中有哪些收獲?

permgen space、heap space 錯(cuò)誤。

常見的原因

  • 內(nèi)存加載的數(shù)據(jù)量太大:一次性從數(shù)據(jù)庫取太多數(shù)據(jù);
  • 集合類中有對對象的引用,使用后未清空,GC不能進(jìn)行回收;
  • 代碼中存在循環(huán)產(chǎn)生過多的重復(fù)對象;
  • 啟動參數(shù)堆內(nèi)存值小。

詳見?Java 內(nèi)存溢出(java.lang.OutOfMemoryError)的常見情況和處理方式總結(jié)。

8、JDK 1.8之后Perm Space有哪些變動? MetaSpace??默認(rèn)是?限的么? 還是你們會通過什么?式來指定???

JDK 1.8后用元空間替代了 Perm Space;字符串常量存放到堆內(nèi)存中。

MetaSpace大小默認(rèn)沒有限制,一般根據(jù)系統(tǒng)內(nèi)存的大小。JVM會動態(tài)改變此值。

  • -XX:MetaspaceSize:分配給類元數(shù)據(jù)空間(以字節(jié)計(jì))的初始大小(Oracle邏輯存儲上的初始高水位,the initial high-water-mark)。此值為估計(jì)值,MetaspaceSize的值設(shè)置的過大會延長垃圾回收時(shí)間。垃圾回收過后,引起下一次垃圾回收的類元數(shù)據(jù)空間的大小可能會變大。
  • -XX:MaxMetaspaceSize:分配給類元數(shù)據(jù)空間的最大值,超過此值就會觸發(fā)Full GC,此值默認(rèn)沒有限制,但應(yīng)取決于系統(tǒng)內(nèi)存的大小。JVM會動態(tài)地改變此值。

9、jstack 是?什么的? jstat 呢?如果線上程序周期性地出現(xiàn)卡頓,你懷疑可 能是 GC 導(dǎo)致的,你會怎么來排查這個(gè)問題?線程?志?般你會看其中的什么 部分?

jstack 用來查詢 Java 進(jìn)程的堆棧信息。

jvisualvm 監(jiān)控內(nèi)存泄露,跟蹤垃圾回收、執(zhí)行時(shí)內(nèi)存、cpu分析、線程分析。

詳見Java jvisualvm簡要說明,可參考?線上FullGC頻繁的排查。

10、StackOverflow異常有沒有遇到過??般你猜測會在什么情況下被觸發(fā)?如何指定?個(gè)線程的堆棧????般你們寫多少?

棧內(nèi)存溢出,一般由棧內(nèi)存的局部變量過爆了,導(dǎo)致內(nèi)存溢出。出現(xiàn)在遞歸方法,參數(shù)個(gè)數(shù)過多,遞歸過深,遞歸沒有出口。

答案如有不正確,還請各位指正。

標(biāo)簽: ssl 代碼 數(shù)據(jù)庫 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:MYSQL事務(wù)隔離級別

下一篇:UReport 2.2.9 正式版發(fā)布,中式高性能報(bào)表引擎