Java中静态

1、static关键字的用法:


static关键字主要有以下四种使用场景:

  1. 修饰成员变量和成员方法:被static声明的成员变量属于静态成员变量,存放在JVM内存区域的方法区;被static修饰的成员方法属于类,不仅仅属于这个类的某个对象,而是被类中所有对象共享,可以通过类名或对象名调用。
  2. 静态代码块:静态代码块定义在类中,静态代码块在非静态代码块之前执行(静态代码块- ->非静态代码块一->构造方法)。不管创建多少个该类的对象,静态代码块只执行1次
  3. 静态内部类: static修饰的内部类被称为静态内部类。静态内部类与非静态内部类之间存在一个最大的区别: 非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类,但是静态内部类却没有。没有这个引用就意味着: 1.它的创建是不需要依赖外围类的创建。2. 它不能使用任何外围类的非static成员变量和方法。
  4. 静态导包:用来导入类中的静态资源,1.5之后的新待性。格式为: importstatic java.lang.Math.* ;可以指定导入某个类中的指定静态资源,并且不需要使用静态方法与实例方法的区别?静态方法与实例方法的区别?类名调用类中静态成员,可以直接z使用类中静态成员变量和成员方去

2、静态方法与实例方法的区别?

静态方法属于类本身,实例方法属于该类的每个对象实例(也称实例方法)。在外部调用静态方法时,可以使用”类名.方法名”的方式,也可以使用”对象名方法名”的方式。而实例方法只能使用“对象名.方法名"这种方式。也就是说,调用静态方法可以无需创建对象。

静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法) ,而不允许访问实例成员变量和实例方法;实例方法则无此限制。


3、静态代码块static{ }与非静态代码块{ }的区别?

1相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,定义多个时按定义的顺序执行。

2不同点:
静态代码块在非静态代码块之前执行。执行顺序为:静态代码块、非蓉态代码块、构造方法。

静态代码块只在第一-次new创建对象前执行 一次, 之后不再执行,而非静态代码块在每new创建对象一次就执行次。

非静态代码块可在普通方法中定义(没有意义);而静态代码块不行。

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大西瓜写java、C#、.NET

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

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

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

打赏作者

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

抵扣说明:

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

余额充值