Java - JVM 那些事之“全局变量 & 局部变量”

Posted 程序员牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - JVM 那些事之“全局变量 & 局部变量”相关的知识,希望对你有一定的参考价值。

基本数据类型是放在栈中还是放在堆中,这取决于基本类型声明的位置。

第一种、在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因。

(1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在方法栈中。

(2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在方法的栈中,该变量所指向的对象是放在堆类存中的。

第二种、在类中声明的变量是成员变量(全局变量)放在堆中。

(1)声明的是基本类型的变量,其变量名及其值放在堆内存中。

(2)声明的是引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中。

以上是关于Java - JVM 那些事之“全局变量 & 局部变量”的主要内容,如果未能解决你的问题,请参考以下文章

线程池那些事之ScheduledThreadPoolExecutor

线程池那些事之Future

学习Python那些事之数据库

webSocket那些事之socket.io

C++那些事之高效率开发C++/C

聊聊测试管理的那些事之管事篇