之前在學校舉辦的活動上,認識了一個學妹,我死磨硬泡終于加了她的微信,經常給她發微信,
可是她總是對我愛答不理的,我心里總有一天讓你高攀不起,后來就很少聯系了,今天突然主動聯系我:

這么久沒聯系了,一上來就讓我幫忙?這照片拍的,手抖的像是得了帕金森似的,字都有重影,

放大照片仔細看,這應該是某大廠的筆試題吧,

這些題都不是很難,答案脫口而出,
面向物件的三個特性分別是哪些?
封裝
封裝是把客觀事物封裝成抽象的類,并且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏,
繼承
繼承是讓某個類獲得另一個類的屬性和方法,它可以使用現有類的除了私有以外的所有功能,不需要重新撰寫原來的類的情況下對這些功能進行擴展,
多型
多型是一個類實體的相同方法在不同情形有不同表現形式,多型機制使具有不同內部結構的物件可以共享相同的外部介面,
什么是雙親委派模型?
類加載器收到類加載的請求后,它不會首先自己去嘗試加載這個類,而是把這個請求委派給父類加載器去嘗試加載,
只有當父類加載器反饋自己無法完成這個加載請求(它的搜索范圍中沒有找到所需的類)時,子加載器才會嘗試自己去加載,
JVM的記憶體分幾個區域?
程式計數器
當前執行緒所執行的位元組碼的行號指示器,
虛擬機堆疊
Java方法執行的記憶體模型,用于存盤區域變數表、運算元堆疊、動態鏈接、方法出口等資訊,
本地方法堆疊
本地方法執行的記憶體模型,和虛擬機堆疊非常相似,其區別是本地方法堆疊為JVM使用到的Native方法服務,
堆
用于存盤物件實體,是垃圾收集器管理的主要區域,
方法區
用于存盤已被JVM加載的類資訊、常量、靜態變數、即時編譯器編譯后的代碼等資料,
JVM是如何判斷物件是否可以被回收的?
一個物件到GC Roots沒有任何參考鏈相連,JVM就可以對這些物件進行回收了,
要是再答上哪些是 GC Roots就更加分了:
- Java虛擬機堆疊中參考的物件
- 本地方法堆疊中參考的物件
- 靜態屬性參考的物件
- 常量參考的物件
分代垃圾回收器是如何作業的?
堆被劃分為年輕代Young Generation)和老年代(Old Generation),
年輕代又被劃分為一個Eden區和兩個Survivor區,大部分物件在Eden區中生成,當Eden空間不足時,觸發Minor GC,Eden空間和一個Survivor區中存活的物件將被轉移到另外一個Survivor區,
移動時存活的物件年齡加1,當年齡到達指定值后移動到老年代,當老年代空間不足時,觸發Full GC,回收整個堆的垃圾,

由此我不禁想起了《倚天屠龍記》的一句臺詞:

如果是你,你會怎么做?在評論區告訴我!
微信公眾號:萬貓學社
微信掃描二維碼
關注后回復「電子書」
獲取12本Java必讀技術書籍
最后,感謝你的點贊和關注,帥氣又美麗,
作者:萬貓學社
出處:http://www.cnblogs.com/heihaozi/
著作權宣告:本文遵循 CC 4.0 BY-NC-SA 著作權協議,轉載請附上原文出處鏈接和本宣告,
微信掃描二維碼,關注萬貓學社,回復「電子書」,免費獲取12本Java必讀技術書籍,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/424871.html
標籤:Java
