-
EnumMap比HashMap更快,因其用数组代替哈希表,索引由枚举ordinal值直接决定,免去哈希计算、key比较及冲突处理,空间紧凑且遍历顺序固定。153 收藏 -
Java虚拟线程在阻塞/恢复过程中可能被调度到不同载体线程上,但JMM保证其行为仍等同于单个Java线程——因此实例变量无需额外声明为volatile,局部变量更不受影响。153 收藏 -
File类路径构造易出错因不标准化路径,跨平台行为不一致;exists()和isFile()返回false常因权限不足而非文件不存在;mkdirs()静默失败;toURI()弃用因编码不合规。153 收藏 -
transient修饰的字段不被序列化是因为其语义为“跳过该字段”,JVM在默认序列化时直接忽略它;它仅作用于实例变量,不影响类的Serializable实现,但Externalizable会忽略transient标记。153 收藏 -
ArrayDeque基于动态数组,高效非线程安全,不支持null,适合栈队列;LinkedList实现Deque但开销大,允许null;LinkedBlockingDeque线程安全可阻塞,适用于并发场景。153 收藏 -
控制反转(IoC)与依赖注入(DI)通过将依赖创建权移交外部容器、面向接口编程、多种注入方式、测试时注入模拟依赖及配置驱动,解决硬编码依赖导致的高耦合与低可测性问题。153 收藏 -
本文详解JavaSocket编程中因原始字节流误读导致的算术运算错误(如减法/乘法结果异常),指出InputStream.read()无法正确传输有符号整数的根本原因,并通过DataInputStream/DataOutputStream提供完整、健壮的远程计算器实现方案。153 收藏 -
本文介绍如何仅使用基础数组结构,在单次遍历(O(n))时间复杂度内高效定位数组中最大值的全部重复出现位置,纠正关于“双循环必为O(n²)”的常见误解。153 收藏 -
FileNotFoundException常在文件读写时因路径错误或文件不存在而抛出,需用try-catch捕获并给出具体提示,结合try-with-resources自动释放资源,提升程序健壮性与用户体验。153 收藏 -
Maven项目中的依赖并非无条件加入运行时类路径,其实际行为取决于打包类型、作用域(scope)及所用插件——编译期默认包含compile和provided依赖,而运行时是否包含则由构建目标(如JAR/WAR/SpringBoot可执行包)决定。153 收藏 -
抽象类不能直接实例化,普通类可以;抽象类定义通用结构并强制子类实现抽象方法,普通类封装具体功能;模板方法模式利用该特性将算法骨架放在抽象类中,可变步骤延迟至子类实现。153 收藏 -
Collections.frequency适用于单元素频次统计,语义清晰但仅支持精确equals比较;Stream.groupingBy适合全量频次统计,性能更优但需注意null键和自定义对象的equals/hashCode实现。153 收藏 -
静态块不能抛出受检异常,否则编译失败;若抛出未捕获异常(含RuntimeException),类初始化失败,后续所有对该类的主动使用均抛NoClassDefFoundError。153 收藏 -
因为JVM的tableswitch和lookupswitch指令要求跳转目标在类加载时确定,故case必须是编译期常量;否则编译报错“constantexpressionrequired”,不退化为if-else。153 收藏 -
Java对象内存布局分为对象头、实例数据、对齐填充三部分;对象头含MarkWord(存哈希码、锁状态等)和类型指针(指向类元数据);实例数据按宽度重排序存储字段值;对齐填充确保对象总大小为8字节倍数。153 收藏