-
BindException是操作系统报出的端口占用异常,表明JVM尝试绑定的端口(如8080)已被其他进程占用;常见于SpringBoot启动卡在Web服务器初始化阶段,需用lsof、netstat或netstat-ano定位并终止冲突进程,或通过配置server.port、VM参数、Docker端口映射等避免重复绑定。
-
Java中BufferedReader/Writer的核心目的是通过内部缓冲区减少I/O调用,提升性能,但需显式指定编码、手动flush或用try-with-resources确保数据落盘,readLine()返回null仅表示EOF而非错误。
-
Java线程安全必须显式控制,不能靠避免;共享非final字段、单例/Bean状态、非线程安全集合、非原子读改写操作均需同步;volatile仅保可见性与有序性,不保原子性;优先用java.util.concurrent工具类;ThreadLocal通过副本绕过共享,但需防内存泄漏。
-
Java中==对基本类型比较值,对对象比较引用地址;对象内容比较应使用equals(),且重写equals()时必须重写hashCode()以保证哈希集合的正确性。
-
Java环境搭建后系统变慢主因是配置不当。一、JVM内存设置不合理致频繁GC,应合理设定-Xms与-Xmx;二、后台Java服务如更新程序占用资源,需禁用非必要启动项;三、开发工具如IDE高耗资源,应调优其配置并减少自动构建;四、低配硬件或机械硬盘加剧卡顿,建议使用SSD并匹配64位JDK。通过优化参数、关闭冗余进程、监控资源使用,可有效控制性能影响。
-
Windows下InvalidPathException常因路径含非法字符(如:、|、?、*)或保留名(如AUX)触发,Paths.get()会主动校验而newFile().toPath()不校验,跨平台需统一用Paths.get()并清洗不可见字符。
-
本文介绍在Android或Java项目中,当第三方依赖(如AAR/JAR)包含有缺陷的类文件导致多进程崩溃时,如何通过Gradle原生机制安全地排除原始文件并注入修复版本,避免手动解包重打包。
-
ArrayDeque的head指向队首元素,tail指向下一个要插入位置,二者在固定数组中通过模运算(位运算优化)循环移动;扩容按需扩至最小2的幂,禁止null元素以确保peek返回null即为空。
-
导入HashMap类后创建实例,如HashMap<String,Integer>personAge=newHashMap<>();2.使用put()添加键值对,get()获取值,containsKey()/containsValue()检查存在性,entrySet()遍历,remove()删除键值对;HashMap无序、键唯一,多线程用ConcurrentHashMap。
-
答案:Java中常用System.out.printf()和String.format()格式化字符串,支持%s、%d、%f等占位符,可控制宽度对齐如%10s、%.2f,推荐用%n换行,代码更清晰安全。
-
抽象类用abstract修饰,不能实例化,用于定义通用结构和行为,子类必须实现其抽象方法;可含构造器、字段、普通方法等,适合“is-a”关系和共享代码场景。
-
商品类必须实现Comparable接口或提供Comparator,价格字段必须用BigDecimal,多条件排序用Comparator.comparing()链式调用,TreeSet去重需谨慎以防误删同价不同品商品。
-
使用@ControllerAdvice统一处理异常,通过自定义BusinessException区分业务与技术异常,结合@ExceptionHandler对不同异常返回对应状态码,并记录日志以提升排查效率。
-
Java的Base64类仅用于二进制与ASCII文本转换,非加密工具;禁用sun.misc.BASE64Encoder,须改用java.util.Base64并显式指定UTF-8字符集。
-
removeIf方法通过传入Predicate实现条件删除,如删除偶数或年龄小于18的用户,需注意集合可变性、线程安全及原集合被修改的问题。