簡體   English   中英

Java對象類,構造函數鏈接

[英]Java Object Class, Constructor Chaining

是否為Java中的每個對象創建調用此代碼,因為每個對象都擴展了Object 或者JVM是否以某種方式對其進行優化以避免在堆中創建一些Object對象。

這個方法registerNatives()究竟發生了什么。

package java.lang;  

public class Object {
  private static native void registerNatives();
  static {
    registerNatives();
  }

加載類時,靜態塊僅執行一次。

如此此處所述 ,還可以定義每次初始化類的對象時將執行的塊:只需刪除static關鍵字。

registerNatives().無關緊要registerNatives(). 確實。 這里重要的是你將它包含在靜態塊中。 在Java Class Loader加載類時加載並運行靜態塊。 因此可以保證每個JVM只運行一次。

1.這里的問題不是關於構造函數鏈,而是靜態的。

2.當JVM加載類時將初始化靜態變量 ,JVM在實例化類或調用該類的任何靜態方法時加載類

3.因此, 這是靜塊將運行每一次JVM裝載的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM