Java基础:static

文章介绍了static在Java中的作用,包括它是如何随着类的加载而初始化的,优于对象的存在。强调了在static方法中不能访问非静态成员,因为静态方法不依赖于特定的对象实例,而非静态方法则与对象实例关联。同时阐述了静态方法和静态变量的内存分配是在类级别,而非静态成员在对象创建时才存在。

static

1.static概念

工具类

2.static内存图

静态变量是随着类的加载而加载的,优于对象出现

3.static的注意事项

1.静态方法中,只能访问静态 : 因为非静态方法一般会传入调用方法的对象的地址this(一般是虚拟机自动调用,不需要手动传入, 如student.study()).但是由于静态方法是所有对象共享的,所以不需要传入调用对象的地址值,所以没有this, 没有this自然没有办法访问静态的变量或方法.

2.非静态方法因为有this,也就是对象的地址值,所以自然可以调用非静态方法,而静态方法所有的对象都可以调用,所以非静态方法可以访问所有.

从内存的角度解释 : 静态变量和方法是和类一起创建的, 而非静态变量和方法是和对象一起创建的, 如果没有创建对象, 那么也就没有非静态变量, 所以静态变量和方法可以互相调用, 而不能访问非静态的东西.

静态方法不能调用实例变量 : 因为没有实例对象.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值