代码块含义:使用{ }括起来的代码

代码块类型:

1.局部代码块:定义在方法体中。

2.构造代码块:也叫初始化代码块,定义在类中方法体之外。

3.静态代码块:定义在类中方法体之外,被static修饰符所修饰,

随着类加载而执行。

4.同步代码块:在Java的多线程中,为解决并发操作可能造成的异常,

而引入同步监视器,使用同步监视器的通用方法就是同步代码块。

构造代码块VS构造方法:

在Java程序中构造代码块先执行,然后才是构造方法。

静态代码块:用static修饰的代码块

1.可以有输出语句。

2.可以对类的属性、类的声明进行初始化操作。

3.不可以对非静态的属性初始化。即不可以调用非静态的属性和方法。

4.若有多个静态的代码块,那么按照从上到下的顺序依次执行。

5.静态代码块的执行要先于非静态代码块。

6.静态代码块随着类的加载而加载,且只执行一次。

非静态代码块:没有static修饰的代码块

1.可以有输出语句。

2.可以对类的属性、类的声明进行初始化操作。

3.除了调用非静态的结构外,还可以调用静态的变量或方法。

4.若有多个非静态的代码块,那么按照从上到下的顺序依次执行。

5.每次创建对象的时候,都会执行一次。且先于构造器执行。

构造代码块VS静态代码块:

1.静态代码块,最多执行一次。

2.构造代码块,每次创建对象都会执行。

 public class CodeBlockDemo {
   public static void main(String[] args) {
     CodeBlockClass codeBlockClass = new CodeBlockClass();
     System.out.println(codeBlockClass.i);
     System.out.println(CodeBlockClass.name);

     //测试构造代码块和静态代码的执行特征:
     CodeBlockClass codeBlockClass1 = new CodeBlockClass();
     CodeBlockClass codeBlockClass2 = new CodeBlockClass();
   }
 }

 class CodeBlockClass {
   int i;
   static String name;

   public CodeBlockClass() {
     System.out.println("contructor method");
   }

   //构造代码块
   {
     i = 10;
     System.out.println("constructor block: " + i);
   }

   //静态代码块
   static {
     System.out.println("static block");
   }

   public void localCodeBlock () {

     //定义局部代码块
     {
       int i = 10;
       System.out.println(i);
     }
   }
 }

最新文章

  1. 用spm2构建seajs项目的过程
  2. MapReduce 2简介
  3. 利用 NSSortDescriptor 对 NSMutableArray 排序
  4. iOS block示例
  5. JavaScript之数据类型
  6. wireshark tcp 协议分析
  7. Python数据结构之注意事项
  8. OpenGL路(四)自制的图形功能(立方体、汽缸、圆锥)
  9. 201521123110《Java程序与设计》第13周学习总结
  10. window下编辑了脚本文件linux报如下错误
  11. centos7安装nginx必要环境
  12. docker~docker-compose的使用
  13. C语言,char类型变量不应与EOF直接比较
  14. AD域安装及必要设置
  15. 如何让浏览器直接输出HTML代码而不解析
  16. HOSTNAME问题 和yum配置163源的操作 安装lsb_release,KSH,CSH
  17. 图像YUV格式介绍
  18. 关于mysql性能压测之tpcc
  19. 077 Apache的HBase与cdh的hue集成(不建议不同版本之间的集成)
  20. 为什么要使用yocto

热门文章

  1. uni-app学习记录05-二级联动及获取DOM对象
  2. git clone出现Permission denied (publickey)解决办法
  3. 从零开始学习Kafka
  4. python基础三之字符串
  5. Vue 小实例 跑马灯效果
  6. css图片填充的几种方式
  7. ZR1158
  8. Linux 内核存取配置空间
  9. es6笔记 day2---数组热闹的循环
  10. Linux 内核注册一个 USB 驱动