/**
* @author Administrator
* static{} 使用类
*/
public class StaticTest {
//静态变量
public static int x = 300 ;
//static块,会在类被加载的时候执行且执行一次
//用来初始化静态变量和调用静态方法
static{
System.out.println(x);
x = 200 ;
System.out.println(x);
System.out.println("静态代码块1----->>>>");
}
static{
System.out.println("静态代码块2----->>>>");
}
public StaticTest() {
// TODO Auto-generated constructor stub
System.out.println("实例化对象");
}
public static void testStatic(){
System.out.println("静态方法--》testStatic");
}
}
package com.xc.exam;
public class StaticMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println(StaticTest.x);
//static 代码块在类加载的时候执行
//1、Class.forName("类") ;
//2、实例化一个类对象
//3、调用类的静态方法
//4、调用类的静态变量 , 调用静态常量不会加载static 代码块
//5、static 执行的顺序是按照static定义的顺序执行的 先定义先执行
//1、Class.forName() 加载类
try {
Class.forName("com.xc.exam.StaticTest") ;
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
/*
//2、实例化对象
StaticTest test = new StaticTest() ;
//或者实例化类
//Class.forName("com.xc.exam.StaticTest").newInstance() ;
//3、调用静态方法
StaticTest.testStatic();
//4、调用静态变量
System.out.println(StaticTest.x);
*/
}
}