-
static字段+私有构造非万能单例,因类初始化即创建实例,不适用于依赖外部资源或需延迟加载的场景;DCL必须用volatile防半初始化;枚举单例线程安全但无懒加载;Springsingleton是容器级而非JVM级。
-
SpringBoot2.x默认仅暴露/actuator/health(仅status),/actuator/metrics完全不暴露,需显式配置management.endpoints.web.exposure.include等参数启用端点并确保Micrometer和HealthIndicator正确集成。
-
代理模式通过代理对象控制对真实对象的访问,分为静态代理和动态代理。静态代理在编译期生成,需为每个被代理类编写对应代理类,代码冗余;动态代理在运行时生成,包括JDK动态代理(基于接口)和CGLIB动态代理(基于继承),具有更高灵活性,适用于AOP、事务管理等场景。两者主要区别在于生成时机、灵活性、依赖条件和性能。
-
变量遮蔽指子类或方法内同名变量覆盖父类/成员变量,需用this访问当前对象成员、super访问父类成员;构造器中this()和super()须首行且互斥;遮蔽是静态绑定,不同于方法重写的动态绑定。
-
how2j.cn、自学精灵(way2j.com)、pdai.tech、javaguide.cn是2026年初国内四大垂直Java学习平台:how2j.cn提供零基础到SpringBoot的闭环实战路径;自学精灵聚焦就业与架构跃迁的真实场景;pdai.tech专注JVM、并发等深度补缺;javaguide.cn以脑图和面试导向高效构建知识框架。
-
Java多维数组访问效率低于C/C++,因其本质是“数组的数组”,内存不连续且需两次指针解引用,导致缓存命中率低;高性能场景应使用一维数组模拟二维布局。
-
HumongousObjects是大小超过半个G1Region的对象,因无法放入Eden区而直接分配到连续的HumongousRegion,跳过年轻代晋升流程,仅能在MixedGC或FullGC中回收,且会推高堆占用率、提前触发并发标记,间接加剧YoungGC频率。
-
学生信息管理系统通过Java实现增删改查功能,使用Student类封装属性,StudentManager管理数据操作,结合ArrayList存储,支持菜单式交互,并可扩展文件或数据库持久化。
-
本文介绍如何使用JavaStream的Collectors.groupingBy与Collectors.reducing组合,仅遍历列表一次,即可按类型(如"A"、"B"、"C"等)分组并计算各组金额总和,避免重复流操作带来的性能损耗。
-
已实现基于ArrayList与Task类的命令行待办系统,支持add/list/done/delete/quit五种操作,含ID自增、内存管理、文本持久化(tasks.txt)及用户友好提示。
-
封装类属性可提高数据安全性,通过private字段和公共方法访问,能在赋值前校验数据合法性,防止非法状态,如setAge中限制年龄范围。
-
containsKey方法用于判断Map是否包含指定键,返回true表示键存在、false表示不存在;它只检查键而非值,即使键对应值为null也返回true,且要求Map已初始化、键的equals与hashCode一致。
-
HashSet做拼写检查更快因平均查找复杂度O(1),而列表为O(n);10万词库中查找错词,前者近瞬时,后者平均比对5万次,前提词库稳定、只判存在性且无需顺序或频次。
-
需删除所有-XX:MaxPermSize和-XX:PermSize参数,替换为-XX:MetaspaceSize和-XX:MaxMetaspaceSize,并排查ClassLoader泄漏导致的MetaspaceOOM。
-
本文介绍如何通过WebViewClient拦截网络错误,在主域名不可访问时自动切换至备用域名,适用于因地区网络策略导致的合法网站访问受限场景。