JVM

JVM:
A a = new A();

a,放到栈 内存
new A,放到 推内存
static 静态变量放在, 方法区

各个线程共享的内存区域,数据共享: 堆, 方法区
各个线程不共享的内存区域,数据不同线: 程序计数器,虚拟机栈(栈帧),本地方法栈(每个线程都有一份)

程序计数器:执行.class 字节码,指示器,每个线程都有一个程序计数器。 例:执行循环后,程序往下执行的位置
虚拟机栈: 局部变量,局部变量表主要存放了编译器可知的各种数据类型。和 对象引用。
虚拟机栈会出现两种异常:StackOverFlowError (栈内存允许动态扩展)和 OutOfMemoryError(栈内存不允许动态扩展) 栈内存用完了:
本地方法栈:本地方法栈则为虚拟机使用到的 Native 方法服务 。

堆 :此内存区域的唯一目的就是存放对象实例,Java堆还可以细分为:新生代和老年代(新生代垃圾回收后,如果对象还存活,则会进入 s0 或者 s1,并且对象的年龄还会加 1)
方法区 :方法区与 Java 堆一样,是各个线程共享的内存区域。被虚拟机

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...