穿越Java - 语法基础篇 第三章 面向对象介绍 | 第7节 代码块

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.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一次就执行一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值