-
Java是静态类型语言,变量声明必须显式写类型;局部变量可用var(JDK10+且初始化可推断)、泛型构造器可用<>;字符串比较用equals()而非==;循环拼接用StringBuilder;异常处理应精准捕获并用try-with-resources。
-
对象应具备清晰责任边界和内在一致性,通过单一职责原则、信息隐藏、依赖注入和领域逻辑前置实现高内聚低耦合,提升可维护性与复用性。
-
Java方法形参必须声明类型,不可为空;实参传递基本类型为值副本、引用类型为引用副本;void方法不能return表达式,非void方法每条路径须有return;返回值类型应根据是否需表达“无值”语义选择int、Integer或Optional。
-
IllegalStateException是程序逻辑进入非法状态时抛出的运行时异常,如Iterator未调用hasNext()就调用next()、已关闭的Scanner再读取、重复start()已启动线程等,需通过前置状态校验而非捕获来避免。
-
BCryptPasswordEncoder默认强度为10,但高并发下易致CPU飙升,推荐显式指定strength=11;必须用matches()比对密码,严禁字符串直接比较;SpringBoot3需显式配置PasswordEncoderBean,且密码长度不得超过72字节。
-
答案:该待办事项系统基于Java实现,包含任务添加、查看、标记完成、删除及文件持久化功能。通过Task类封装任务属性,TodoManager管理任务列表并处理增删改查与数据读写,Main类提供命令行交互界面,使用ObjectInputStream/ObjectOutputStream实现对象序列化存储,程序启动时自动加载历史数据,支持跨会话保存任务状态,适合初学者掌握面向对象编程与基础IO操作。
-
可通过FileStore获取磁盘总空间和可用空间并手动计算百分比,需用getUsableSpace()/getTotalSpace()、避免除零、注意文件系统保留空间及权限影响。
-
Map.merge(word,1,Integer::sum)是词频统计的正确用法,它原子性地实现“有则叠、无则建”,避免NPE和并发丢失;勿用get+put组合或错误lambda,慎混用compute。
-
Java中“常量”实为publicstaticfinal字段,需同时满足public、static、final;final仅保证引用不可变,不保证对象内容不可变;多值常量优先用enum。
-
<p>Java注释不会被编译进class文件;//和//在编译时被javac完全丢弃,仅Javadoc注释(/*/)供javadoc工具提取生成API文档,而注解是否进入字节码取决于@Retention策略。</p>
-
<p>-Xlog:gc是JDK9+替代-XX:+PrintGCDetails的标准做法,支持可控、可过滤、可重定向的GC日志,需显式指定输出路径与时间精度标签,生产环境推荐配置为-Xlog:gc:file=/data/logs/gc.log:time,uptime,level,tags:filecount=32,filesize=64m。</p>
-
size()方法返回集合当前元素个数,类型为int;它不表示容量或内存大小,时间复杂度O(1),并发集合弱一致,数组无该方法而用length字段。
-
答案是掌握Java循环结构需理解for、while和do-while的执行逻辑,for适用于已知次数的循环,其初始化、条件判断和更新操作集中,结构清晰。
-
AQS共享模式中state语义因同步器而异:Semaphore的state表示剩余许可数(越大越空闲),CountDownLatch的state表示待完成任务数(越小越接近释放线程),该差异决定tryAcquireShared返回逻辑及阻塞/放行时机。
-
线程转储是确认IDEA中程序“假死”的最快手段,需在运行或调试状态下触发:运行时点Run窗口的DumpThreads,调试时通过Debug窗口More选GetThreadDump;仅调试模式可捕获虚拟线程和Kotlin协程;查看dump时聚焦WAITING/TIMED_WAITING状态、主线程阻塞点及锁持有情况。