java常量常量池
❶ java運行時常量池是什麼
運行時常量池是每個類常量池的運行時代表。它包含了類的運行時常量和靜態方法。運行時常量池是方法區的一部分。
❷ java 常量池
存在棧中
是的
是的
JVM內部處理步驟
生命變數 int a
在常量池裡查找是否有 值為「0」的地址,如果沒有開辟一個地址,並將變數a指向這個地址
❸ JAVA中的直接量,宏替換,常量池,宏常量,常量
-- 直接量,在js中有這個概念,java中沒聽說過
直接量也稱為字面量,是JavaScript中一種對象的表示(或者說創建)方式,它可以通過直接給變數賦上JavaScript中原生對象值的方式從而轉換為一個相應的對象。
對象直接量提供了一種創建並初始化新對象的簡單而直接的方式。
var circle={x:0, y:0, radius:2,speed:function(){alert('ok')}}
說白了==>Javascript里直接量即對象的json表示法
供參考By monical
-- 宏替換 c/cpp裡面的概念,不明
-- 常量池,java里指的是jvm的常量池,下面是原文:
For each type it loads, a Java Virtual Machine must store a constant pool. A constant pool is an ordered set of constants used by the type, including literals (string, integer, and floating point constants) and symbolic references to types, fields, and methods. Entries in the constant pool are referenced by index, much like the elements of an array. Because it holds symbolic references to all types, fields, and methods used by a type, the constant pool plays a central role in the dynamic linking of Java programs.
大概是講常量池保存了各個類型的引用,對java這種動態語言很重要.
--宏常量 c/cpp裡面的概念,不明
-- 常量,所有編程語言都有,java的常量就是給定的量,死的.比如int i= 1;i就是常量,不同的常量存儲的區域不大一樣.
分static變數,final變數,全局變數,局部變數等.
❹ java中 關於常量池 棧內存 堆內存
java中空間分為3個,串池、堆、棧、其中串池是放字元串的,比如「1234」,堆是放對象的。棧是放變數的。
❺ java常量池是什麼
常量池(constant pool)指的是在編譯期被確定,並被保存在已編譯的.class文件中的一些數據。它包括了關於類、方法、介面等中的常量,也包括字元串常量。
❻ java什麼是常量池線
題目有誤,你是想問常量池吧?
常量池是jvm內存中的一部分,用來存儲各種常數。jdk1.7以前,是被放到永久代中的,之後(從1.7開始)被改為放在了堆中。
❼ Java常量池是什麼有什麼用 和堆、棧有關系求簡單易懂的解釋!
1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制.
2. 棧:存放基本類型的變數數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字元串常量對象存放在常量池中。)
3. 堆:存放所有new出來的對象。
4. 靜態域:存放靜態成員(static定義的)
5. 常量池:存放字元串常量和基本類型常量(public static final)。
6. 非RAM存儲:硬碟等永久存儲空間
這里我們主要關心棧,堆和常量池,對於棧和常量池中的對象可以共享,對於堆中的對象不可以共享。棧中的數據大小和生命周期是可以確定的,當沒有引用指向數據時,這個數據就會消失。堆中的對象的由垃圾回收器負責回收,因此大小和生命周期不需要確定,具有很大的靈活性。
對於字元串:其對象的引用都是存儲在棧中的,如果是編譯期已經創建好(直接用雙引號定義的)的就存儲在常量池中,如果是運行期(new出來的)才能確定的就存儲在堆中。對於equals相等的字元串,在常量池中永遠只有一份,在堆中有多份。