-
TreeSet用于存储有序唯一元素,适合去重排序场景;TreeMap存储有序键值对,适用于按键查找与范围查询,二者均基于红黑树实现,增删查改时间复杂度为O(logn)。
-
Java调试功能内置于JDK中,无需单独安装;需正确配置JAVA_HOME和PATH,使用IDE图形化调试(基于JDWP协议),或通过jdb命令行、远程调试参数启动调试。
-
企业级开发中应优先用运行时异常表达业务规则和内部错误,受检异常仅用于第三方SDK、金融强契约场景等少数情况;基础设施层封装原始异常为运行时异常,应用层抛业务运行时异常,网关层统一处理并返回标准响应。
-
PriorityQueue是Java中基于堆的优先队列,默认小顶堆,可通过Comparator自定义排序,常用于贪心算法、Dijkstra等场景,支持offer、poll、peek等操作,非线程安全且不支持null元素。
-
自定义类实现AutoCloseable接口需重写close()方法,确保幂等、线程安全及资源正确释放;try-with-resources会自动调用该方法,异常时close()仍执行且可能被抑制;I/O类建议继承Closeable以语义更清晰。
-
已实现基于ArrayList与Task类的命令行待办系统,支持add/list/done/delete/quit五种操作,含ID自增、内存管理、文本持久化(tasks.txt)及用户友好提示。
-
控制台项目初期不应分模块,建议前两周所有类平铺在一个包中;待核心流程跑通后再按职责切分,优先合并状态强耦合类;main()应避免裸while循环,改用命令解析+业务调用分离;状态统一由HallContext单例管理并序列化持久化;Windows下需统一编译、运行及IDE终端编码为UTF-8。
-
因为SequenceInputStream的构造器接收Enumeration,若该Enumeration在首次遍历后已耗尽,则后续文件无法读取;需确保每次调用都提供未耗尽的新Enumeration实例。
-
JDK15起默认禁用偏向锁,因其在多核高并发场景下收益为负:易触发STW撤销、内存开销大、短命对象导致初始化成本超收益,而轻量级锁+自旋已更优。
-
本文详解如何用printf的格式化字符串精准控制Java控制台或文件输出的列宽、对齐方式与间距,解决因字段长度不一导致的表格错位问题,并提供可直接复用的健壮格式掩码设计方法。
-
substring的两个参数是索引位置,beginIndex为起始保留位置(含),endIndex为首个不保留位置(不含),区间为左闭右开。
-
FixedThreadPool适合CPU密集型任务,线程数固定且资源可控,但遇IO阻塞易导致队列堆积和拒绝异常;CachedThreadPool适合短平快异步任务,但高并发下易OOM;SingleThreadExecutor仅保证串行执行,不保证线程安全;ScheduledThreadPoolExecutor是唯一可靠的定时方案,需注意任务幂等性和延时策略选择。
-
Java中用static修饰的方法叫静态方法,它属于类本身,不依赖对象实例就能调用,只能直接访问静态成员,不能使用this或super,也不能调用非静态成员。
-
死锁典型模式是多线程以不同顺序获取同一组锁,导致相互等待;预防需统一加锁顺序、使用tryLock超时机制及lockInterruptibly响应中断,并辅以jstack和ThreadMXBean检测。
-
JavaSwing开发备忘录应用需手动搭建:用JFrame作窗口、JTextArea编辑、JFileChooser选文件,配合FileReader/FileWriter读写UTF-8文本;须用JScrollPane支持滚动,pack()布局,EDT外异步I/O,窗口关闭监听防丢数据,并采用临时文件原子保存。