學妹一反常態主動聯絡我,我要不要答應幫她?

2021-05-10 21:00:16

之前在學校舉辦的活動上,認識了一個學妹。

我死磨硬泡終於加了她的微信,經常給她發微信。可是她總是對我愛答不理的,我心裡總有一天讓你高攀不起,後來就很少聯絡了。今天突然主動聯絡我:

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

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

這些題都不是很難,答案脫口而出。

物件導向的三個特性分別是哪些?

封裝

封裝是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。

繼承

繼承是讓某個類獲得另一個類的屬性和方法。它可以使用現有類的除了私有以外的所有功能,不需要重新編寫原來的類的情況下對這些功能進行擴充套件。

多型

多型是一個類範例的相同方法在不同情形有不同表現形式,多型機制使具有不同內部結構的物件可以共用相同的外部介面。

什麼是雙親委派模型?

類載入器收到類載入的請求後,它不會首先自己去嘗試載入這個類,而是把這個請求委派給父類別載入器去嘗試載入。

只有當父類別載入器反饋自己無法完成這個載入請求(它的搜尋範圍中沒有找到所需的類)時,子載入器才會嘗試自己去載入。

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,回收整個堆的垃圾。


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

如果是你,你會怎麼做?在評論區告訴我!感謝一鍵三連!