从内存结构看
从线程共享与否的角度看
ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及独立会话管理
栈、堆、方法区的交互关系
2.2 方法区的理解
方法区主要存放的是 Class,而堆中主要存放的是实例化的对象
《深入理解Java虚拟机》书中对方法区(Method Area)存储内容描述如下:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等。
对每个加载的类型(类class、接口interface、枚举enum、注解annotation),JVM必须在方法区中存储以下类型信息:
JVM必须保存所有方法的以下信息,同域信息一样包括声明顺序:
运行时常量池 VS 常量池
常量池
为什么需要常量池?
public class SimpleClass {
public void sayHello() {
System.out.println("hello");
}
}
常量池中有什么?
常量池总结
运行时常量池
JDK6