-
Java集合框架核心思想是接口与实现分离:先定义功能契约(如Queue的add、remove、size),再由不同类(ArrayDeque、LinkedList等)灵活实现,支持无缝替换、协作开发和按需优化。414 收藏 -
无符号右移(>>>)将整数二进制位序列整体右移,高位恒补0,不考虑符号位,使负数转为非负大整数;需基于补码理解,注意类型提升、移位量取模及不可用于取绝对值。414 收藏 -
File的length()和lastModified()可获取文件大小(字节)和最后修改时间戳(毫秒),但需先用exists()和isFile()校验有效性;推荐使用Files.size()和Files.readAttributes()替代以获得异常提示和更多属性。414 收藏 -
HashSet通过hashCode和equals方法实现去重,添加元素时先比较哈希值再判断相等性,自定义类需重写这两个方法;String等内置类型已默认实现,可直接去重;注意HashSet无序、允许一个null、非线程安全,大量数据去重性能优越。414 收藏 -
main方法必须用static修饰,因为JVM启动时尚未创建任何对象,需直接通过类名调用入口方法;static方法属类级别,随类加载即就绪,无需实例、this或参数,符合“类加载→静态初始化→执行main”的固定启动流程。414 收藏 -
默认Propagation.REQUIRED导致嵌套方法共享事务,内层异常会标记整个事务rollbackOnly,外层catch无法阻止回滚;REQUIRES_NEW可隔离事务,NESTED仅依赖数据库savepoint且不可靠。414 收藏 -
本文介绍在Java类型擦除限制下,如何为Rule<T>动态提取其泛型实参类型T,并据此查找匹配的Datasource<T>实例,实现类型安全的运行时泛型绑定。413 收藏 -
NoSuchMethodException不一定是代码写错,主因是运行时类加载、签名不匹配或依赖冲突;需检查类加载器、方法签名、混淆规则及版本差异。413 收藏 -
Java类命名须大驼峰且与文件名严格一致;包名全小写;字段优先privatefinal;构造函数禁业务逻辑,用构造器注入;方法遵循单一职责,参数少而语义清。413 收藏 -
条件表达式通过布尔判断控制程序流程,核心包括if语句、三元运算符、逻辑运算符短路特性;合理使用可避免空指针、减少嵌套、提升可读性,并可通过Map替代复杂if-else链实现易扩展设计。413 收藏 -
AtomicInteger等原子类仅在单变量简单读-改-写场景下安全高效,依赖CPU级CAS指令实现无锁原子性,不适用于复合操作,不可替代synchronized。413 收藏 -
魔数须为4字节固定int型(如0x12345678)以区分非法连接,版本字段占1字节便于平滑升级;长度字段紧随其后且定长4字节,表示消息体字节数并校验上限;消息体首选Protobuf,避免嵌套过深,不加应用层分隔符。413 收藏 -
Math.abs对Integer.MIN_VALUE返回原值而非绝对值,因其超出int范围;应转long处理或用floorMod等安全方法。413 收藏 -
常量折叠是Java编译器在编译期将final基本类型或String字面量组成的表达式直接计算并替换为结果字面量,.class文件中无原始运算痕迹。413 收藏 -
成员内部类适用于需访问外部类private成员且不暴露给其他类的场景,如封装私有状态管理器;若不依赖外部类则应提为独立类,避免内存泄漏、序列化风险及线程安全问题。413 收藏