java中static(静态方法,静态变量)的使用

1.一旦使用Static修饰成员方法,那么这就成为了静态方法.静态方法不属于对象为属于类.

2.如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它.

3.如果有了static关键字,那么不需要创建对象就能通过类名称来使用它.

静态方法与非静态方法的区别:

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。而非静态方法是不加static关键字的方法,在类定义时没有占用内存,非静态方法只有在类被实例化成对象时,对象调用该方法才被分配内存;

无论是成员变量,还是成员方法.如果有了static,都推荐使用类名成进行调用

静态变量:类名称.静态变量

静态方法:类名称.静态方法()       / /  对于本类的静态方法,可以省略类名称

静态变量图非静态变量的区别:

 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期

 而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。

注意事项:

1.静态不能直接访问非静态.

原因:因为内存当中是先有静态内容,后有的非静态内容

2.静态方法当中不能用this

原因:this代表当前对象,通过谁调用的方法,谁就是当前对象.

静态代码块的格式是:

public class 类名称{
       static{
          //静态代码块内容
    }
}

特点:

     当第一次用到本类时,静态代码块执行唯一的一次

     静态内容总是优先于非静态,所以静态代码快比构造方法先执行.

     静态代码块的典型用途:

     用来一次性地对静态成员变量进行赋值.

静态方法是在编译的时候把静态方法和类的引用类型进行匹配,而不是在运行的时候 和类引用进行匹配。因此我们得出结论:当我们在子类中创建的静态方法,它并不会覆盖父类中相同名字的静态方法。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值