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相等的字符串,在常量池中永远只有一份,在堆中有多份。