【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析

简介: //执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。 其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。

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

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

1 普通代码块

 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
 2 public class CodeBlock01{
 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     }
19     
20     /*
21     运行结果:
22     1,普通代码块内的变量x=3
23          主方法内的变量x=1
24          2,普通代码块内的变量y=7
25     */

2 构造代码块

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

3 静态代码块

 1 //静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
 2 //如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
 3 //注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
 4 
 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     
21 public class CodeBlock03{
22      {
23       System.out.println("CodeBlock03的构造块");    
24      }
25      
26      static{
27         System.out.println("CodeBlock03的静态代码块");
28         }
29         
30         public CodeBlock03(){
31              System.out.println("CodeBlock03的构造方法");
32             }
33         
34       public static void main(String[] args){
35             System.out.println("CodeBlock03的主方法");
36             new Code();
37             new Code();
38             new CodeBlock03();
39             new CodeBlock03();
40           }
41     }
42 /*
43 CodeBlock03的静态代码块
44 CodeBlock03的主方法
45 Code的静态代码块
46 Code的构造块
47 Code的构造方法
48 Code的构造块
49 Code的构造方法
50 CodeBlock03的构造块
51 CodeBlock03的构造方法
52 CodeBlock03的构造块
53 CodeBlock03的构造方法
54 */

 

目录
相关文章
|
1月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
205 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
16天前
|
消息中间件 Java 应用服务中间件
JVM实战—1.Java代码的运行原理
本文介绍了Java代码的运行机制、JVM类加载机制、JVM内存区域及其作用、垃圾回收机制,并汇总了一些常见问题。
JVM实战—1.Java代码的运行原理
|
24天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
45 5
|
2月前
|
存储 Java 开发者
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
本文详细介绍了 Java 中 `toString()` 方法的重写技巧及其重要
75 10
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
|
25天前
|
开发框架 Java 开发工具
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
|
2月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
110 9
|
2月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
96 12
|
2月前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
60 5
|
2月前
|
人工智能 自然语言处理 搜索推荐
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
269 5
|
2月前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
252 4