-
super是子类访问父类成员的唯一安全通道,用于无歧义调用父类构造器、方法或字段;必须首行调用super()或super(参数),且仅限非static上下文,不可跨级访问祖父类。
-
Arrays.binarySearch返回负值时插入点计算为-(result+1),因需区分查找成功(非负索引)与失败(负值编码),并唯一确定插入位置;插入点即首个≥目标元素的索引,若全小于目标则为数组长度。
-
重写equals()时必须同步重写hashCode(),且两者依据的字段严格一致;否则HashMap、HashSet等集合行为异常。推荐用Objects.hash()生成hashCode,避免手工计算。
-
ArrayList默认容量为0(JDK12+)或10(早期),size()始终为0直到add();add()末尾追加高效,set()需索引<size(),remove()移除元素导致O(n)移动;遍历时修改会抛ConcurrentModificationException。
-
orTimeout不会中断正在运行的异步任务,仅返回TimeoutException的新CompletableFuture,原任务继续执行;需配合可中断Callable、显式cancel(true)及响应中断的线程池才能实现真正熔断。
-
编译器是否拦截是唯一判断标准:受检异常不处理则编译失败,运行时异常编译通过、运行才抛;关键看继承链是否经过RuntimeException,而非类名或发生时机。
-
继承问题源于误将其当作代码复用首选而非is-a关系建模工具,如Stack继承Vector破坏封装;应优先组合、慎用protected、避免构造器中调用可重写方法。
-
向下转型前必须用instanceof判断,因编译器无法确定父类引用实际指向的子类,直接强转可能触发ClassCastException;Java14+支持instanceof模式匹配(如if(objinstanceofDogdog))简化安全转换。
-
PriorityBlockingQueue不能直接用作任务队列,因其不支持重复元素的稳定排序,且默认不处理Comparable为null的情况,易抛NullPointerException或导致优先级失效;业务多维排序需显式传入健壮Comparator并外置排序逻辑,避免任务类耦合compareTo实现。
-
Feign和Retrofit的核心能力基于Java反射与JDK动态代理协同实现:反射解析接口注解、方法签名以生成请求蓝图,动态代理创建运行时实现类并由InvocationHandler统一调度请求链路。
-
Java内容审核流程采用接入层→过滤层→审核层三层设计,支持规则可配置、状态机管理、热更新及审计反馈闭环。
-
使用BlockingQueue可简化线程安全的生产者消费者模型,其内置阻塞机制能自动处理队列满或空的情况,避免手动加锁;结合synchronized与wait/notify或ReentrantLock与Condition可实现更细粒度控制,适用于需自定义同步逻辑的场景。
-
Comparable接口使类具备自然排序能力,需重写compareTo方法返回负数、0或正数以定义大小关系,支持Arrays.sort()、Collections.sort()及TreeSet/TreeMap自动排序,且一个类只能有一种自然排序。
-
本文介绍如何使用基础for循环和String方法,实现一个接收字符串数组作为关键词、筛选出“包含全部关键词”的目标字符串并拼接返回的Java方法,兼顾可读性、逻辑正确性与实际可用性。
-
SelectionKey的四种事件(OP_ACCEPT、OP_CONNECT、OP_READ、OP_WRITE)表示内核通知应用某操作已就绪可安全执行:OP_ACCEPT表示服务端三次握手完成待accept;OP_CONNECT表示客户端TCP连接建立完成需finishConnect;OP_READ表示接收缓冲区有数据可读(不保证完整);OP_WRITE表示发送缓冲区有空闲空间可写(通常仅在写未完成时注册)。