java学习笔记11-static关键字

时间:2021-03-29 16:52:52

如果在类中使用static关键字创建方法,这种方法称为类方法,可以在这个类中直接引用。而不是用static创建的方法。这种方法称为对象方法(实例方法),需要创建对象后才能使用。

package lesson;

public class TestDemo {
   public static void methon1(){
       System.out.println("类方法");
   }
   public void methon2(){
       System.out.print("实例方法");
   }

   public static void main(String[] args){
       TestDemo.methon1();
       TestDemo.methon2();
   }
}

java学习笔记11-static关键字java学习笔记11-static关键字

 

 

如果在类,方法外,使用static创建的变量。这种变量称为类变量,类变量属于这个类,可以在本类中的任何类方法里面直接引用。而非static关键字声明的变量为成员变量,这种变量属于这个类的对象。可以在实例方法中引用。

package lesson;

public class TestDemo {
   static int no1=10;
   int no2=20;
   public static void main(String[] args){
       System.out.println(no1);
       System.out.println(no2);
   }
}
java学习笔记11-static关键字

java学习笔记11-static关键字java学习笔记11-static关键字

 

在类的加载时(第一次调用类),类的成员变量会进行初始化,引用数据类型会默认初始化为null,int和long类型变量初始化为0,float和double的变量会初始化为0.0

类在加载时,除了初始化变量,还会调用类的静态块和动态快

静态块:使用static关键字修饰,static{}。有多个静态块会顺序执行

动态快:动态快不需要任何关键字修饰,直接使用花括号包含。有多个动态快会顺序执行

 

类在初始化时,静态块只会在第一次加载时执行一次,而动态快在每次使用此类都会执行。

package lesson;

public class TestDemo {
    static{
        System.out.println("静态块");
    }

    {
        System.out.println("动态快");
    }

   public static void main(String[] args){
       TestDemo test = new TestDemo();
       TestDemo test1 = new TestDemo();

   }
}

java学习笔记11-static关键字java学习笔记11-static关键字

 

 

当调用静态方法时,是不会加载动态快的

package lesson;

public class TestDemo {
    static{
        System.out.println("静态块");
    }

    {
        System.out.println("动态快");
    }
    public static void Hello(){
        System.out.println("Hello");
    }

   public static void main(String[] args){
       TestDemo.Hello();

   }
}
java学习笔记11-static关键字

java学习笔记11-static关键字java学习笔记11-static关键字