电话
400 9058 355
News
Java通过可达性分析算法判断对象是否可回收:从GCRoots出发,无引用链可达的对象才可能被回收,需经两次标记后才能进入回收队列。
当使用Jackson的JsonNode与Optional链式操作时,若中间节点为null(如NullNode),直接调用.textValue()会触发NPE;正确做法是将get(name)和textValue()拆分为独立的map步骤,利用Optional的短路特性自动转为Optional.empty()。
operator[]插入时会覆盖已存在的key;insert()默认不覆盖,返回插入结果;insert_or_assign()可安全实现“存在则更新、不存在则插入”。
Collections.reverse()仅支持List,时间复杂度O(n),原地反转;Collections.shuffle()仅支持List,需指定种子才能复现结果;二者均不支持Set、Map、数组及并发安全,且均为就地修改操作。
Java处理IO异常的核心是区分可恢复与不可恢复场景:可恢复时重试或降级,不可恢复时抛出;必须精准捕获子类异常而非笼统catchIOException,优先声明throws交由上层决策,配合try-with-resources确保资源关闭并检查suppressed异常。
应使用Person类封装姓名和电话再用Person[]数组管理,避免String[]双数组导致的越界、空指针、数据错乱及扩容困难等问题,并需额外维护size变量记录有效元素数。
io.ReadFull返回io.ErrUnexpectedEOF表示未读满指定字节数即遇EOF,适用于需严格读取固定长度的场景;替代方案有io.ReadAtLeast和io.Read。
上下文切换是CPU在多线程间保存并恢复线程状态的开销操作,由操作系统执行;常见触发场景包括sleep、wait、锁竞争、IO阻塞及频繁创建线程;线程数过多反而降低性能,因缓存失效、时间片过短和内存压力增大;ThreadLocal不减少切换次数,误用还易致内存泄漏;根本优化在于减少切换,如控制线程数、使用异步IO、避免阻...
邮箱:8955556@qq.com
Q Q:8955556