-
StackOverflowError不是-Xss越大越好,增大仅延迟崩溃且易引发OOM;应优先排查递归失控、隐式递归及循环依赖,并通过jstack和全栈日志定位问题。
-
Vaadin中Select.setValue()无法更新UI显示,通常是因为待设值对象与数据源中对象未通过equals()和hashCode()正确识别为同一逻辑实体,导致组件无法匹配并高亮选中项。
-
EnumMap底层使用数组而非哈希表,以枚举ordinal()为下标实现O(1)查表;无哈希计算、无冲突处理、无装箱,性能比HashMap高2–3倍、内存低约40%;不支持null键,且必须在编译期确定枚举类型。
-
最直接的方式是使用Collections.swap()方法。它接受列表和两个索引,直接在原列表上交换元素,代码简洁、安全且可读性强,相比手动交换更推荐使用。
-
异或能用于简单加解密,因a^b^b==a;需注意编码一致、密钥非空、字节处理及循环复用逻辑。
-
DockerCompose中service间通信须使用service名作host(如jdbc:mysql://mysql:3306/myapp),确保同网络;MySQL健康检查+Java重试机制解决“启动但未就绪”问题;环境变量切换实现本地与容器数据库灵活对接。
-
Math.toRadians和Math.toDegrees仅做角度与弧度的线性换算,不参与三角计算;Math.sin等函数只接受弧度,需先转换再调用;反复转换或对无量纲值误转属典型错误;官方方法语义清晰且JDK9+有性能优化;浮点误差属正常现象,应避免直接用==比较。
-
ArrayList适合读多写少、按索引访问场景,随机访问O(1),但首尾增删为O(n);LinkedList首尾增删O(1),但随机访问需遍历,平均O(n/2),性能比ArrayList慢3–5倍。
-
Files.copy()可直接复制单个文件,需配合REPLACE_EXISTING选项覆盖;备份目录须用Files.walk()遍历并手动处理异常、创建父目录、还原相对路径,同时注意中文路径、只读文件及增量校验。
-
首先检查并配置项目JRE系统库,确保使用JDK而非JRE;接着在Preferences中添加JDK到InstalledJREs并设为默认;然后修改eclipse.ini文件指定-vm路径指向JDK;最后通过新建Java类测试编译功能是否正常。
-
Hashtable线程安全但性能低且不支持null,HashMap非线程安全但支持null且性能好,多线程推荐ConcurrentHashMap。
-
合理使用三元运算符、逻辑运算符、Optional和switch表达式可简化Java条件判断。例如,用?:替代简单if-else赋值,如Stringresult=(num>0)?"正数":"非正数";;通过&&、||合并条件并利用短路特性避免空指针,如if(user!=null&&user.isActive()&&!user.isLocked());将复杂条件提取为布尔变量提升可读性;使用Optional.ofNu
-
Java写简单爬虫核心是发请求→取响应→解析→存数据:用HttpURLConnection或HttpClient发请求并设User-Agent、超时等;用Jsoup解析HTML提取内容;存本地文件并去重;遵守robots.txt、控制频率、处理异常。
-
Integer.toString能直接转进制因其第二个参数为合法进制基数(2–36),但常因传入非法radix(如0、1、37)、负数、字符串或类型不匹配而出错;它不加前缀、不处理补码、仅支持int,负数按绝对值转换并加“-”号。
-
String循环拼接性能差因其实例不可变,每次+或concat()均新建对象并复制内容,1000次循环产生1000个中间对象,引发频繁GC导致耗时陡增。