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

走远了吗. 提交于 2019-12-26 23:16:07

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

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

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

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

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

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

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

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

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

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

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

注意事项:

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

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

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

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

静态代码块的格式是:

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

特点:

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

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

     静态代码块的典型用途:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!