标签:
代码示例:
1 public class Test { 2 3 public Test(){ 4 System.out.println("构造函数"); 5 } 6 { 7 System.out.println("非静态代码块"); 8 } 9 static{ 10 System.out.println("静态代码块"); 11 } 12 /** 13 * @param args 14 */ 15 public static void main(String[] args) { 16 new Test(); 17 } 18 }
静态代码块:
static修饰的代码块为静态代码块,在类加载的时候被执行,也就是说即使不创建类的实例对象,该类在被加载的时候也会执行,示例:
1 public class Test { 2 3 public Test(){ 4 System.out.println("构造函数"); 5 } 6 { 7 System.out.println("非静态代码块"); 8 } 9 static{ 10 System.out.println("静态代码块"); 11 } 12 /** 13 * @param args 14 */ 15 public static void main(String[] args) { 16 17 } 18 }
该段代码在运行的时候边会执行静态代码块的内容:
非静态代码块:
无static修饰的代码块修饰的非静态代码块,在类创建实例对象的时候被加载,常用来做对象属性的初始化
1 public class Test { 2 { 3 System.out.println("非静态代码块"); 4 } 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 new Test(); 10 } 11 12 }
在创建Test类的实例对象的时候,在执行Test无参构造函数之前便会执行非静态代码块的内容
构造函数:
无返回值的特殊方法,用于创建类的实例对象。如类不显式声明构造器,系统会默认生成一个无参的构造器;如类中显式的声明了构造器(不管是无参还是带参的),系统都不会再隐式生成一个无参的构造器。
1 public class Test { 2 3 public Test(){ 4 System.out.println("构造函数"); 5 } 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 new Test(); 12 } 13 14 }
new操作之前:
类的加载:
对象的创建:
标签:
原文地址:http://www.cnblogs.com/brainit/p/5554391.html