static关键字
private static int age; //静态的变量
private double score; //非静态的变量
package com.jin.www;
public class Demo01 {
static String name; //类变量
public static void main(String[] args) {
Demo01 demo=new Demo01();
System.out.println(demo.name); //通过对象调用方法
System.out.println(Demo01.name); //类变量可以直接调用
}
{
//代码块(匿名代码块)不能调用
//匿名代码块在创造对象的时候,就自动创建了
}
static{
//静态代码块 类已加载,就直接执行一次(永久执行一次,也是最早执行的)
}
}
//程序先执行静态代码块,再执行匿名代码块,最后执行构造方法
package com.jin.www;
public class Demo01 {
{
System.out.println("匿名代码块");
}
static{
System.out.println("静态代码块");
}
public Demo01() {
System.out.println("构造方法");
}
public static void main(String[] args) {
Demo01 demo=new Demo01();
System.out.println("=========================");
Demo01 demo1=Demo01();
}
}
结果:
静态代码块
匿名代码块构造方法
==========================
匿名代码块
构造方法
从上面看,可以得出静态代码块只在类的加载中,执行一次
package com.jin.www;
import static java.lang.Math.random; //静态导入包
public class Demo01 {
public static void main(String[] args) {
System.out.println(random()); //可以直接方法
}
}