-
DTO是专用于层间数据传输的精简无逻辑POJO,本质区别在于其明确职责:仅含必要字段且禁止业务方法;而POJO是泛称,无功能约束。
-
try-finally用于确保关键操作(如资源清理)无论是否发生异常都执行,finally在try退出时无条件运行,但System.exit()或JVM强制终止时除外;推荐优先使用try-with-resources。
-
Arrays.sort不能直接对任意对象数组排序,必须让对象实现Comparable接口或传入Comparator,否则抛ClassCastException;未实现Comparable时可用Comparator灵活定制排序规则,如按金额降序:Arrays.sort(orders,(a,b)->Double.compare(b.amount,a.amount))。
-
URL类用于表示和操作URL,专注地址解析、构造与标准化,不发送请求;可拆解协议、主机等字段,支持相对路径解析和自动编码,通过openConnection()配合URLConnection发起请求,但不可变且功能基础。
-
方法引用不能替代反射调用静态方法,它是编译期绑定的函数式语法糖,与运行时反射机制本质不同;强行混用会导致类型不兼容和编译错误,真正提升可读性的是优先使用方法引用而非反射。
-
Stream.dropWhile()是Java9引入的方法,用于跳过流开头连续满足谓词的元素,保留首个不满足条件的元素及后续所有元素,仅适用于有序串行流。
-
加了serialVersionUID仍报InvalidClassException是因为JVM比对的是其字面值,若未显式声明则自动生成,类结构微调会导致默认值变化;应统一用1L并按兼容性规则递增。
-
Java中Base64编码应使用JDK8+内置Base64.getEncoder().encodeToString(),线程安全且无需依赖;URL安全场景用getUrlEncoder().withoutPadding();解码后需按原始编码(如UTF-8)转字符串,不可直接newString(byte[]);避免手动拼接、错误字符集处理及误当加密使用。
-
BigInteger初始化禁用空字符串或null,须校验非空再构造;运算必须用add()等方法而非+−*/;比较大小用compareTo()而非>==。
-
Java并发应从Thread和Runnable入门,先实践线程启动、共享变量可见性、sleep/join协作;再深入synchronized三种用法及锁对象本质;接着掌握ThreadPoolExecutor核心参数;最后理解CompletableFuture的执行时机与线程池选择。
-
Arrays.binarySearch要求数组必须已升序排序,否则结果不可预测;因其依赖有序性进行区间收缩,乱序时中点值无法提供正确方向,导致查找失败或返回错误索引。
-
本文详解如何在Android中通过IntentFilter正确接收其他应用分享的URL,并自动填充到EditText中,重点解决因intent-filter配置错误导致的Activity无法启动或数据无法获取的问题。
-
Java时间提醒工具应选用ScheduledExecutorService实现高精度定时,支持LocalDateTime配置一次性/周期性提醒,集成弹窗、系统通知、声音反馈,并确保后台运行与资源安全释放。
-
Java并发数据一致性需依场景选同步机制:synchronized控临界区,volatile保可见性非原子性,Concurrent包提高效线程安全组件,CAS适用低冲突场景但有ABA等问题。
-
JavaGC是基于可达性分析的分代回收系统,从GCRoots出发标记存活对象,新生代用复制算法,老年代用标记清除/整理,System.gc()仅建议不保证执行。