-
UUID.randomUUID()是最常用但非最优的UUID生成方式,底层用SecureRandom生成version4随机UUID,高并发下有锁竞争、存储开销大、不可排序;适合低频单机场景,数据库主键应存为byte[16];需确定性ID时用nameUUIDFromBytes();解析字符串须校验格式;UUID不等同于Snowflake类分布式ID。373 收藏 -
ConcurrentHashMap比Hashtable更常用,因其采用分段锁(JDK7)或CAS+synchronized(JDK8+)实现桶级锁定,避免全表锁瓶颈;但size()非原子、不支持null、computeXXX方法需防死锁与阻塞。445 收藏 -
本文介绍如何通过静态不可变映射(如Map<String,String>)优雅地实现基于UUID的名称查找,并支持跨模块复用,避免重复初始化与线程安全问题。382 收藏 -
不是必须,但强烈建议加@Override注解;不加会导致父类方法签名变更时子类方法变成独立新方法,引发隐蔽的多态失效。375 收藏 -
InterruptedException是Java中表示线程被中断的受检异常,需响应而非忽略:要么退出、要么恢复中断状态(Thread.currentThread().interrupt())、要么向上抛出,否则中断信号丢失。121 收藏 -
多态的核心是父类引用指向子类对象并结合方法重写,通过动态绑定在运行时确定具体方法调用。1.继承与重写是基础,子类继承父类并重写方法;2.向上转型允许父类引用指向子类对象,如Animala=newDog();3.JVM通过虚方法表实现运行时方法绑定,根据实际对象类型调用对应方法;4.多态提升代码扩展性与可维护性,符合开闭原则,支持通用方法处理不同子类对象。251 收藏 -
抽象工厂模式适合解决需创建一系列相互关联或依赖的对象且不指定具体类的问题,即为“产品族”建模,如跨操作系统的UI组件、多数据库驱动或云厂商资源客户端。121 收藏 -
成员内部类定义在类体中方法外,可访问外部类所有成员,需依赖外部类实例创建;局部内部类定义在方法内,仅作用于当前作用域,可访问final或effectivelyfinal局部变量。351 收藏 -
Java中无真正只读集合,Collections.unmodifiableXXX()仅提供不可修改视图,底层仍可变;需防御性拷贝(如newArrayList()后包装)或使用List.of()等不可变实现才能确保安全。106 收藏 -
必须继承Exception或RuntimeException,因JVM仅识别Throwable子类异常;继承Exception强制调用方处理,适合业务可控错误;继承RuntimeException则无需声明,适用于程序逻辑错误。494 收藏 -
构造方法链要求每个构造方法第一行必须调用this()或super(),二者互斥且决定初始化时序;未显式调用时编译器自动补super(),若父类无无参构造则报错;对象创建按内存分配、静态块、父类实例块/构造、子类实例块/构造顺序执行。191 收藏 -
Java8StreamAPI提供函数式编程支持,通过filter、map、sorted、collect等方法实现集合的链式处理,具备不修改原数据、可组合性强的特点,适用于过滤、转换、排序、聚合等场景,显著提升代码简洁性与可维护性。264 收藏 -
Java8的StreamAPI通过声明式处理集合数据,支持函数式编程,提升代码简洁性与可读性。405 收藏 -
Java数组是堆中对象,含对象头、长度字段和元素数据区;引用存栈中,基本类型数组存值,引用类型数组存地址。219 收藏 -
WeakHashMap适用于缓存、监听器注册和线程上下文快照等场景,其键为弱引用,GC可回收无强引用的键及对应条目;不适用于长期存储、常量键、高并发或需迭代稳定性的场景。345 收藏