1、定义:

  代码块又称为初始化块,属于类中的成员,将逻辑语句封装在方法体中,通过{}包围起来。

2、分类:

  普通代码块、静态代码块(有static修饰)

public class Block {
public static void main(String[] args) {
new AA("张三"); // 每个构造器都会自动调用代码块内容
new AA(20, "李四");
}
} class AA {
private int age;
private String name; {
System.out.println("我是代码块1");
System.out.println("我是代码块2");
System.out.println("我是代码块3");
} public AA(String name) {
this.name = name;
} public AA(int age, String name) {
this.age = age;
this.name = name;
}
}

3、代码块的理解:

  a、相当于另一种形式的构造器,可以做初始化操作。

  b、使用场景:如果多个构造器都有重复语句,可以抽取到到代码块中,提高代码重用性。

静态代码块:

1、作用:就是对类进行初始化,它随着类的加载而执行,并且只会执行一次。如果是普通代码块,没创建一个对象,就会执行一次。

2、类什么时候被加载:
  a、创建对象实例时(new)。

  b、创建子类对象实例时,父类也会被加载。

  c、使用类的静态成员时(静态成员、静态方法)。

3、普通代码块:创建对象实例时,才会被调用,创建一次,调用一次,如果只是使用类的静态成员时,普通代码块不会执行。

4、小结:

  a、static代码块:类加载时调用,只会执行一次。

  b、普通代码块:创建对象时调用,创建一次,调用一次。

最新文章

  1. 【Kylin实战】Hive复杂数据类型与视图
  2. linux下的目录结构和内容
  3. ArcMap 10.3 AddIN找不到插件
  4. 【练习】数据移动---导出(EXPDP)
  5. Java——各种日期的获取(来自别人分享)
  6. C#操作Excel(2)-- 打开-读取Excel文档
  7. C++面试题:list和vector有什么区别?
  8. BZOJ 2751: [HAOI2012]容易题(easy)( )
  9. SharePoint 内容部署-PowerShell
  10. MySQL (三)-- 字段属性、索引、关系、范式、逆规范化
  11. 详解EBS接口开发之应收款处理
  12. Xcode9无线调试教程
  13. python&JSONP(Jquery篇)
  14. Python_多进程
  15. scala-创建泛型数组(T: Manifest)
  16. Python查看关键字和帮助信息
  17. java反射获取class
  18. Linux查看某一个端口监听情况
  19. [转]WCF体系结构-一张图就是好
  20. LightOJ 1323 Billiard Balls(找规律(蚂蚁爬木棍))

热门文章

  1. JZOJ 3234. 阴阳
  2. 【NOI2014】随机数生成器
  3. Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0.
  4. 基于Python的OpenGL 04 之变换
  5. gin 01
  6. 自定义顺序表ArrayList
  7. qt_2d画图
  8. Eureka服务治理
  9. yile接口
  10. 使用iperf测试网卡性能