一、对静态代码块和非静态代码块进行简单的总结
1.静态代码块:
静态代码块是在当类被载入(内存)时最先被调用的,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。
2.非静态代码块:
非静态代码块是在当类的对象被创建载入(内存)时最先被调用的,每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。
3.静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。
二、相关示例演示
1 public class Cc { 2 public static void main(String[] args) { 3 test p=new test(); 4 } 5 } 6 7 class test { 8 test() { //在类对象创建的时候就开始执行。简称创建即执行。 9 System.out.println("这是构造函数");10 }11 12 { //构造代码块,执行在构造函数之前,每当在创建类对象的时候都执行。13 System.out.println("这是构造代码块");14 }15 16 static { //静态代码块,最早执行,且值执行一次。17 System.out.println("这是静态代码块");18 }19 }打印结果:

演示当被调用两次的时候,会发生什么打印结果。加深对静态代码块的理解。
1 public class Ccc { 2 public static void main(String[]args) 3 { 4 MyTest p=new MyTest(); 5 MyTest p2=new MyTest();//两次调用 6 } 7 } 8 class MyTest{ 9 10 MyTest(){11 System.out.println("这是构造函数");12 }13 14 {15 System.out.println("这是构造代码块");16 }17 18 static{19 System.out.println("这是静态代码块");20 21 }22 }打印结果如下:

介绍一个含参的例子:
1 class Cccc {
2 public static void main(String[] args) {
3 new Person(77);
4 new Person();
5 }
6 }
7
8 class Person {
9
10 Person() {
11 System.out.println("a");
12 }
13
14
15 Person(int x) { //注意带参数了!!
16 System.out.println(x);
17 }
18
19 static {
20 System.out.println("b");
21 }
22
23 {
24 System.out.println("c");
25 }
26 }打印结果:

以上就是三个案例,解读静态代码块和构造代码块的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号