注意:代码块中声明的变量的作用域只在这个代码块中

1. 局部代码块

作用在方法当中,作用是控制变量的生命周期:

public void show(){{System.out.println("局部代码块运行!");}
}

在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间。因此就有了局部代码块。

2. 构造代码块

作用在类的定义Body中,作用是给类的部分字段统一初始化:

public class Apple {private String size;//构造代码块  {System.out.println("构造代码块运行!");size = "E";}
}

构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。所以理所当然的,构造代码块在构造函数之前执行。

3. 静态代码块

作用有两个: 
(1)给类的静态变量赋值; 
(2)声明静态变量;

作用在类的Body中,对类中的静态变量初始化:

public class APP {static int x, y; // 静态变量static {x = 5; // 给静态变量x赋值}public static void myMethod() {y = x++ + ++x; // x++ 先使用x的值再加1;++x先加1再使用x的值}public static void main(String[] args) {x--;myMethod();System.out.println(x + y + ++x);}
}输出:23

注意,如果静态代码块中的代码改为:

static {int x = 5; // 声明一个静态变量
}

则只是在声明静态变量,而且这个静态变量的作用域只在这个代码块中,而不是进行初始化,最后的输出结果是3。

转载自:https://blog.csdn.net/dustin_cds/article/details/79143760

Java常见代码块的作用与区别相关推荐

  1. java 静态代码块的作用_Java中什么是静态代码块,有什么作用?

    在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.静态代码块随着类加载而加载,有多个静态代码块的,按代码块前后顺序加载. 由于JVM在加 ...

  2. java 代码块的作用_4种Java代码块的作用讲解

    4种Java代码块的作用讲解 时间:2017-06-28     来源:华清远见JAVA学院 今天华清Java学院小编要和大家分享的是Java代码块的作用,代码块是一种常见的代码形式,他用大括号&qu ...

  3. Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例

    Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例 2018年05月08日 08:12:48 WJN不忘初心 阅读数:34 除了说普通代码块,静态代码块,构造代码块的执行顺序外,还有静 ...

  4. Java~~静态代码块

    1. 可以使用static关键字来定义"静态代码块": (1)语法格式: static{ java语句: } (2)静态代码块在类加载时执行,并且只执行一次. (3)静态代码块在一 ...

  5. java子类代码块_java中父类子类静态代码块、构造代码块执行顺序

    父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...

  6. java 静态代码块有什么用,java编程开发静态代码块的使用方法都有哪些

    代码块是程序员在学习java编程开发的时候会接触到的一个代码,而今天我们就通过案例分析来了解一下,java编程开发静态代码块的使用方法都有哪些. (一)java静态代码块静态方法区别 一般情况下,如果 ...

  7. java静态代码块和实例代码块

    一.静态代码块 1.什么是静态代码块? 用static修饰的代码块是静态代码块.它是在类加载时加载的,并且只会加载一次. 2.静态代码块的语法 static { java语句: java语句: } 3 ...

  8. java中代码块之静态代码块和非静态代码块

    一.代码块: 语法:使用{}包裹的,可以在{}中写代码. 修饰符:static 或者不修饰. static修饰的为静态代码代码块. 格式: //静态代码块,随着类的加载児执行static{System ...

  9. java 代码块同步,Java 同步代码块

    Java 同步代码块 1 什么是Java同步代码块 同步代码块可用于对方法的任何特定资源执行同步. 假设您的方法中有50行代码,但是您只想同步5行,则可以使用synchronized代码块. 如果将方 ...

最新文章

  1. 按器件划分微型计算机是()计算机,计算机与信息技术概述(答案)
  2. appium: adb server is out of date.killing
  3. Android是否会因低价打败iPhone
  4. 使用访问控制列表控制用户登录
  5. mysql dal_Entity Framework连接Mysql数据库并生成Model和DAL层
  6. JavaFX官方教程(五)之在JavaFX中创建表单
  7. poj2385 基础的动态规划算法 挑战程序设计竞赛
  8. java中的getinstance_Java中的KeyPairGenerator getInstance()方法
  9. Edraw的深化使用画网络拓扑图
  10. matlab读取npy文件
  11. 微信小程序php签到功能,微信小程序签到功能
  12. 轻松打造企业内部NOD32升级服务器
  13. 线性函数、非线性函数与线性回归的区别
  14. 花了一万多买的web前端全套教程,现在分享给大家
  15. Newton冷却定理微分数学公式推导
  16. 销售人员激励机制怎么定?
  17. mysql查询薪酬最高_SQL查询找到第N个最高薪水
  18. 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
  19. ws心跳检测完整代码,for websocket
  20. 什么是CakePHP

热门文章

  1. NLP类别不均衡问题之loss大集合
  2. 旷视 AI 飞跃 | 研究生联合培养计划
  3. Java 实现 Trie (前缀树)
  4. SQL学习---第一章
  5. 08 | 替换策略: 缓存满了怎么办?
  6. windows 下 logstash 安装启动
  7. Eureka出现Root name ‘timestamp‘ does not match expected (‘instance‘) for type xxx的错误,如何解决?
  8. 实现WebMvcConfigurer接口扩展Spring MVC的功能
  9. Spring Boot——游戏成就系统设计DEMO
  10. BugKuCTF 杂项 又一张图片,还单纯吗