1.Java类文件编译以后,会有class常量池
2.类加载运行过程中, class常量池会加载到运行时常量池中
那么这个运行时常量池是每个类都有一个,还是所有类共享一个呢?
在JAVA8中,这个运行时常量池到底是在堆区中,还是在元空间里面?
运行时常量池和全局字符串常量池是什么关系,全局字符串常量池又放在哪呢?
1.Java类文件编译以后,会有class常量池
2.类加载运行过程中, class常量池会加载到运行时常量池中
那么这个运行时常量池是每个类都有一个,还是所有类共享一个呢?
在JAVA8中,这个运行时常量池到底是在堆区中,还是在元空间里面?
运行时常量池和全局字符串常量池是什么关系,全局字符串常量池又放在哪呢?
运行时常量池存放各种字面量和符号引用(随着运行会把用到的符号引用变为直接引用),每个类都有一个,不是共享的
字符串常量池是一个StringTable(可以理解为weak HashMap),存放的是String的引用,是全局共享的
这两个池根本就不是一个东西!!!
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
String常量池位置: