-
Path.iterator()不解析变量目录,仅遍历路径字符串按分隔符切分后的逻辑段;需先手动展开变量(如${HOME}),再构建Path并调用iterator()。
-
双亲委派被破坏的典型场景有四类:1.线程上下文类加载器(TCCL)用于SPI加载;2.模块化容器如OSGi实现类隔离;3.JDK自身对动态代理、Lambda等的特殊处理;4.用户自定义ClassLoader主动绕过。
-
顺序栈用top跟踪栈顶,top=-1时data[0]为首个入栈位,入栈先++top后赋值,出栈先取data[top]再--top;top=0时入栈先赋值后++top,出栈先--top再取data[top-1];所有操作须严格判空判满防越界。
-
Java黑名单机制核心是“拦截+校验+持久化”,应置于请求进入业务逻辑前(如Web层Interceptor、RPC层Filter、服务内敏感操作前),避免DAO层硬编码;存储依规模与实时性选型。
-
HashMap允许null作为key和value,这是设计选择而非bug;但get()返回null时存在二义性:既可能键不存在,也可能键存在而值为null,易引发逻辑误判和偶发异常。
-
NumberFormat.getPercentInstance()将比率值(0.0–1.0)自动×100并添加本地化百分号,需传入0.75而非75;默认舍入为整数,可通过setMinimum/MaximumFractionDigits控制小数位;必须指定Locale以确保多语言正确性;parse()会自动÷100还原为比率。
-
调小max.poll.records是最快速有效的手段,但需结合业务处理速度、消息大小和内存资源系统性调整,并协同优化fetch.max.bytes、max.partition.fetch.bytes及JVM堆内存分配。
-
使用update-alternatives可管理多JDK版本,1.查看配置状态,2.添加JDK路径并设置优先级,3.交互式切换版本,4.验证java-version,实现灵活切换。
-
异或交换法利用a^a=0、a^0=a及结合律,通过a^=b;b^=a;a^=b三步完成整数交换,但仅适用于不同地址的整数,不适用于浮点数或同一变量。
-
Java线程间通信最基础方式是wait()/notify()配合synchronized,必须在同步块中调用,wait释放锁并进入WAITING状态,notify不释放锁仅唤醒一个线程,需用while循环检查条件防虚假唤醒。
-
BigDecimal.scaleByPowerOfTen()仅执行十进制小数点位移(×10ⁿ),不处理物理单位换算;KB→GB需按1024²或1000²系数显式除法,不可直接调用该方法。
-
Java设计原则是解决具体问题的实践依据,误用比不用更危险;SOLID需结合变化原因判断拆分,Liskov要求子类不加强前置条件,OCP宜用@ConditionalOnProperty或策略模式,DTO构建优先Lombok@Builder或record,依赖注入按测试需求选构造或字段注入,细节一致性决定系统寿命。
-
<time>标签是HTML5中专为日期和时间设计的语义化元素,需通过符合ISO8601标准的datetime属性提供机器可解析的时间值,同时可自定义用户友好的显示内容;禁止省略datetime、使用模糊值或包裹非时间内容。
-
Java基本类型内存占用固定:boolean1字节、byte1、char/short2、int/float4、long/double8;引用类型4或8字节;对象字段因对齐填充可能增大,数组含头开销,包装类(如Integer)至少16字节。
-
异常链的核心价值在于重建可追溯的因果路径,通过显式关联(如raise...from)保留根因堆栈,解决异步调用中异常静默丢失、跨服务上下文割裂、日志监控信息不全及分层抽象失真等问题。