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,如需转载请自行联系原作者

相关文章
|
4月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
412 5
|
5月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
667 3
|
5月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
484 0
Java API 开发者
165 0
|
7月前
|
安全 Java 网络安全
Java 实现 SMTP 协议调用的详细示例及实战指南 SMTP Java 调用示例
本文介绍了如何使用Java调用SMTP协议发送邮件,涵盖SMTP基本概念、JavaMail API配置、代码实现及注意事项,适合Java开发者快速掌握邮件发送功能集成。
779 0
|
7月前
|
算法 搜索推荐 Java
Java中的Collections.shuffle()方法及示例
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,支持原地修改。可选传入自定义 `Random` 对象以实现结果可重复,适用于抽奖、游戏、随机抽样等场景。
300 0
|
8月前
|
存储 安全 Java
应届生面试高频 Java 基础问题及实操示例解析
本文总结了Java基础面试中的高频考点,包括数据类型分类、final修饰符的三种用途、static关键字特性、==与equals的区别、Java只有值传递的特性、String的不可变性、Error与Exception的差异、程序初始化顺序规则,以及IO流的字节流/字符流分类。每个问题都配有简明定义和典型示例,如用final修饰变量示例、static方法调用限制说明等,帮助应聘者快速掌握核心概念和实际应用场景。
189 0
|
8月前
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
288 3
|
11月前
|
Java
java构造方法,构造代码块,静态代码块的执行顺序
本文介绍了Java中构造方法、构造代码块和静态代码块的执行顺序。静态代码块用`static`声明,在JVM加载类时执行一次;构造代码块在每次创建对象时执行,先于构造方法;构造方法用于对象初始化,创建对象时调用。示例代码展示了这三者的输出顺序,并解释了它们的区别和应用场景。
356 1