常量池是存取哪些数据的? "hello"是放在String池,没有那个在常量池,因为这里没有常量常量是final static修饰的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 常量池实际上是一个符号表,结构类型是一个数组,用索引来访问,他描述包括文字字符串,final变量的值,类名,字段名和方法名的常量 A,java/lang/Object,main,i2,fun都会放在常量池中 我在《深入java虚拟机》一书中看到:常量池包含了与文件中类和接口相关的常量。存储了诸如:文字字符串,final变量值,类名和方法名的常量。举到过这样一个例子:class Lava{ private int speed = 5; void flow(){};}//class Volcano{ public static void main(String[] args){ Lava lava = new Lava(); lava.flow(); }}/////......通过执行保存在方法区中的字节码,虚拟机开始执行main()方法,在执行时,它会一直持有指向当前类(Volcano类)的常量池的指针。main()的第一条指令告知虚拟机为列在常量池的第一项的类分配足够的内存。发现它的第一项是一个对Lava类的符号引用,然后它就检查方法区,看Lava类是否已经被装载了。......紧接着,虚拟机以一个直接指向方法区的Lava类数据的指针来替换常量池的第一项(就是那个Lava)--以后就可以用这个指针来快速的访问Lava类了。这个替换过程成为常量池解析,即把常量池中的符号引用替换为直接引用。 刚看到fast_time(fast_time)的回复,谢谢。 在我的例子中的public static void main(String[] args){ int x = 0; A a = new A(); B1 b1 = new B1();}///这里面的x,a,b1应该也是存放在常量池中了吧?fun()中的in2呢? 求高手帮忙看下 我要修改密码哪错了吗 为什么改不了 我是新手 求教 Frame 中的方法 init(String, GraphicsConfiguration)对于参数string不适用 求用java给已知msn用户发消息的方法 正则表达式 散分100求教2个题目 高手指教 谢谢 文字不对齐的问题 求教JList的问题 已知某路径下的Class文件,怎样获得Class的包结构呢? 如何通过点击按钮实现telnet??? 编译过了,运行不行。 伤心欲绝,再问一贴 resultSet 问题。
常量池包含了与文件中类和接口相关的常量。存储了诸如:文字字符串,final变量值,类名和方法名的常量。
举到过这样一个例子:
class Lava{
private int speed = 5;
void flow(){};
}
//
class Volcano{
public static void main(String[] args){
Lava lava = new Lava();
lava.flow();
}
}
/////
......
通过执行保存在方法区中的字节码,虚拟机开始执行main()方法,在执行时,它会一直持有指向当前类(Volcano类)的常量池的指针。
main()的第一条指令告知虚拟机为列在常量池的第一项的类分配足够的内存。发现它的第一项是一个对Lava类的符号引用,然后它就检查方法区,看Lava类是否已经被装载了。
......
紧接着,虚拟机以一个直接指向方法区的Lava类数据的指针来替换常量池的第一项(就是那个Lava)--以后就可以用这个指针来快速的访问Lava类了。这个替换过程成为常量池解析,即把常量池中的符号引用替换为直接引用。
public static void main(String[] args){
int x = 0;
A a = new A();
B1 b1 = new B1();
}
///
这里面的x,a,b1应该也是存放在常量池中了吧?fun()中的in2呢?