java
文章平均质量分 85
java
Yashar Qian
你好,我是Yashar Qian,一个写了十年代码的“老”程序员。
我的技术地图有点广:以 .NET 为根据地,也曾远征 Java、C++、Python 的江湖,并用 Vue、SQL 和 iOS 开发过不少应用。这些经历让我明白,技术之道,万变不离其宗。
而现在,我选择了一条“向下扎根”的道路——嵌入式开发。我着迷于代码如何直接驱动硬件,享受在资源受限的环境下创造价值的乐趣。这对我而言,是一个全新的起点。
在这里,我将以一个“资深新手”的视角,记录并分享从传统软件到嵌入式世界的转型之路。我的文章会力求通俗易懂,既有硬核的代码分析,也有踩坑填坑的实战记录。期待能与志同道合的你一起学习,共同成长!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring 是什么?
Spring是一个开源的Java应用程序框架,专注于简化企业级Java开发。其核心特性包括依赖注入/控制反转降低代码耦合度,面向切面编程分离通用功能,强大的事务管理,以及出色的框架整合能力。Spring生态系统包含多个子项目:核心框架Spring Framework、简化开发的Spring Boot、微服务工具集Spring Cloud、数据访问层Spring Data和安全框架Spring Security等。通过模块化设计和"约定优于配置"理念,Spring显著提升了Java开发效率原创 2025-11-29 20:18:28 · 759 阅读 · 0 评论 -
Java 中的Lombok 是什么?
Lombok是一个Java库,通过注解在编译时自动生成getter、setter、构造函数等样板代码,显著减少重复代码量。常用注解如@Data可自动生成多个方法,使代码更简洁易读。其工作原理是利用Java注解处理工具修改抽象语法树,在编译阶段注入代码。虽然需要IDE插件支持且可能降低源码可读性,但Lombok极大提升了开发效率和代码可维护性,已成为Java开发尤其是Spring Boot项目中的常用工具。原创 2025-11-29 20:14:29 · 699 阅读 · 0 评论 -
Lombok 注解 @Slf4j
Lombok的@Slf4j注解是一个编译时注解,用于自动生成SLF4J日志记录器对象,取代手动声明Logger的样板代码。该注解会创建名为log的静态常量Logger对象,使代码更简洁一致。使用前需添加Lombok依赖和IDE插件支持。SLF4J本身是日志门面,需绑定具体实现如Logback或Log4j。Lombok还提供其他日志框架的类似注解。@Slf4j通过减少重复代码提升了开发效率和可维护性。原创 2025-11-21 23:05:08 · 598 阅读 · 0 评论 -
Spring 中的 @Service 注解
Spring的@Service注解用于标识服务层组件,实现业务逻辑分层。核心作用包括:1)自动注册Bean并支持依赖注入,简化配置;2)明确代码分层结构,提升可读性和可维护性;3)支持声明式事务管理。与@Component等注解相比,@Service更具语义化,专门用于业务逻辑层。使用时只需在类上添加注解并确保组件扫描开启。该注解是Spring实现分层架构和简化开发的重要工具。原创 2025-11-21 23:03:36 · 671 阅读 · 0 评论 -
Java 如何折叠代码?
Java代码折叠功能可提升代码管理效率,主流IDE操作如下: 常用操作 IntelliJ/Eclipse/VS Code等IDE均支持快捷键折叠代码(如Ctrl+Shift+-折叠全部) 支持点击行号旁的+/-符号展开/折叠当前块 自定义折叠 使用//#region和//#endregion包裹代码块 或使用//<editor-fold>注释(适用Eclipse/IDEA) 配置建议 在IDE设置中调整默认折叠规则 对冗长代码使用区域分组提高可读性 掌握这些技巧可显著提升代码浏览效率。原创 2025-11-20 23:04:03 · 298 阅读 · 0 评论 -
Lombok requires enabled annotation processing
Lombok注解处理未启用导致编译错误。解决方法:1)IDEA中启用注解处理(Settings→Build→Compiler→Annotation Processors);2)确保安装Lombok插件;3)检查Maven/Gradle依赖配置正确;4)清理并重建项目。启用后Lombok注解将正常生成代码。该问题常见于首次使用或新导入项目时。原创 2025-11-14 08:00:00 · 627 阅读 · 0 评论 -
Java 中 @Autowired注解
@Autowired是Spring框架的核心注解,用于实现依赖注入(DI),让Spring容器自动管理对象依赖关系。它支持三种注入方式:字段注入(最常见)、构造器注入(推荐)和Setter方法注入。工作原理先按类型匹配Bean,存在歧义时再按名称或使用@Qualifier指定。主要优势包括解耦、易测试和可维护性提升,但也需注意处理找不到Bean或多个Bean的异常情况。构造器注入因其不可变性和明确性成为官方推荐方式。原创 2025-11-04 10:51:45 · 1359 阅读 · 0 评论 -
Java中的@SneakyThrows
Lombok的@SneakyThrows注解能自动捕获并抛出受检异常,简化代码编写。它通过编译时生成try-catch块和sneakyThrow方法欺骗编译器,使代码无需显式处理异常。优点包括代码简洁、避免吞掉异常,特别适用于Lambda表达式;缺点则是破坏了Java的受检异常机制,可能导致调用方困惑和调试困难。建议谨慎使用,适用于确定异常需要传播的场景,避免在需要明确处理异常的业务逻辑中使用。原创 2025-10-30 15:38:27 · 847 阅读 · 0 评论 -
【多线程】屏障/栅栏(Barrier)
屏障(Barrier)是一种多线程同步机制,允许多个线程在共同执行点相互等待。其核心思想是"同进同退"——所有线程必须到达屏障点才能继续执行,否则先到的线程会阻塞等待。屏障主要用于分阶段任务的同步,如并行计算、系统模拟等场景。Java中的CyclicBarrier是典型实现,可循环使用,当所有线程调用await()后,屏障会重置并唤醒所有线程继续执行。与一次性使用的闭锁不同,屏障支持多阶段同步,适用于需要重复协作的并行任务。合理使用屏障能有效管理复杂多线程程序的执行流程。原创 2025-10-10 21:07:23 · 990 阅读 · 0 评论
分享