-
top-H可定位高CPU的OS线程PID,需转为十六进制后用jstack匹配nid;若未匹配则线程可能已退出或为GC线程,应结合jstat-gc分析;jstack仅拍快照易遗漏瞬时问题,推荐pidstat或async-profiler;注意safepoint影响及native层问题需perf/strace辅助。
-
Java用PriorityQueue实现多路归并需:每个文件仅维护一个ChunkReader缓存当前待比较数据,队列中存最小值对应记录;poll后立即从同文件读下一条,读尽则不再入队;避免Integer包装,优选int数组或ByteBuffer;分块大小依堆内存与单条记录体积动态计算,禁用硬编码;配大缓冲区BufferedReader/BufferedInputStream;临时文件用createTempFile+deleteOnExit;控制归并路数防fd泄漏;关键在内存、IO、GC协同对齐。
-
Java中触发NullPointerException的高危操作包括调用方法、访问字段、数组长度、同步块、自动拆箱;常见场景有null字符串调length、集合调size、Integer拆箱、equals左操作数为null、Spring未注入@Autowired字段。
-
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,需显式修饰;扩展应采用组合、工厂方法或策略模式而非继承。