Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实例变量(原语)在java中存储在哪里?堆栈是否与实例变量存储相关?_Java_Variables - Fatal编程技术网

实例变量(原语)在java中存储在哪里?堆栈是否与实例变量存储相关?

实例变量(原语)在java中存储在哪里?堆栈是否与实例变量存储相关?,java,variables,Java,Variables,实例变量(原语)在java中存储在哪里 如果您是指在类上声明的实例字段,那么它们将作为对象自身分配的一部分在堆上分配 声明为方法局部变量的基元(值类型)变量存储在方法的堆栈框架中。基元变量存储在所有变量存储的相同位置(包括引用): 在堆上创建(分配)的对象内,或 在方法堆栈帧内作为局部变量,或 在其包含类(位于堆上)的静态区域内 类加载器将具有限定名称的类加载到jvm后。JVM解析类中的二进制数据,并将该信息放入方法区域。当JVM执行该类时,它首先将对象(包括实例字段primitive/non

实例变量(原语)在java中存储在哪里

如果您是指在类上声明的实例字段,那么它们将作为对象自身分配的一部分在堆上分配


声明为方法局部变量的基元(值类型)变量存储在方法的堆栈框架中。

基元变量存储在所有变量存储的相同位置(包括引用):

  • 在堆上创建(分配)的对象内,或
  • 在方法堆栈帧内作为局部变量,或
  • 在其包含类(位于堆上)的静态区域内

类加载器将具有限定名称的类加载到jvm后。JVM解析类中的二进制数据,并将该信息放入方法区域。当JVM执行该类时,它首先将对象(包括实例字段primitive/non primitive)放入堆中。

换句话说。。。实例变量(定义为类的一部分)存储在堆上。在方法内部定义的局部变量存储在该方法的堆栈框架中。