您的位置:首页 > 编程语言 > Java开发

关于Java代码块的小小细节

2017-04-22 11:26 148 查看
最近翻阅书籍的时候,看到一些有趣的知识点,这些知识点笔者居然一点儿也不了解,思来想去许久,除了惊讶之外,也说明笔者的知识浅陋的同时,知识储备还有待高呀。

好了,闲话不多说,关于Java代码块笔者可分为X大类:

         1 ,普通代码块:

public static void main(String[] args) {
{
int a = 10;
System.out.println(a);
}
System.out.println(a);
}


1.1 关于普通代码块其实没什么说的,此代码块经常跟在方法或者类后面,形成一块方法区或类区域。没错,普通代码块就是随处可见的花括号‘{ }’。

 2 , 构造代码块:

2.1 顾名思义构造代码块,就是在类中直接定义,且没有任何前缀、后缀修饰以及修饰符的代码块。

2.2 构造代码块和构造方法一样,是在对象创建时被调用,但构造代码块调用时机却比构造方法还要早。

2.3 如果一个类中有多个构造方法(函数),而这些构造函数都需要初始化成员变量,那么我们可以把构造方法中的相同部分,抽到构造代码块中,达到提高代码的复用性的效果。

2.4 构造代码块不在任何方法体之内,仅位于类的范围,它的地位和其他方法体对等。我们可以这样理解,构造代码块时没有名字的方法体,仅限用于对类数据成员初始化,且仅运行一次。

public class Test {
//构造代码块
{
System.out.println("执行,构造代码块!");
}
//构造方法
public Test() {
System.out.println("执行,构造方法代码块!");
}
public static void main(String[] args) {
Test t = new Test();
}
}


 3,  静态代码块 :

3.1 使用Static关键字修饰的花括号便是静态代码块了,只要功能是用来初始化静态成员变量,但….笔者很少见过。一般用在类加载…

3.2 静态代码块执行时间比main(),构造方法要早。且不管有多少类对象被初始化,静态代码块仅执行一次。

public class Test {
static int a;
//静态代码块
static{
a = 10;
System.out.println("执行,静态代码块!");
}
//构造代码块
{
System.out.println("执行,构造代码块!");
}

public Test() {
System.out.println("执行,构造方法代码块!");
}

public static void main(String[] args) {
Test t = new Test();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 代码块 博客