Java中静态的内容和注意事项

静态所属:
属于类级别的,不需要创建对象就可以直接使用,与对象是否创建无关。

静态的内存:
静态static变量/方法在类加载的过程中被初始化,在内存中只存在一份,所以可以把它当作是全局变量/方法。

静态的调用:
 类名.静态属性/方法;(推荐使用)
 对象名.静态属性/方法。
应用场景:
静态方法适合入口方法的定义;如单例模式,因为从外部拿不到构造函数,所有定义一个静态的方法获取对象非常有必要。

使用静态时的注意事项:
 静态方法不能调用非静态的方法和变量(非静态方法可以调用静态方法/变量);
 在静态方法中不能同时使用this和super关键字(属于类级别,没有创建对象不可以用this/super);
(1)、this是对当前对象的引用,super是指父类对象的引用,而当类加载时,先静态,后非静态。
(2)、如果静态方法中有this和super关键字,那么当静态方法被加载到内存中,this和super也被加载到内存中,但是对象还没创建,this和super还没被初始化,所以加载时会报错。
 静态数据是类的所有对象共享(公有的)的数据,不因为对象的不同而不同;如果使用一个对象修改了静态数据,其他对象中的这个数据也会被改变;
 静态方法或者静态代码块中不能使用非静态数据和this
(1)、java保证了对象在使用其成员属性时,其属性都被初始化过;
(2)、但是加载类时,首先初始化静态数据,所以非静态数据还没被初始化;
(3)、对象也没被初始化,this代表当前类对象,由于对象没被初始化,所以不能使用;
 静态变量与对象无关,生成静态变量时 对象还没有被创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值