-
数组实现键值对排序需先转为对象数组或二维数组,再用sort()配合自定义比较函数按值排序,避免Object无序问题,支持动态字段排序与原始顺序追溯。440 收藏 -
ZoneId是Java8引入的不可变、线程安全时区标识类,基于IANA数据库支持夏令时;而TimeZone是旧版可变、线程不安全类,API陈旧且易出错。306 收藏 -
IllegalStateException由程序逻辑错误导致对象状态非法引发,常见于遍历中修改集合、操作已关闭资源或未初始化即使用对象;应通过检查状态、使用安全集合、合理管理资源生命周期及主动抛出异常来预防,避免依赖捕获处理。263 收藏 -
Java模块系统中不存在“变量模块”,模块必须预先编译并包含合法module-info.class;动态挂载实为运行时创建新ModuleLayer加载已编译模块JAR,需经定位、解析、定义、激活四步,且模块图不可修改。479 收藏 -
Thread.enumerate()仅返回当前线程组活跃线程快照数组,需配合getState()逐个判断状态;统计时应先用activeCount()预估并扩容数组,再enumerate填充,遍历非null线程计数各State频次。481 收藏 -
稀疏向量集合的存储优化核心是只存非零元素及其索引,跳过冗余零值;适用于稀疏度>95%(非零占比极低)的高维向量,可大幅节省内存并提升计算效率。344 收藏 -
Java中可用二维布尔或整型数组模拟邻接矩阵,n×n矩阵索引代表顶点编号,matrixu表示u到v是否有边;无向图对称,有向图不对称,权值图用int[][]存权重并约定无效值。137 收藏 -
maximumPoolSize是线程池应对突发流量的弹性缓冲上限,仅在corePoolSize满且workQueue满时触发创建非核心线程,达上限后任务走拒绝策略;需按IO/CPU密集型合理设定,并配合动态调节、有界队列与监控压测。424 收藏 -
InvocationTargetException是反射调用(如Method.invoke())自动包装原始异常的受检异常,需通过getCause()获取真实异常并按类型处理,不可忽略或仅打印外层异常。501 收藏 -
Unsafe.allocateMemory()返回的是虚拟地址而非物理地址,不绕过MMU,需手动freeMemory否则内存泄漏,且无线程安全与内存屏障保障,易致崩溃或数据损坏。246 收藏 -
要让RMI远程调用支持对象变量作为参数传递,核心是序列化机制的正确应用。JavaRMI本身不直接传输对象实例,而是把对象状态(字段值)序列化成字节流,经网络传到服务端后反序列化重建对象。这个过程对开发者透明,但必须满足严格条件,否则会抛出NotSerializableException或运行时失败。对象类必须实现Serializable接口这是最基本也是最关键的一步。只有显式声明implementsSerializable的类,JVM才允许对其序列化:接口本身无方法,仅作标369 收藏 -
并行流本身不向字符串常量池写入内容,也不会自动触发intern();其对常量池的压力仅源于显式调用intern()或未管控的重复字符串生成。340 收藏 -
方法引用不能替代反射调用静态方法,它是编译期绑定的函数式语法糖,与运行时反射机制本质不同;强行混用会导致类型不兼容和编译错误,真正提升可读性的是优先使用方法引用而非反射。461 收藏 -
数组实现负载权重分配的核心是构建累积权重数组并用随机数匹配区间:如A(3)、B(2)、C(5)得[3,5,10],生成[1,10]随机数,二分查找首个≥该数的索引即目标。434 收藏 -
System.arraycopy()不提供擦除语义,仅高效复制内存块;所谓“模拟缓存行擦除”是用0或null等默认值批量覆盖目标区域,实现逻辑重置,常用于环形缓冲区、滑动窗口等场景。389 收藏