对象的实例变量存储在 JVM 中的什么位置? [英] Where are instance variables of an Object stored in the JVM?

查看:77
本文介绍了对象的实例变量存储在 JVM 中的什么位置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Java中对象的实例变量是否存储在JVM的堆栈或方法区?

Is an instance variable of an object in Java stored on the stack or method area of the JVM?

另外,我们是否有多个线程的不同实例变量?

Also, do we have different instance variable for multiple threads?

如果存储在方法区,实例变量与静态变量存储有何不同?

If it is stored in method area how is instance variable different from static variable storage?

推荐答案

Stackheap是操作系统分配给JVM的内存,运行在system.堆栈是存储方法和局部变量的内存位置.(变量引用 primitiveobject 引用也存储在堆栈中).是存储对象及其实例变量的内存位置.

Stack and heap are the memories allocated by the OS to the JVM that runs in the system.Stack is a memory place where the methods and the local variables are stored. (variable references either primitive or object references are also stored in the stack). Heap is a memory place where the objects and its instance variable are stored.

总结一下:

  • 类对象,包括方法代码和静态字段:堆.
  • 对象,包括实例字段:堆.
  • 局部变量和方法调用:堆栈

另外,我们是否有多个线程的不同实例变量?

Also, do we have different instance variable for multiple threads?

每个线程都有一个程序计数器 (PC) 和一个 java 堆栈.PC 将使用 java 堆栈来存储中间值、动态链接、方法的返回值和调度异常.这用于代替寄存器.

Every thread will have a program counter (PC) and a java stack. PC will use the java stack to store the intermediate values, dynamic linking, return values for methods and dispatch exceptions. This is used in the place of registers.

另外关于线程的更多信息,你真的应该阅读这个主题 Where线程对象是创建的吗?堆栈还是堆?.

Also for more about thread, you really should read this topic Where is Thread Object created? Stack or Heap?.

如果它存储在方法区域中,实例变量与静态变量存储?

If it is stored in method area how is instance variable different from static variable storage?

如上所示,静态字段存储在堆中.另一方面,局部变量存储在堆栈中.

As you can see above static fields are stored in heap. On the other hand, local variables are stored in stack.

//编辑

根据 Bruno ReisPeter Lawrey,您还应该阅读逃逸分析

According to the comments of Bruno Reis and Peter Lawrey, you should also read about Escape analysis

  1. 维基百科
  2. 虚拟机性能增强,Escape分析

这篇关于对象的实例变量存储在 JVM 中的什么位置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆