-
Pattern和Matcher用于Java正则操作:1.Pattern.compile()编译正则;2.matcher()创建Matcher;3.matches()或find()执行匹配;4.group()提取结果。400 收藏 -
在Java中使用HttpURLConnection设置User-Agent需在connect()前调用setRequestProperty("User-Agent",uaString),推荐使用主流浏览器真实UA字符串,但仅设UA不足以完全模拟浏览器,还需配合其他头部及请求策略。488 收藏 -
“组合优于继承”指多数场景应优先用“has-a”关系替代“is-a”关系,以降低耦合、增强可测性与系统稳定性;继承适用于明确“is-a”且父类专为扩展设计的少数情况。325 收藏 -
Java对象在new、反射、反序列化等操作时创建,最常见是new;对象可被回收当且仅当无GCRoots可达的强引用链;finalize已弃用,应使用AutoCloseable或Cleaner;回收时机由GC器决定,不可控。257 收藏 -
继承是多态的基础,多态通过父类引用调用子类重写方法实现运行时绑定,提升代码灵活性和可扩展性。366 收藏 -
括号真正起作用的关键是加在需优先计算的部分,而非越多越好;如a&&b||c默认为(a&&b)||c,若本意是a&&(b||c),则必须将b||c括起,多余外层括号无效且冗余。310 收藏 -
静态代码块不能替代构造函数前的实例初始化,它仅用于类加载时的一次性静态字段初始化,不感知实例;实例级统一预处理应使用私有基构造函数或Kotlin的init块。490 收藏 -
Collection必须实现15个核心方法:增删查基础操作(add、remove、contains、size、isEmpty)、批量操作(addAll、removeAll、retainAll、containsAll、clear)、遍历转换(iterator、toArray、toArray(T[])),以及JDK8+默认方法(stream、parallelStream、removeIf)。146 收藏 -
ConcurrentHashMap通过分段锁与CAS机制实现线程安全且高性能,并提供原子操作方法,适用于高并发场景。291 收藏 -
String.intern()可使重复JSONkey共享同一对象,降低内存占用与GC压力;需限定在有限高频key集合中使用,避免敏感信息或大字符串误用,并推荐通过预定义KNOWN_KEYS集合控制intern范围。494 收藏 -
可行但需谨慎设计:用AQS的32位state低16位存写锁重入次数、高16位存读锁线程数,通过位掩码与CAS原子操作实现,严禁直接setState,须用compareAndSetState保证线程安全。478 收藏 -
finally中的return会覆盖try/catch的返回值并吞掉异常;正确做法是用局部变量记录结果,清理逻辑放在finally中,最终在方法末尾统一return。139 收藏 -
Dev和Run环境共享JDK但角色不同:Dev需JDK+IDE+构建工具以支持调试与快速反馈,Run应精简为JRE或jlink定制镜像以保障稳定;CLASSPATH与系统属性配置差异显著,java-version无法反映实际运行态差异。161 收藏 -
PriorityBlockingQueue不能直接当任务队列用,因其并发offer()不保证优先级重排序,需配合显式锁或封装为线程安全的分发器;它不支持peek后修改重排序,且序列化后堆结构可能损坏。467 收藏 -
安装JDK提示“无权写入目录”是因用户权限不足,解决方法包括:更换为非系统目录如C:\Java\jdk,以管理员身份运行安装程序,或在Linux下使用sudo授权解压至/opt/jdk等路径,同时确保目录权限正确并更新JAVA_HOME和PATH环境变量。350 收藏