JAVA中变量的存放位置

JAVA中变量的存放位置

一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所

在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁

而结束,这就局部变量只能在方法中有效的原因

在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。

​ (1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中

​ (2)当声明的是引用类型变量时,所声明的变量名(该变量实际上是在方法中存储的是内存地址值)是放在

​ JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。

二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。

​ 同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量

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

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

对应的对象仍然存储在相应的堆中

注意:

○在高级语言中,程序函数调用、函数中定义的变量都用到栈(stack)。

○用malloc, calloc, realloc等函数分配得到变空间是在堆(heap)上。

○在所有函数体外定义的是全局量。

○加了static修饰符后不管放在在哪里都属于静态变量,存放在全局区(静态区)

○在所有函数体外定义的static变量表示在该文件中有效,不能extern到别的文件用。

○在函数体内定义的static表示只在该函数体内有效。

○函数中的"abcdef"这样的字符串存放在常量区。
————————————————

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java,成员变量和全局变量都是指在定义的变量,但它们有以下区别: 1. 作用域不同:成员变量的作用域是整个,而全局变量的作用域是整个程序。 2. 生命周期不同:成员变量的生命周期随着对象的创建而存在,而全局变量的生命周期和程序的运行时间一样长。 3. 访问权限不同:成员变量可以设置访问权限,如public、private、protected等,而全局变量只能被public修饰。 4. 默认值不同:成员变量默认值,如int默认值为0,而全局变量没有默认值,需要手动初始化。 5. 初始化时机不同:成员变量在对象创建时自动初始化,而全局变量需要在定义时手动初始化或在静态代码块初始化。 ### 回答2: Java的成员变量和全局变量都是用于存储数据的变量,但它们之间有一些区别。 成员变量是定义在变量,它们属于对象的一部分,每个对象都有自己的一份成员变量。成员变量在对象创建时被初始化,并且在对象销毁时被销毁。成员变量可以被所有的方法访问和修改,可以用来保存对象的状态信息。 全局变量也属于的一部分,但它们是用static关键字修饰的,通常在内部但方法外部定义。全局变量加载时被初始化,并且在程序运行期间一直存在,直到程序结束。全局变量可以被的所有方法访问和修改,它们被用来保存的共享数据。 总的来说,成员变量是属于对象的,每个对象都有自己的一份成员变量,而全局变量是属于的,所有的对象共享一份全局变量。成员变量在对象创建时初始化,全局变量加载时初始化。成员变量在对象销毁时销毁,全局变量在程序结束时销毁。成员变量只能被对象的方法访问和修改,全局变量可以被的所有方法访问和修改。 ### 回答3: Java的成员变量和全局变量是两个不同概念。 成员变量是属于的实例变量,每个的实例对象都拥有自己的一套成员变量,它们在实例化时被赋予默认值,通常需要通过对象去访问和修改。成员变量的生命周期与对象的生命周期一致,当对象被销毁时,成员变量也随之被销毁。 而全局变量是属于本身的变量,也称为静态变量。全局变量被定义为static变量,不依赖于任何对象的实例而存在,也不需要实例化就可以访问和修改。全局变量的生命周期与程序的生命周期一致,当程序加载时创建,程序结束时销毁。 从作用域上来看,成员变量的作用域是在的所有方法都可以访问,而全局变量的作用域是整个都可以访问。 另外,成员变量和全局变量的内存分配方式也不同。成员变量存储在堆内存,而全局变量存储在方法区。 总结来说,成员变量属于的实例,每个实例都有自己的一套成员变量,需要通过对象访问;而全局变量属于本身,不依赖于任何对象的实例,无需实例化就可以访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值