-
答案:比较字符串内容应使用equals()、equalsIgnoreCase()、compareTo()或Objects.equals()方法。equals()用于内容比较,忽略大小写可用equalsIgnoreCase(),compareTo()可判断字典序,Objects.equals()能避免null异常,而==仅比较引用地址不推荐用于内容比较。
-
在Java中,使用Comparator.comparing结合thenComparing可实现多字段排序,如按name升序再按age升序:people.sort(Comparator.comparing(Person::getName).thenComparing(Person::getAge))。
-
~运算符对整数的二进制补码逐位取反,结果为-x-1;byte/short参与时先提升为int,需用&0xFF等截断才能获得无符号效果。
-
最省事的依赖是spring-boot-starter-web,它自动引入tomcat和webmvc;必须有@RestController(或@Controller+@ResponseBody)、@GetMapping、带@SpringBootApplication的顶层主类;端口配置用server.port=8081(纯数字);中文乱码需设server.servlet.encoding.charset=UTF-8和force=true。
-
Java只有值传递,传递对象时实际传的是引用的副本。因此方法内可修改对象状态但无法改变原引用指向,如对String等不可变对象赋值新实例仅作用于副本,原引用不变。
-
在IDEA中一键切换Eclipse快捷键只需在Keymap设置中选择Eclipse预设方案,但部分快捷键如Ctrl+1(快速修复)仍为Alt+Enter且不可更改,Ctrl+Shift+F默认仅格式化选中块,Alt+Shift+R重命名需光标位于可重构元素上,且存在插件冲突、系统快捷键抢占、作用域限制及未点击Apply等常见失效原因。
-
首先通过String[]args接收命令行参数,然后可手动解析或使用第三方库处理。例如遍历args判断选项,或用ApacheCommonsCLI等工具支持复杂功能,提升效率与体验。
-
首先完成系统准备与容器运行时配置,再安装Kubernetes核心组件;接着初始化主节点并部署Calico网络,使工作节点成功加入集群;最后构建Java应用Docker镜像并推送至仓库,通过deploy.yaml文件将SpringBoot应用部署到K8s,实现容器化运行。
-
Callable.call()抛出的异常会被封装进Future,调用future.get()时以ExecutionException包装抛出,需主动捕获并用getCause()获取原始异常。
-
JAVA_HOME配置错误主要表现为路径含中文/空格、指向JRE而非JDK、Windows缺双引号、Linux/macOSshell配置未生效;需确保JAVA_HOME指向JDK根目录,PATH中JDK/bin在前,且IDE、Maven等各层级配置一致并单独验证。
-
构造方法可以且必须重载以支持不同初始化场景;需参数列表不同,调用用this()且须首行,禁循环调用,无显式构造时才有默认无参构造,不可返回值但可return提前退出。
-
DriverManager.getConnection()连不上数据库主因是URL参数缺失(如useSSL=false、serverTimezone=UTC)、数据库名拼错、端口被拦或MySQL未启动;JDK6+后无需Class.forName();应优先用PreparedStatement防SQL注入;Connection线程不安全,须按事务边界严格管理生命周期。
-
ArrayList遍历时修改会抛ConcurrentModificationException,因其迭代器采用fail-fast机制,通过校验modCount检测结构性修改;CopyOnWriteArrayList则通过写时复制+volatile引用实现安全并发读。
-
ClassValue是Java7引入的按Class关联缓存值的机制,因内部弱引用清理延迟或残留条目可能持有已卸载ClassLoader,导致类加载器泄露和MetaspaceOOM。
-
标准JavaWeb项目采用分层目录结构:src/main/java存Java类,src/main/webapp放WEB-INF/web.xml(传统)或static/templates(SpringBoot),资源路径错误会导致404或配置失效;web.xml中字符编码过滤器等配置在SpringBoot中已自动集成,可删除;JSP需置于webapp下且容器支持,否则返回源码;MySQL连接应将localhost改为127.0.0.1并配置useSSL=false。