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