-
SpringBoot通过约定优于配置、自动装配和起步依赖降低初始化成本,但不提供CRUD生成器;需注意内嵌容器配置、主类包路径、数据库选型(JPA/MyBatis)、Jackson中文与日期序列化配置,以及多starter间自动配置冲突问题。
-
绝大多数场景下,用Runnable更常用;因其解耦任务逻辑与线程生命周期,利于复用、测试和资源管理,且适配线程池和lambda,而newThread易导致重复启动异常、误调run()同步执行等问题。
-
top找出Java进程PID后,为什么top-H显示的线程ID和jstack里的nid对不上因为top-H默认显示的是Linux线程的十进制TID(ThreadID),而jstack输出里nid=0x...是十六进制的nativethreadID。直接比对会漏掉真凶。用printf"%x\n"把top-H看到的十进制TID转成小写十六进制,再和jstack输出里的nid=0x7f8a对照注意:JDK8u60+默认
-
PageHelper需用官方starter(如1.4.6/1.5.0+)并排除MybatisAutoConfiguration;startPage()必须紧邻mapper调用,避免AOP干扰;count报错时可配count(1)或手动写count方法;返回前端须转PageResult等DTO,禁用直接序列化Page。
-
本文详解如何利用JetpackDataStore(推荐)或SharedPreferences持久化导航栈状态,使应用从后台返回时准确恢复至用户离开前的Fragment,彻底解决因Activity重建导致导航重置为Splash屏的问题。
-
MyBatisXML修改不生效主因是未启用热加载,需引入mybatis-spring-boot-devtools插件并配置enable:true,确保XML路径匹配、文件名与接口名一致,且避免手动定义SqlSessionFactory或跨文件include。
-
确认Dubbo版本与SpringBoot兼容性用Dubbo做RPC,第一步不是写接口,而是看版本——dubbo-spring-cloud-starter和dubbo-spring-boot-starter不是同一套东西,混用会直接导致BeanCreationException:Errorcreatingbeanwithname'serviceBean'。SpringBoot2.4+默认禁用spring.factories自动装配,老版Dubbo(比如2.
-
super是子类访问父类成员的唯一安全通道,用于无歧义调用父类构造器、方法或字段;必须首行调用super()或super(参数),且仅限非static上下文,不可跨级访问祖父类。
-
Java的Base64类核心作用是将二进制数据安全转为纯文本格式,以便在仅支持ASCII的环境中可靠传输或存储;它不加密,仅解决传输可行性与防乱码问题。
-
Java异常不该承载业务含义。异常本质是控制流中断机制,仅适用于不可恢复的非预期错误(如NullPointerException、IOException等),业务状态应通过返回值(如OrderResult)显式表达,以降低维护成本、提升可测性与可扩展性。
-
本文介绍在税务系统中,当用户输入任意税率时,如何将其自动映射到预定义的合法税率集合中——支持两种主流策略:取绝对差值最小的最近值(四舍五入式校准),或取首个不小于输入值的“向上取整式”税档。
-
final类不能被继承,编译器在语法分析阶段即报错“cannotinheritfromfinalclassA”;其设计目的是语义封闭与安全控制,如String保证不可变性、工具类防篡改、敏感逻辑防注入;内部成员不自动final,需显式修饰;扩展应采用组合、工厂方法或策略模式而非继承。
-
本文介绍如何在JavaStream的多级排序中,针对每个排序字段独立控制升序或降序,通过Comparator.reversed()动态包装比较器,实现灵活、可组合的条件化排序逻辑。
-
permits是Java17密封类机制中的关键字,用于在sealed类或接口声明末尾显式列出允许继承或实现的子类,仅作编译期继承控制,不授予权限、不影响运行时行为。
-
DelayQueue要求元素实现Delayed接口,否则poll()始终返回null;需用绝对时间戳实现getDelay()和compareTo(),并配守护线程消费任务。