Java中静态代码块,普通代码块,构造函数详解
2017-06-12 15:13
85 查看
//执行的优先顺序:静态代码块>mian方法>构造代码块>构造方法。
其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
牛客网的一道经典题目:
1 普通代码块
2.普通构造代码块
3.静态代码块
其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
牛客网的一道经典题目:
package go.jacob.day612; public class Demo3 { public static Demo3 d1=new Demo3(); { System.out.println("A"); } static{ System.out.println("B"); } public static void main(String[] args) { Demo3 d2=new Demo3(); } /* * 运行结果: * A * B * A */ }
package go.jacob.day612; public class Demo3 { static{ System.out.println("B"); } public static Demo3 d1=new Demo3(); { System.out.println("A"); } public static void main(String[] args) { Demo3 d2=new Demo3(); } /* * 运行结果: * B * A * A */ }
1 普通代码块
package go.jacob.day612; public class Demo3 { /* * 普通代码块:在方法或语句中出现的{}就称为普通代码块。 * 普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” */ public static void main(String[] args) { { int x = 3; System.out.println("1,普通代码块内的变量x=" + x); } int x = 1; System.out.println("主方法内的变量x=" + x); { int y = 7; System.out.println("2,普通代码块内的变量y=" + y); } } /* * 运行结果 * 1,普通代码块内的变量x=3 * 主方法内的变量x=1 * 2,普通代码块内的变量y=7 */ }
2.普通构造代码块
package go.jacob.day612; public class Demo3 { /* * 构造代码块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。 * 构造代码块在创建对象时被调用,每次创建对象都会被调用, * 并且构造代码块的执行次序优先于类构造函数。 */ { System.out.println("第一代码块"); } public Demo3(){ System.out.println("构造方法"); } { System.out.println("第二代码块"); } public static void main(String[] args) { new Demo3(); new Demo3(); new Demo3(); } /* * 运行结果: * 第一代码块 * 第二代码块 * 构造方法 * 第一代码块 * 第二代码块 * 构造方法 * 第一代码块 * 第二代码块 * 构造方法 */ }
3.静态代码块
package go.jacob.day612; public class Demo3 { /* * 构造代码块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。 * 构造代码块在创建对象时被调用,每次创建对象都会被调用, * 并且构造代码块的执行次序优先于类构造函数。 */ { System.out.println("普通构造代码块"); } static{ System.out.println("静态代码块"); } public Demo3(){ System.out.println("构造方法"); } public static void main(String[] args) { System.out.println("Demo3主方法"); new Demo3(); new Demo3(); } /* * 运行结果: * 静态代码块 * Demo3主方法 * 普通构造代码块 * 构造方法 * 普通构造代码块 * 构造方法 */ }
相关文章推荐
- java中普通变量、静态变量、静态代码块初始化的顺序辨析
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块的代码示例及区分
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分
- java中普通变量、静态变量、静态代码块初始化的顺序辨析
- 转载:Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- java中普通变量、静态变量、静态代码块初始化的顺序辨析
- Java中普通代码块、构造代码块、静态代码块的区别
- Java中普通代码块,构造代码块,静态代码块区别
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例