Java代码块教程
代码块是指使用 {}括起来的一段代码,根据位置声明的不同,代码块可以分为普通代码块、构造块、静态代码块和同步代码块。
Java代码块详解
语法
{}
参数
参数
描述
{}
在 {} 里面写的代码,{} 包围起来的数据就是代码块
说明
在 Java语言中,代码块就是被 {} 包围起来的代码语句。
案例
普通代码块
普通代码块就是指直接在方法或者是在语句中定义的代码块。
package com.haicoder.net.chunk;
public class ChunkTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
{
String name = "嗨客网";
System.out.println("\n普通代码块里面 -> name : " + name);
}
String name = "www.haicoder.net";
System.out.println("\n普通代码块外面 -> name : " + name);
}
}
运行结果如下:
我们看到普通的代码块是写在方法里面的,它的代码块里面和代码块外面变量不会影响,他们之间是隔离开来的。
构造块
构造块是写在类里面的写的代码块。我们定义一个类,用来封装构造块。
package com.haicoder.net.chunk;
public class Chunk{
{
System.out.println("1 嗨客网 构造块在构造方法之前");
}
public Chunk(){
System.out.println("3 嗨客网 构造方法");
}
{
System.out.println("2 嗨客网 构造块在构造方法之后");
}
}
定义一个类,来调用封装好的代码块
package com.haicoder.net.chunk;
public class ChunkTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
Chunk chunk = new Chunk();
}
}
运行结果如下:
我们可以看到,我们在构造方法的前后各自定义了一个方法块。我们会发现构造块里面语句会在构造方法里面的语句之前执行。
静态代码块
静态代码块,就是我们在 {} 方法块前面加
package com.haicoder.net.chunk;
public class Chunk{
{
System.out.println("2 嗨客网 构造块在构造方法之前");
}
static {
System.out.println("0 嗨客网 在构造方法前的静态代码块");
}
public Chunk(){
System.out.println("4 嗨客网 构造方法");
}
{
System.out.println("3 嗨客网 构造块在构造方法之后");
}
static {
System.out.println("1 嗨客网 在构造方法后的静态代码块");
}
}
调用定义了代码块的类:
package com.haicoder.net.chunk;
public class ChunkTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
Chunk chunk = new Chunk();
Chunk chunk1 = new Chunk();
}
}
运行结果如下:
从运行结果我们可以看到,静态代码块会在构造块之前运行,然后是构造块,最后是构造函数。而且我们知道 static 是类维度的,所以无论我们创建多少个对象,静态代码块始终只执行一次。
Java代码块总结
在 {} 包起来的一段代码块,它里面可以定义一些特有的逻辑操作。在定义对象的时候,静态代码块的执行顺序是第一个,它执行仅执行一次。构造块是在类维度的,普通代码块是在方法维度的。