【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月前
|
Java 开发工具
【GDAL-java的四个常用代码示例】
【GDAL-java的四个常用代码示例】
33 0
|
1月前
|
Java
Java isBlank和isEmpty的区别
JavaisBlank和isEmpty的区别
17 0
|
9天前
|
Java 调度
Java中常见锁的分类及概念分析
Java中常见锁的分类及概念分析
14 0
|
9天前
|
Java
Java中ReentrantLock中tryLock()方法加锁分析
Java中ReentrantLock中tryLock()方法加锁分析
11 0
|
25天前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
200 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
9天前
|
Java
Java中关于ConditionObject的signal()方法的分析
Java中关于ConditionObject的signal()方法的分析
21 4
|
9天前
|
Java
Java中关于ConditionObject的分析
Java中关于ConditionObject的分析
17 3
|
11天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
33 0
|
12天前
|
设计模式 缓存 安全
分析设计模式对Java应用性能的影响,并提供优化策略
【4月更文挑战第7天】本文分析了7种常见设计模式对Java应用性能的影响及优化策略:单例模式可采用双重检查锁定、枚举实现或对象池优化;工厂方法和抽象工厂模式可通过对象池和缓存减少对象创建开销;建造者模式应减少构建步骤,简化复杂对象;原型模式优化克隆方法或使用序列化提高复制效率;适配器模式尽量减少使用,或合并多个适配器;观察者模式限制观察者数量并使用异步通知。设计模式需根据应用场景谨慎选用,兼顾代码质量和性能。
|
22天前
|
Java
java的 isEmpty 和 isBlank 区别?
java的 isEmpty 和 isBlank 区别?
8 0