-
File.getFreeSpace()通过目标分区路径构造File实例来获取剩余空间,推荐用getUsableSpace()并校验exists()和canRead(),注意跨平台路径格式及容器环境限制。
-
ClassCastException是Java运行时因非法强制类型转换抛出的异常,根本原因是对象实际类型与目标类型无继承或实现关系;常见于集合取值盲转、反射调用后未校验、JSON反序列化类型丢失等场景;可通过instanceof预检、泛型约束、明确反序列化类型等方式避免。
-
标记-清除算法在高频分配下加剧内存碎片,因其只回收死亡对象、不移动存活对象,导致空闲块大小不一、位置随机;高频短生命周期对象反复分配释放,使空闲链表中大量小碎片累积,无法拼凑出大块连续空间,进而触发频繁GC。
-
Java并发数据一致性需依场景选同步机制:synchronized控临界区,volatile保可见性非原子性,Concurrent包提高效线程安全组件,CAS适用低冲突场景但有ABA等问题。
-
打破双亲委派是为了满足类隔离、热更新和跨层级服务加载三类刚性需求;OSGi通过Bundle模块化契约控制可见性,Tomcat以Web应用为单位反转加载顺序,线程上下文类加载器则在调用链中动态注入子加载器能力。
-
推荐使用SpringBoot启动新项目,因其自动装配可规避80%配置错误;访问start.spring.io选SpringBoot3.x(JDK17+),勾选SpringWeb和Lombok,用@RestController+@GetMapping编写最简接口验证环境,避免手动引入spring-framework低版本依赖。
-
必须用哑节点,因为删除头节点时需统一前驱;快指针先走n+1步,使慢指针停在倒数第n个节点前驱;循环条件为while(fast!=null),最后执行slow.next=slow.next.next并返回dummy.next。
-
Arrays.copyOfRange()是Java中高效提取数组子段并生成独立副本的核心工具,它不共享原数组内存,天然适合作为隔离的子业务处理单元基础;方法签名Arrays.copyOfRange(T[]original,intfrom,intto)中from包含、to不包含,越界或from>to抛ArrayIndexOutOfBoundsException,返回全新数组;可结合泛型与函数式接口封装通用切片执行模板,提升复用性与线程安全性。
-
LinkedList头尾插入比ArrayList快,因其addFirst()/addLast()为O(1),无需搬移元素;而ArrayList的add(0,e)为O(n)。但随机访问get(i)或误用add(int,E)会使LinkedList退化为O(n),且内存不友好。
-
provides是Java模块系统中专用于ServiceLoader服务发现的关键字,声明某模块提供某接口的具体实现,不适用于多语言变量配置;多语言应通过资源模块化、接口抽象、服务实现注册及运行时动态加载实现。
-
猜数字小游戏用Random生成1~100目标数,Scanner获取输入,while循环控制流程,if-else分级提示大小,合法输入才计数并反馈,非数字或越界输入不计次且提示重输。
-
Shenandoah的“变量无感迁移”指对象移动时应用线程无需暂停、代码无需修改,依托BrooksPointers(对象头8字节原子字段)与读屏障协同实现:访问旧地址时自动跳转至新副本,确保语义一致且仅初始/最终标记需极短STW。
-
<p>remaining()返回limit-position,反映缓冲区当前可读/写长度;需结合flip/clear/compact状态管理及get()/put()边界校验,才能实现精准字节控制。</p>
-
局部变量必须显式初始化,因Java不设默认值,编译器直接报错“variablemightnothavebeeninitialized”;作用域以最近的右大括号为准。
-
使用ZipOutputStream压缩文件的关键步骤包括:1.导入必要的类,如java.io.*、java.util.zip.ZipEntry和ZipOutputStream;2.创建FileInputStream读取文件,创建ZipOutputStream指定输出路径;3.创建ZipEntry并写入文件内容;4.使用递归方法压缩整个文件夹,处理子文件和目录;5.注意编码设置、资源关闭、压缩效率及避免重复条目。整个过程通过try-with-resources确保资源自动关闭,适合基础压缩需求。