java教程技术文章
-
Java字符串+拼接在编译期仅对常量字面量直接合并为单个字符串,对局部变量则优化为StringBuilder调用;循环中动态拼接不会优化,需显式使用StringBuilder避免性能问题。170 收藏 -
本文介绍一种简洁、高效且不依赖额外库的Java数组洗牌方法:通过为每个元素生成随机键,利用Arrays.sort()配合自定义Comparator按随机键排序索引,从而实现均匀、可重现(若种子固定)、时间复杂度为O(nlogn)的洗牌。442 收藏 -
OutOfMemoryError:Metaspace表明元空间不足,非堆内存问题;需通过GC日志、jstat、jmap-clstats定位类加载器泄漏或MaxMetaspaceSize过小,并合理设置MetaspaceSize与MaxMetaspaceSize。348 收藏 -
extends是Java中声明单继承的唯一关键字,格式为class子类名extends父类名,父类不能是final或非public(跨包时),不可多继承,子类继承public/protected成员,构造器需显式调用super(参数)若父类无无参构造。454 收藏 -
应警觉并避免if-else嵌套超过2层,因其混杂控制流、业务判断与副作用,导致可读性差、易出错、难测试;推荐用提前返回、Optional(适度)、策略映射和IDE检查约束。291 收藏 -
通过接口定义行为契约,结合依赖注入与工厂模式,实现模块间松耦合,提升系统可维护性与扩展性。414 收藏 -
StringBuilder.reverse()能反转中文但不安全处理emoji等增补字符,因按char翻转可能拆散代理对;需备份原值,String不可变故无reverse()方法。184 收藏 -
工厂模式与抽象工厂模式解决不同层级创建需求:前者解耦单一产品族,后者支持多产品族组合创建;SimpleFactory适合轻量级同类型实例创建,FactoryMethod适用于框架扩展,AbstractFactory强调产品族一致性协同工作。154 收藏 -
Scanner.hasNext()不返回false而是阻塞等待输入,因其设计为阻塞式读取:当输入缓冲区为空且System.in未关闭或未收到EOF时,会持续等待有效token,非bug。372 收藏 -
本文介绍如何使用Java8StreamAPI和集合操作,对多级点分隔字符串(如"Sweden"、"Sweden.Stockholm")进行去重,并自动剔除所有被更高级别父路径覆盖的子路径,最终仅保留最顶层的有效节点。326 收藏 -
Fastjson2.x默认不兼容1.x,需显式启用兼容模式;日期序列化须注册处理器;泛型解析必须用TypeReference;禁用ASM会降速但更安全;Context类不可多线程共享。466 收藏 -
ServiceLoader通过读取META-INF/services/下与接口全限定名同名的文件加载实现类,按classpath顺序查找、不去重、懒加载实例,需手动处理类加载冲突与异常。477 收藏 -
编程注释规范:单行用//,多行用/.../;单行适合简短说明或临时禁用代码,多行用于复杂逻辑或函数说明;Python、HTML、SQL等有各自语法;注释应解释“为什么”,并随代码及时更新。407 收藏 -
偏向锁在另一线程竞争时触发检查并升级:原线程消亡、调用wait/notify、hashCode或GC发现偏向线程死亡均导致升级,且不会主动释放。419 收藏 -
Java项目在Eclipse中需三处统一设为UTF-8:项目级Textfileencoding(右键项目→Properties→Resource)、工作空间全局编码(Window→Preferences→Workspace)、Maven的project.build.sourceEncoding;否则中文注释、文件读写、编译均可能乱码。221 收藏