Java
Python前端运维数据库
Java
Java
  • 新特性
    • Record
    • Optional
  • 面向对象
    • 面向对象基础
    • 构造方法
    • 继承与多态
    • 接口
    • 修饰符
    • 代码块
    • 接口(Interface)
    • 枚举类
  • IO流
    • IO
      • 字节流
      • 字符流
      • 缓冲流
      • 转换流
      • 操作ZIP
      • File 对象
    • NIO
      • Channel和Buffer
      • 异步文件通道AsynchronousFileChannel
      • Selector
      • Path/Files/Pipe
  • 反射
  • 内存分配
  • 集合
    • 简介
    • List
    • Set
    • Map
    • EnumMap
  • 日期与时间
    • Date和Calendar
    • Java8 新时间 ✨
      • LocalDateTime
      • ZonedDateTime
      • Duration
    • 时间格式化
      • SimpleDateFromat
      • DateTimeFormatter ✨
    • Instant
    • 实践
  • 网络编程
    • IP 地址
    • 网络模型
    • TCP 编程
    • UDP 编程
    • HTTP 编程
  • 加密和安全
  • 并发编程
    • 多线程
    • 线程与进程的区别
    • 线程组和线程优先级
    • 线程池
    • 线程锁
  • 异步任务
    • Future
    • CompletableFuture
      • 开启异步任务
      • 串行任务方法
      • 并行任务方法
      • 任务结束方法
      • 异常处理方法
      • 查看状态方法
      • 设置任务结果方法
  • 执行系统命令
  • Stream 流
    • Stream 流的创建
    • Stream 流串行与并行
    • Stream 流中间操作
    • Stream 流终端操作
  • Lambda 表达式
    • Lambda 表达式简介
    • Lambda 表达式语法
    • 方法引用
  • String
  • StringBuffer
由 GitBook 提供支持
在本页
  • 实例初始化块
  • 静态初始化块
  • 同步块

这有帮助吗?

  1. 面向对象

代码块

代码块(Code Blocks)是一段被包裹在花括号中的代码,用于在特定的时机执行一些操作。常见的代码块包括实例初始化、静态初始化和同步块。

实例初始化块

实例初始化块是在创建对象时执行的代码块,它用于初始化实例变量或执行其他需要在对象创建时进行的操作。

实例初始化块在每次创建对象时都会执行,并且在构造函数之前执行。

public class MyClass {
    private int x;

    // 实例初始化块
    {
        x = 10;
        System.out.println("实例初始化块执行");
    }

    public MyClass() {
        System.out.println("构造函数执行");
    }
}

静态初始化块

静态初始化块是在类加载时执行的代码块。它用于初始化静态变量或执行其他需要在类加载时进行的操作。

静态初始化只会执行一次,并且在类加载时按照它们在代码中的顺序执行。

public class MyClass {
    private static int x;

    // 静态初始化块
    static {
        x = 10;
        System.out.println("静态初始化块执行");
    }

    public static void main(String[] args) {
        System.out.println("主方法执行");
    }
}

当创建对象时,初始化块的执行顺序是:静态初始化块->实例初始化块->构造函数。

同步块

同步块是用于实现线程同步的代码块。它使用关键字synchronized来表示,只允许一个线程进入同步块执行。

同步块可以用户保护共享资源,确保多个线程之间的安全访问。

public class MyClass {
    private int count;

    public void increment() {
        synchronized (this) {
            count++;
        }
    }
}
上一页修饰符下一页接口(Interface)

最后更新于1年前

这有帮助吗?