串口通讯中,如果选择了奇数校验或者偶数校验,应用层需要对数据进行特殊处理吗

核心内容摘要

Qwen3-TTS-Tokenizer-12Hz快速上手:从上传音频到解码还原全流程
Qwen3-Reranker-0.6B在Linux环境下的部署教程

5大场景下的华硕笔记本散热动态调节:从深夜办公到极限游戏的G-Helper全攻略

在Java中代码块是用一对花括号{}包裹起来的一段代码根据其位置和用途不同Java中主要有以下4中类型的代码块

普通代码块

定义写在方法内部{ }的代码用于限定变量作用域或逻辑分组

特点只能在方法、构造器或初始化块中使用用于提高可读性限制变量生命周期如public void demo() { { int x 10; System.out.println(x); } // x 的作用域到此结束 // System.out.println(x); // 编译错误x 未定义 }注普通代码块很少单独使用通常配合if、else等控制结构

构造代码块

定义直接写在类体不在方法内没有static修饰的{ }块

特点每次创建对象时都会执行且在构造器之前执行多个构造代码块按从上到下的顺序执行构造代码块的作用用于多个构造器共享的初始化逻辑如public class Student { { System.out.println(构造代码块执行); } public Student() { System.out.println(无参构造器); } public Student(String name) { System.out.println(有参构造器: name); } } // 测试 new Student(); // 输出 // 构造代码块执行 // 无参构造器注构造代码块在继承中的执行顺序父类构造代码块 → 父类构造器 → 子类构造代码块 → 子类构造器

静态代码块

定义用static修饰的{ }块写在类体中

特点类加载时执行一次JVM第一次使用该类时用于初始化静态资源如数据库连接、配置加载多个静态代码块按从上到下的顺序执行如public class DatabaseUtil { static { System.out.println(加载数据库驱动...); // Class.forName(com.mysql.jdbc.Driver); } static { System.out.println(读取配置文件...); } } // 第一次使用该类时如调用静态方法、创建对象等 DatabaseUtil.someMethod(); // 输出 // 加载数据库驱动... // 读取配置文件...注静态代码块只执行一次且早于任何对象创建就执行

同步代码块

定义用synchroinzed(对象) 包裹的{ }块用于线程同步

特点锁定指定对象保证线程安全比synchroized方法更灵活可细粒度控制public class Counter { private int count 0; private final Object lock new Object(); public void increment() { synchronized (lock) { count; // 线程安全 } } }注同步代码块是并发编程的核心工具之一

四种代码块对比

总结类型语法执行时机用途普通代码块{ ... }方法调用时限定变量作用域构造代码块{ ... }每次new对象时构造器前共享实例初始化逻辑静态代码块static { ... }类加载时仅一次初始化静态资源同步代码块synchronized(obj) { ... }线程进入时线程同步

重要补充执行顺序当它们共存时public class Test { static { System.out.println(

静态代码块); } { System.out.println(

构造代码块); } public Test() { System.out.println(

构造器); } public static void main(String[] args) { new Test(); new Test(); } }输出

静态代码块

构造代码块

构造器

构造代码块

构造器

泻火楼论坛-泻火楼论坛应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123