-
Java匿名内部类必须用new和{}定义,本质是编译生成的独立类文件,仅能继承一个类或实现一个接口,可访问外部final变量,但易致内存泄漏,Lambda仅适用于函数式接口。
-
URL类用于表示和操作URL,专注地址解析、构造与标准化,不发送请求;可拆解协议、主机等字段,支持相对路径解析和自动编码,通过openConnection()配合URLConnection发起请求,但不可变且功能基础。
-
nav是HTML5语义化导航元素,用于包裹网站级或页面级主要导航链接,提升SEO和无障碍访问;应配合ul/li列表使用,并通过aria-label区分多个nav的用途,样式与交互需由CSS/JS实现。
-
泛型方法签名应写为publicstatic<T>voidprintArray(T[]array),支持String[]、Integer[]等引用类型数组,但不支持int[]等基本类型数组;需手动判空并用Arrays.toString()安全打印。
-
DCL+volatile是Java懒汉式线程安全单例最成熟方案,因volatile禁止重排序并保证可见性,双重判空分别避免无谓加锁和多线程重复初始化。
-
Redis锁基于AP模型,主从异步复制下存在锁丢失风险,适合高吞吐、弱一致性场景;ZooKeeper锁基于CP模型,ZAB协议保障强一致与自动故障恢复,适用于金融等零容错核心业务。
-
wait()必须在synchronized块中调用,否则抛IllegalMonitorStateException;notify()随机唤醒一个线程,notifyAll()唤醒所有等待线程;wait()需置于while循环中以防虚假唤醒。
-
String.getBytes()不指定字符集会使用系统默认编码,导致跨平台结果不一致,引发乱码等问题;必须显式指定StandardCharsets.UTF_8等标准字符集,且编解码字符集需严格匹配。
-
Java反射是在运行时动态获取类信息并操作对象的能力,核心是Class对象,可通过Class.forName、类字面量或实例getClass()获取,支持创建对象、访问字段、调用方法及获取元数据,广泛用于Spring、JDBC等框架。
-
Collectors.partitioningBy适用于实时低延迟双路分流场景,需将智能逻辑前置为纯内存谓词函数,单批次建议≤5000条;超量或需跨节点协同时应升级FlinkCEP等分布式方案。
-
Java14的record是专为不可变数据载体设计的轻量级类,自动实现final字段、全参构造器、accessor、equals/hashCode/toString,禁止继承与实例字段,适用于DTO、VO等只读场景。
-
Collectors.partitioningBy用于风险过滤的核心是布尔谓词二元切分,将交易一次性分为高/低风险两组;需封装多维度业务规则为可测Predicate,结合流式处理与校验保障风控实效性。
-
Record类是Java16为DTO场景设计的不可变扁平数据载体,自动生成字段、构造器、getter、equals、hashCode和toString;组件名即访问器名(无get前缀);仅支持紧凑构造器校验,不支持继承。
-
抽象方法是Java中实现模板设计模式的核心,用于在抽象类中定义无实现的方法,由子类具体实现。通过模板方法封装固定流程,如数据处理的process(),将loadDataSource()、parseData()等步骤延迟至子类实现,提升代码复用性。例如FileDataProcessor实现文件相关操作,新增网络处理器时只需扩展新子类。可通过钩子方法afterProcess()提供可选扩展点,默认空实现,子类按需覆盖。模板方法应声明为final防止篡改,抽象类避免过度约束,合理使用protected修饰抽象方
-
JDK1.7中ConcurrentHashMap使用分段锁(Segment),默认16个Segment,每个Segment为独立ReentrantLock+HashEntry数组,锁粒度固定且并发度上限硬编码;JDK1.8彻底弃用Segment,改用CAS+首节点(Node/TreeNode)级synchronized锁,实现更细粒度、动态可伸缩的并发控制。