java中静态与非静态的区别

什么是静态

静态:以关键词static修饰(静态的意思),也就是说被static所修饰的就是静态的,包括变量、方法、块,字段。

static修饰的变量,方法称为静态变量和静态方法,static修饰的代码块称为静态代码块。

static方法就是没有this的方法,在static的方法內部中不能调用非静态方法,相反在非静态方法内部可以调用静态方法,而且可以在没有创建类的对象的前提下也可以用过类名来调用静态方法,静态变量和静态方法一样,这也正是static的重要用途。

静态特点

  1. 全局唯一,任何一次的修改都会影响全局。
  2. 只回加载一次,随着类的加载被加载,优先于非静态。
  3. 通过类名调用,使用时不会依赖于实例化对象。
  4. 生命周期属于类级别,JVM加载开始到JVM卸载结束。

 静态变量

也就是被static修饰的类,静态变量与非静态变量的区别:静态变量是被所有对象共享的,在内存中只存在一个,随着类的初次加载即被初始化一次,即使没有创建对象,也可以通过类名进行调用。非静态变量是对象所拥有的,在创建对象的时候被初始化,每个对象所有的非静态变量不会互相影响。静态变量属于类,不属于类中的任何一个对象,一个类不管创建都少个类,静态变量在内存中只会有一个。

静态方法

被static修饰的方法,和静态变量一样不需要创建对象就可以进行访问,随着类的初次加载被加载到内存中,不会自动销毁,直到JVM关闭,在静态方法中不可以调用非静态成员方法和非静态成员变量,最重要的是静态方法不可以被重写



内存中的存放位置

 方法区:静态变量随着类的加载,和类一样存放在方法区中

:来存储创建出来的对象

:主要是运行方法的,如:main方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双非码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值