开发环境
基于:IntelliJ IDEA
、Maven构建工具
、JDK1.8
、SpringBoot 2.3.4
、Spring4.3.28
编写。
官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装
更多干货
请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章
局部代码块
- 位置:
出现在方法体中 - 作用:
限定变量的生命周期,及早释放,提高内存利用率。(快速释放变量)
内层作用域,可以看到外层已经定义的变量; 当脱离了作用域,局部代码块中定义的那些变量都被销毁
构造代码块
-
位置:
出现在类中、方法外(成员的位置) -
执行顺序:
当直接给成员变量赋值时 ,最先执行–>构造代码块–>构造方法。可放一些通用逻辑 可以执行多次 即new多次
静态代码块
-
位置:
出现在类中、方法外 位于成员的位置。 -
作用:
当类被jvm加载时就会执行,所以适合放置一些全局的初始化的逻辑。 -
特点:
1.静态代码块,在程序执行期间有且仅执行一次。
2.静态代码块中仅能访问静态的成员(即静态的变量和静态的方法)
3.构造代码块中 既可以 访问静态的内容 也可以 访问成员变量和成员的方法。 -
执行顺序:
当直接给成员变量赋值时 ,最先执行–>静态代码块–>构造代码块–>构造方法。
同步代码块
- 使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
静态代码块和构造代码块的异同点
-
相同点:都是JVM加载类后且在构造函数执行之前执行,在类中可定义多个,一般在代码块中对一些static变量进行赋值。
-
不同点:静态代码块在非静态代码块之前执行。静态代码块只在第一次new时执行一次,之后不在执行。而非静态代码块每new一次就执行一次。