java中static 关键字

来源:互联网 发布:js获取鼠标当前位置 编辑:程序博客网 时间:2024/06/05 11:53

static关键字的作用:

1 静态变量

在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建类的实例对象后,系统才能为每个对象分配空间,存储各自的数据,有时候我们希望某些特定的数据在内存中只有一份,而且被一个类的所有实例所共享,这是java中提供了static关键字来修饰成员变量,给变量被称为静态变量静态变量被所有实例所共享,可以使用类名.变量名来访问。 如下例:

    class Student{         static String schoolName;}  public class Demo{       public static void mian(String[] args){           Student.schoolName="java";           Student s1=new Student();          Student s2=new Studengt();           Sysotem.out.println("s1.schoolName");           Sysotem.out.println("s2.schoolName");     }}运行结果:java                   java

注意:static只能用于修饰成员变量,不能用于修饰局部变量,否则编译报错。


2静态代码块

在java类中,用一对大括号括起来的代码称为代码块,用static修饰的代码块称为静态代码块。。当类被加载时静态代码块执行,由于类只加载一次,所以静态代码块只执行一 次。 例:

   

  class Demo {    static{            Sysotem.out.println("静态代码块");    }    public static void mian(String[] args){                Person p1=new Person();                Person p2=new Person();  }}  class Person{      static{          Sysotem.out.println("person类的静态代码块");   } }结果:静态代码块            person类的静态代码块


3静态方法

 有时我们希望在不创建对象时就可以调用某个方法,要实现这样的效果,只需要在类中定义的方法前面加上static关键字即可,即为静态方法。例:

 class Person{     public void eat(){             Sysotem.out.println("吃饭");    } class Demo{   public static void main(String[] args){     Person.eat();  }}结果:吃饭


4单例模式(饿汉单例设计模式)

class Single{  //自己创建一个对象      private static Single INSTANCE=new Single();      private Single(){   //类的构造方法使用private修饰,这样就不能再类的外部使用new关键字来创建实例对象了。      }      public static Single getInstance(){           return INSTANCE;      }}   class Demo{     public static void main(String[] args){        Single s1=Single.getInstance();        Single s2=Single.getInstance();        Sysotem.out.println(s1==s2);   }}结果:true。 


说明只创建了一个对象
















原创粉丝点击