关于java中的变量

我想把java中的变量分为全局变量和局部变量.下面从全局变量和局部变量的角度来看java中的变量.

局部变量:

局部变量的定义:简单说就是定义在方法内,方法的形式参数列表中,for循环的声明中,代码块中的变量.(局部变量出现的位置)

举个生活中的例子,你点了一份外卖,外卖里的一次性筷子就比作变量,你吃完这次外卖你就会扔掉(这里不谈那种循环使用一次性筷子的现象).这里一次性筷子就像局部变量.而全局变量像什么,像家用的筷子.如果你点的外卖不送筷子,需要你自备筷子,那么你就可以使用家用筷子.这种筷子可以用于各种外卖,家用筷子就像全局变量.

局部变量在内存中的位置: 局部变量出现在栈内存中

局部变量的初始化值:局部变量未赋值不能直接使用

局部变量的生命周期:随着方法的调用而产生,随着方法的结束而死亡

小技巧  如何在阅读代码时快速知道变量时成员变量还是局部变量:

如果是没有更改主题的eclipse,全局变量的颜色是细蓝色,自定义常量的颜色是粗蓝色,局部变量的颜色是栗色(具体看编辑器的设置)

全局变量(成员变量):

全局变量的定义:简单说就是定义在类中方法外的变量,也可以称作是成员变量,也可以说是类的属性变量.你实例化这个类后他就一直存在,在这个类里的方法谁都可以调用,当实例化类的对象被销毁后,全局变量跟着销毁.

全局变量在内存中的位置:堆内存中

全局变量的初始化值:可以不初始化,系统会根据其数据类型给予相应的默认值(关于默认值,在Java数组内存分配文章中讲解了)

全局变量的生命周期:随着对象的创建而产生,随着对象的回收而死亡

传说中的静态全局变量(static 成员变量)和非静态全局变量(成员变量):

区别:

首先在格式上,静态全局变量是加了static修饰符修饰了的非静态全局变量;

其次,静态全局变量是随着类的字节码文件在方法区加载而加载产生,随着字节码文件的消失而消失,而非静态全局变量是随着对象的创建而产生,随着对象的回收而死亡.由此可见,静态全局变量的生命周期要比非静态全局变量时间长.

最后,静态全局变量只在类加载时加载一次,存放在方法区中的静态区中,而非静态全局变量随对象创建而加载,每次创建对象,非静态全局变量都要加载到对象在堆中创建的空间中.

关于堆,栈,方法区的内存图,可以参考java数组内存分配这篇文章

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值