JAVA基础——代码块详解(普通代码块,构造代码块,静态代码块,同步代码块)
2020-09-05 21:05
134 查看
文章目录
Java语言中,代码块一般可分为四类:普通代码块,构造代码块,静态代码块,同步代码块。
普通代码块
普通代码块就是我们平常所说的方法中的方法体。
构造代码块
构造代码块是由来个大括号包裹起来的代码块,其语法结构如下:
{ ………… ………… }
静态代码块
静态代码块是由static{}包裹起来的代码片段,其语法结构如法:
staic{ ………… ………… }
同步代码块
同步代码块是由synchronized(){}包裹起来的代码块,其语法结构如下:
synchronized(){ ………… ………… }
四者之间的作用和区别
普通代码块就是保证方法的执行。同步代码块用于多线程环境下。在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。我们主要来看一下静态代码块和构造代码块的作用和区别。
先看一下代码:
public class Test { public static void main(String[] args) { TestOne t = new TestOne(); t.getTestOne(); } } class TestOne{ private static int testOne; static { testOne = 1; System.out.println(testOne); } //静态代码块 { testOne = 2; System.out.println(testOne); } //构造代码块 public TestOne() { testOne = 3; } //构造方法 public void getTestOne() { System.out.println(testOne); } }
在TestOne类里分别定义了静态代码块,构造代码块和构造方法。
输出结果:
可以看出,静态代码块和构造代码块先于构造方法执行,静态代码块最先执行,然后构造代码块执行,最后构造函数执行。
静态代码块可以有多个,在类加载的时候最先执行,并且只执行一次,可以用来记录类加载的时机
构造代码块在静态代码块之后执行,在构造方法之前执行,并且,构造代码块可以执行多次,只要构造方法执行一次,构造代码块也会跟随执行一次。
静态代码块和动态代码块都存在于类中,不能存在于方法体内
相关文章推荐
- java中的静态代码块、构造代码块、普通代码块和同步代码块总结
- java中的静态代码块、构造代码块、普通代码块和同步代码块总结
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
- java中的普通代码块、静态代码块、构造代码块和同步代码块
- Java 基础(5)—— 普通代码块、构造代码块、静态代码块
- 牛客网Java刷题知识点之什么是代码块、普通代码块、静态代码块、同步代码块、构造代码块以及执行顺序
- Java中的代码块(普通代码块、静态代码块、同步代码块、构造代码块)与final变量的初始化
- java中类的静态代码块、构造代码块、构造方法、静态成员的初始化顺序详解
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- java的代码块优先级 (静态代码块,构造代码块,普通代码块)
- Java中普通代码块,构造代码块,静态代码块的代码示例及区分
- 黑马程序员_java基础学习笔记之(构造函数&构造代码块&静态代码块)的区别
- Java: synchronized详解,静态同步方法,普通同步方法,同步代码块
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java 中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java中普通代码块,构造代码块,静态代码块区别及代码示例