Java中普通代码块,构造代码块,静态代码块区别及代码示例

简介:

//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。

其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。

1 普通代码块

复制代码
 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
 2 public class GeneralCodeBlock01{
 3     public static void main(String[] args){
 4         
 5           {
 6             int x=3;
 7             System.out.println("1,普通代码块内的变量x="+x);    
 8           }
 9           
10           int x=1;
11           System.out.println("主方法内的变量x="+x);
12           
13           {
14              int y=7;
15              System.out.println("2,普通代码块内的变量y="+y);    
16           }
17         }
18   }
复制代码

打印输出:

1,普通代码块内的变量x=3
主方法内的变量x=1
2,普通代码块内的变量y=7

2.构造代码块

复制代码
 1 //构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。
 2 //构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
 3 
 4 public class ConstructorCodeBlock02 {
 5     {
 6         System.out.println("第一代码块");
 7     }
 8 
 9     public ConstructorCodeBlock02() {
10         System.out.println("构造方法");
11     }
12 
13     {
14         System.out.println("第二构造块");
15     }
16 
17     public static void main(String[] args) {
18         new ConstructorCodeBlock02();
19     }
20 }
复制代码

打印输出:

第一代码块
第二构造块
构造方法

3.态代码块:

复制代码
 1 //静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。
 2 //每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
 3 //如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
 4 //注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
 5 
 6 class Code {
 7     {
 8         System.out.println("Code的构造块");
 9     }
10 
11     static {
12         System.out.println("Code的静态代码块");
13     }
14 
15     public Code() {
16         System.out.println("Code的构造方法");
17     }
18 }
19 
20 public class StaticCodeBlock03 {
21     {
22         System.out.println("CodeBlock03的构造块");
23     }
24 
25     static {
26         System.out.println("CodeBlock03的静态代码块");
27     }
28 
29     public StaticCodeBlock03() {
30         System.out.println("CodeBlock03的构造方法");
31     }
32 
33     public static void main(String[] args) {
34         System.out.println("CodeBlock03的主方法");
35         new Code();
36         new StaticCodeBlock03();
37     }
38 }
复制代码

打印输出:

复制代码
CodeBlock03的静态代码块
CodeBlock03的主方法
Code的静态代码块
Code的构造块
Code的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
复制代码

 

//=================================================

此外Java中还有一个同步代码块....

 

本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5413408.html,如需转载请自行联系原作者

相关文章
|
2月前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
81 1
|
3月前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
56 1
|
2月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
93 38
|
3月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
98 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
3月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
62 9
|
3月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
33 1
|
3月前
|
Java API 网络安全
Java 发送邮件示例
本示例展示了如何使用Java编程语言发送电子邮件。通过利用JavaMail API,这段代码实现了从配置SMTP服务器,设置邮件属性,到发送邮件的全过程,为开发者提供了实用的参考。
249 10
|
3月前
|
Java 编译器
【一步一步了解Java系列】:子类继承以及代码块的初始化
【一步一步了解Java系列】:子类继承以及代码块的初始化
146 3
|
4月前
|
JavaScript 前端开发 Java
Java 8 新特性详解及应用示例
Java 8 新特性详解及应用示例
105 3
|
8月前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
330 1
下一篇
开通oss服务