-
ConcurrentHashMap的putIfAbsent不是绝对原子,因其仅对key插入做CAS保护,value构造副作用(如new对象)仍会执行;正确做法是用computeIfAbsent延迟构造。330 收藏 -
模板方法模式核心是“子类只改步骤,不改流程”,即在templateMethod()中锁定稳定执行顺序,将可变环节抽为abstract方法供子类实现;辅以hook方法(可选重写)和final方法(禁止篡改)增强灵活性与安全性。437 收藏 -
super是编译期确定的直接父类成员访问入口,不触发多态、不绕过访问控制;调用构造器须首行且唯一;访问字段和方法均为静态绑定;内部类中A.super特指外围类方法调用。221 收藏 -
静态方法和变量属于类本身,可通过类名直接调用或访问。1.静态变量被所有实例共享,修改后全局生效,如Counter.count;2.静态方法无需创建对象即可使用,如MathUtils.add(5,3);3.静态成员不能访问非静态成员,常用于工具类、常量定义;4.static生命周期长,过度使用影响设计原则。430 收藏 -
Java算术运算符遵循类型提升规则:操作数按double→float→long→int顺序提升;/结果类型由操作数类型决定,整除向零截断;%结果符号同被除数;整数溢出不报错但回绕,浮点除零得Infinity/NaN。354 收藏 -
工厂函数将对象创建逻辑集中封装,使调用方只关注“要什么”而非“怎么造”,避免硬编码散落、修改分散及空值风险,应抛异常而非返回null,推荐纯函数实现而非class封装。414 收藏 -
Linux上transferTo可能不生效,因源/目标通道类型、文件系统或内核版本不满足零拷贝条件而静默降级为用户态拷贝。360 收藏 -
通过@ControllerAdvice和@ExceptionHandler实现全局异常处理,结合自定义异常类与ResponseStatus注解,统一返回结构化响应,提升代码可维护性与用户体验。344 收藏 -
组合优于继承是指在多数代码复用场景中,用成员变量持有对象(has-a)比类继承(is-a)更稳妥可控;核心在于区分类型归属与功能复用,避免继承滥用导致的扩展性差、维护难等问题。474 收藏 -
在Thymeleaf生成的HTML邮件模板中,点击表单按钮默认会触发页面跳转;需通过JavaScript(AJAX)拦截提交行为,异步调用后端REST接口,避免重定向和空白页问题。157 收藏 -
Java运算符分为算术、关系、逻辑、赋值、位运算和条件六类:算术支持数值计算与自增减;关系返回布尔值;逻辑具短路特性;赋值含复合形式;位运算操作二进制;三元实现简洁条件分支。487 收藏 -
Collections.frequency适用于单元素频次统计,语义清晰但仅支持精确equals比较;Stream.groupingBy适合全量频次统计,性能更优但需注意null键和自定义对象的equals/hashCode实现。153 收藏 -
Java图形化天气预报系统实为JavaWeb后端调用天气API、前端HTML/JS渲染的三层架构;推荐OpenWeatherMapAPI,需URL编码中文、配置超时与重试、统一处理HTTP状态码及UTF-8响应,前端用fetch+ECharts渲染并转换开尔文温度,弃用Swing/JavaFX桌面方案。210 收藏 -
Collections.emptyList()和emptySet()返回不可变单例空集合,避免null返回引发异常。二者分别用于List和Set场景,节省内存且安全高效;但不可修改,需修改时应基于其创建新实例。478 收藏 -
JVM内存结构分为方法区、堆、虚拟机栈、本地方法栈、程序计数器五部分;堆与方法区线程共享,其余线程私有;堆是GC主区域,分新生代(Eden+S0/S1)和老年代;方法区JDK8+由元空间替代永久代;虚拟机栈以栈帧存储局部变量等;程序计数器记录字节码行号且不会OOM。326 收藏