-
单等号(=)是赋值运算符,用于将右侧值存入左侧变量;双等号(==)是关系运算符,用于比较相等性并返回布尔值,二者作用、使用场景及行为(如==存在隐式类型转换)截然不同。378 收藏 -
应用Java插件并设置项目基本信息,配置仓库与依赖管理,自定义构建任务,优化性能参数。示例包括启用java插件、定义group和version、指定Java版本、添加mavenCentral仓库、声明implementation依赖、创建printBuildInfo任务、在gradle.properties中启用守护进程与并行构建,提升构建效率。384 收藏 -
必须用Integer而非int的场景是需将数字作为对象使用时:存入ArrayList等集合、作Map键、参与泛型、允许为null;因int非对象,无法调方法、判null或JVM引用传递。301 收藏 -
throw用于方法体内实际抛出异常对象并中断执行,throws用于方法声明末尾声明可能抛出的异常类型以告知调用者;前者后接异常实例,后者后接异常类名,可多个逗号分隔。225 收藏 -
char是基本类型,占2字节,单引号存单个Unicode字符;String是不可变引用类型,双引号存任意长度字符串,比较需用equals()而非==。311 收藏 -
Serial和SerialOld是JVM中单线程STW垃圾收集器,新生代用复制算法(Eden/Survivor切换),老年代用标记-整理算法;虽低开销适合小堆,但每次GC必停顿,不适用于多核大堆场景。411 收藏 -
本文详解JavaCleaner无法触发清理动作的典型原因:闭包中意外持有被清理对象的强引用,导致对象无法进入幻象可达状态;并提供符合JVM清理机制的规范实现方案。159 收藏 -
MapStruct编译不生成实现类的根本原因是未配置annotationprocessor;Maven需同时引入mapstruct和mapstruct-processor(scope=provided),IDEA要启用AnnotationProcessors,Gradle需添加annotationProcessor依赖。250 收藏 -
Java提供了内置的java.text.Normalizer类,支持按Unicode标准(如NFD、NFC、NFKD、NFKC)对字符串进行规范化处理,从而实现语义等价的字符串比较,有效解决重音符号、组合字符、全角/半角、兼容性字符等导致的匹配异常问题。335 收藏 -
Java只有值传递,传递对象时实际是引用的副本,副本与原引用指向同一对象,因此可修改对象状态但无法改变原引用本身。310 收藏 -
intern()是登记+查重操作:检查常量池有无equals相等的字符串,有则返回其引用,无则将当前字符串引用加入池中并返回;JDK7+后只存引用不拷贝内容。283 收藏 -
Java中无真正全局变量,但static静态变量可实现跨实例数据共享;其属类而非对象,需注意线程安全、内存泄漏、测试干扰及初始化顺序等问题,非常量场景应优先考虑单例Bean或ThreadLocal等替代方案。348 收藏 -
Java默认线程栈大小通常为1MB(JVM实现相关),远小于C++运行时常见栈容量,导致深度递归易触发StackOverflowError;可通过-Xss参数调整,但更推荐改写为迭代或尾递归优化方案。273 收藏 -
正则去重需按重复模式选择策略:一、删连续重复行用^(\s.+\s)$\\n^\\1$;二、删连续重复字符或单词用(.)\1+或(\w+)\1+;三、删全局重复行需awk或Python辅助;四、删单行内重复单词用\b(\w+)\b(?=.*\b\1\b)。326 收藏 -
FileReader读取中文文件需确保编码匹配:优先将文件保存为UTF-8并调用readAsText(file,'UTF-8');若为GBK等编码,须用readAsArrayBuffer配合iconv-lite解码。159 收藏