请教大神,在JVM 中一个线程的 Java 栈和寄存器中分别放的是什么?

JVM 中一个线程的 Java 栈和寄存器中分别放的是什么?


扬帆大鱼
浏览 989回答 4
4回答

九州编程

栈肯定是有的,一个方法调用另一个方法,就会产生栈那样的结构,我看过的理论好像是堆的话,好像是全局一个,所有 用new生成的对象,都保存在堆里。但是 按照这种理论,我也有点不懂的地方。 以垃圾回收的理论来看的话,最好的方法是 一个栈对应一个堆,然后方法栈执行完毕,清空这一个堆,垃圾回收旧算完了。这样的方式 感觉比单纯一个全局的堆 要好。全局一个堆的话, 要维护 每个线程对应的 内存对象,垃圾回收 还得针对每一个线程,感觉有点复杂。全局的堆 肯定是有一个的,维护那些 静态变量的 内存,公有的一些对象。其实我也不怎么懂 jvm里面 具体的内存分配策略。 可是是错的

慕桂英546537

-Xms 为jvm启动时分配的内存,比如-Xms200m,表示分配200M-Xmx 为jvm运行过程中分配的最大内存,比如-Xms500m,表示jvm进程最多只能够占用500M内存-Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M
打开App,查看更多内容
随时随地看视频慕课网APP