实例对象,内存中存储在什么位置?

如果实例对象存储在堆区时: 实例对象内存存在堆区,实例的引用存在栈上,实例的元数据class存在方法区或者元空间。 如果实例对象没有线程逃逸行为, Jit对编译时会对代码进行逃逸分析 关闭逃逸分析,同时调大堆空间,避免堆内GC的发生,如果有GC信息将会被打印出来 VM运行参数:-Xmx4G -Xms4G -XX:-DoEscapeAnalysis -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 开启逃逸分析 VM运行参数:-Xmx4G -Xms4G -XX:+DoEscapeAnalysis -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError jdk1.7之后自动开启逃逸分析 执行main方法后 jps 查看进程 jmap -histo 进程ID