解读Java静态代码块和构造代码块

栏目: Java · 发布时间: 8年前

内容简介:解读Java静态代码块和构造代码块

一、对静态代码块和非静态代码块进行简单的总结

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 }

打印结果:

解读 <a href='https://www.codercto.com/topics/22013.html'>Java</a> 静态代码块和构造代码块

演示当被调用两次的时候,会发生什么打印结果。加深对静态代码块的理解。

 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 }

打印结果如下:

解读Java静态代码块和构造代码块

介绍一个含参的例子: 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

}

打印结果:

解读Java静态代码块和构造代码块

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-06/144875.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Python

Head First Python

Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99

Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具