-
Java中利用类字面量(如User.class)构建通用转换器,核心是以Class对象为类型令牌驱动反射实例化、字段赋值及Jackson反序列化,兼顾类型安全与复用性。290 收藏 -
语法靠高频小练习形成肌肉记忆,而非死记硬背;通过最小可运行块、错误驱动学习、坑点检查清单和每日15分钟快闪训练(盲写+读错代码)提升手感。409 收藏 -
子线程崩溃导致应用无响应,因其静默退出使依赖状态未更新、回调未发出、资源未释放;setUncaughtExceptionHandler仅对调用它的线程实例生效,须在start()前设置,且不可捕获主线程异常。351 收藏 -
Collections.singletonMap()返回不可变Map,所有修改操作(如put、remove)均抛UnsupportedOperationException;它接受null键值,而Java9+的Map.of()禁止null,且二者实现与序列化特性不同。107 收藏 -
String.join比StringBuilder更适合简单拼接,因其语义清晰、代码简洁、自动处理空集合返回"",但不跳过null或空字符串,仅适用于纯字符串+固定分隔符场景。369 收藏 -
本文介绍在SpringBoot项目中基于Log4j2实现“每个类输出到专属日志文件”的完整方案,涵盖Logger初始化规范、log4j2.xml配置要点,并提供可运行示例与关键注意事项。454 收藏 -
只定义getter无法实现真正不可变性,因反射可修改私有字段、getter返回可变对象引用会导致外部篡改、序列化/JSON反序列化可能绕过getter直接赋值。283 收藏 -
使用BigDecimal可避免浮点精度问题,推荐字符串构造如newBigDecimal("0.1"),运算通过add、subtract等方法实现,除法需指定精度和舍入模式,比较应使用compareTo而非equals或==。398 收藏 -
最安全通用的方式是用Collection.toArray(T[])方法;无参toArray()返回Object[],强转泛型数组会因泛型擦除和JVM类型检查导致ClassCastException,正确写法为list.toArray(newString[0])。111 收藏 -
G1字符串去重由-XX:+UseStringDeduplication实现,仅作用于老年代中内容相同的byte[]/char[],StringTable不参与去重;jcmdVM.stringtable仅显示intern引用元信息,无法反映去重效果,需通过PrintStringDeduplicationStatistics日志确认。412 收藏 -
codePointAt()能正确获取增补字符的Unicode码点,而charCodeAt()在遇到代理对时仅返回高代理值;codePointAt()自动处理代理对计算,且索引指向UTF-16单元而非用户感知字符位置。322 收藏 -
默认equals()只比较引用,需重写并同步重写hashCode();Lombok@EqualsAndHashCode有字段限制和继承陷阱;Objects.equals防null更安全;record自动生成但依赖字段类型正确实现equals()。114 收藏 -
调用window.print()可触发浏览器原生打印对话框,需配合@mediaprintCSS隐藏非关键元素、优化布局适配A4尺寸,并利用onafterprint增强交互体验。267 收藏 -
BigDecimal.scaleByPowerOfTen()仅执行十进制小数点位移(×10ⁿ),不处理物理单位换算;KB→GB需按1024²或1000²系数显式除法,不可直接调用该方法。101 收藏 -
浅拷贝只复制顶层结构,嵌套对象共享引用;深拷贝递归复制所有层级,完全独立互不影响。核心差异在于是否切断引用链,浅拷贝修改嵌套内容会同步影响原对象,深拷贝则不会。396 收藏