5.25课堂笔记之实例全局变量&静态全局变量

对象的构造与初始化

变量及其作用范围

变量:

  1. 都有类型,都必须定义在类中

  2. 使用前都必须先声明变量类型,可以为简单或者引用类型
    ——局部一般都在栈中对应方法的工作空间


引用类型创建开辟四个空间

所有的局部变量都在栈帧中开辟,

所有的局部变量都没有this指针,且不能自动初始化

在为其初始化前,其没有确切初值,为垃圾值,使用前必须为其赋初值才可使用
方法结束,即释放

局部变量在方法或类的语句块中定义

实例全局变量的全局性体现在其归该类对象的所有方法,体现在对象范围


实例全局变量:

何时开辟:创建对象

在哪:堆区

开辟几次:有多少对象
不同对象可以有同名全局变量

谁可用:仅对象可用(因为有this指针,就算是方法也是通过对象的this指针找到的)

作用范围:对象内部,所有类共有,该类对象的所有方法均可使用。

销毁:随对象销毁

是否会自动初始化:会,除了若还未赋值即拿来使用,系统会给他一个默认的初值(默认初始化)除此之外,构造方法也可对其进行初始化


静态全局变量:

何时开辟:类加载时就开辟

在哪:方法区的中数据区的静态数据区

开辟几次: 一次,之后进行静态绑定

谁可用:
1.类可以使用

2.对象通过引用机制也可使用,一个带有静态全局变量类的对象自动获得该静态全局变量的引用。

作用范围:
该静态全局变量归该类的所有对象所公有。静态全局变量本身没有this指针(类似静态方法,除主方法外也可通过引用机制通过对象调用)。

销毁:直到整个程序执行完毕

是否会自动初始化:会,在类加载时即初始化,或使用静态代码块为其初始化(即写在前面的花括号区域,没有方法名的方法)


堆区的属性和方法才有this指针


实例全局变量和静态全局变量不能重名


如果对象在生存周期时,指向其的变量指向其他对象,如new了一个新的,则该对象成为游离对象,且由于方法还未执行完毕,对象不会被销毁,可能造成内存泄漏,因为垃圾回收(GC)机制不能找到该对象。——>垃圾回收机制不能避免内存泄漏,只能改善和缓解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值