簡體   English   中英

Java-.class文件中的未初始化靜態變量

[英]Java - uninitialized static variable in .class file

在c中,未初始化的靜態變量在可執行文件中不占用空間。

Java呢? static variable是否會占用.class文件中的空間?

提示:問題是關於磁盤空間,而不是內存。

所有字段在類文件中都有一個條目,其中提供了名稱,類型,標志(最終,公共,易失性,靜態等)以及其他數據。

如果您考慮一下,它一定是這種方式。 Java不是C,其中變量只是bss中的某個位置或其他位置。 您需要進行反射以及運行時類型檢查,因此必須維護所有這些信息。

如果該字段已初始化,則在類文件中將有其他數據進行初始化(該方法中的ConstantValue屬性或字節碼)。 但是,即使未初始化的字段也必須在類文件中具有該字段條目。

是的,它們會占用內存。 即使不初始化,java中的所有變量都將分配有默認值。 所以,

int i;

在這種情況下將占用內存。 這是一些進一步的閱讀: 未初始化的原始實例變量是否使用內存?

暫無
暫無

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

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