日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试必问之JVM

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试必问之JVM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • Java的一次編譯到處運行背后:JVM從軟件層面屏蔽了底層硬件、指令字節(jié)碼的細節(jié)(JVM充當了適配器的角色和功能)
    • JVM\JDK\JRE關系

    2、JVM運行時數據區(qū)

    所有學過的知識是用來推導新的未知的知識的,踏入社會要學會運用自己的知識能力去驗證、求證自己的觀點,這是必須具備的能力,過分依賴別人是危險的;用別人的長處來彌補自己的短處,借力提高

    線程時最小的執(zhí)行單位,是一個執(zhí)行者:

    JDK1.6+Hotspot虛擬機

    • 程序計數器:指向當前線程正在執(zhí)行的字節(jié)碼指令的地址(行號),有點類似計算機底層的指令計數器
    • 虛擬機棧:棧-》數據結構-》存儲數據-》存儲當前線程運行方法時所需要的數據、指令、返回地址;Java類中的方法是要被調用才能執(zhí)行的,這個調用方式可以是常見的main方法,也可以是其他線程來調用。線程調用執(zhí)行方法時需要從虛擬機棧中加載所需要的數據、指令、返回地址,這些就存儲在虛擬棧中,并且一個方法對應一個棧幀;

    • 本地方法棧:比如native方法,system.out.println();system.currentmillions()等

    • 方法區(qū):類信息(class文件)、常量(1.7+以后有變化:字符串常量切到堆里去了)、靜態(tài)變量、JIT(1.7以前)-》永久代溢出?
    • Heap:注意永久代的顏色和方法區(qū)是一樣的;新生代:Eden:survivor from:survivor to 比例為8:1:1,但是如果大對象分配內存失敗,會通過老年代的擔保機制直接進入老年代;

    ?

    jvm參數設置:xms? ?初始化值? xmx (max)最大值,xmn(new)新生代大小;

    垃圾回收:垃圾回收算法是理論,垃圾回收器是實踐具體的垃圾回收算法的;

    • 標記清除:產生內存碎片;
    • 復制算法:內存按容量劃分為大小相等兩塊,每次只使用其中一塊。一塊內存用完還存活著的對象復制另外一塊,然后再把已使用的內存空間一次清理掉。消除了內存碎片現象,但是卻對內存空間的使用做出了高昂的代價,因為能夠使用的內存縮減到原來的一半;
    • 標記整理:在完成標記之后,它不是直接清理可回收對象,而是將存活對象都向一端移動,然后清理掉端邊界以外的內存;
    • 分代回收算法:根據對象存活的生命周期將內存劃分為若干個不同的區(qū)域。一般情況下將堆區(qū)劃分為老年代(Tenured Generation)和新生代(Young Generation);大部分垃圾收集器對于新生代都采取復制算法,但是新生代的空間不是1:1劃分的,而是按照8:1:1劃分為Eden、survivor1,survivor2;老年代的特點是每次回收都只回收少量對象,一般使用的是標記-整理算法(壓縮法)

    總結

    以上是生活随笔為你收集整理的面试必问之JVM的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。