-
重写是子类覆盖父类方法,体现运行时多态;重载是同一类中同名不同参的方法,属编译时多态。二者发生位置、绑定时机、JVM处理机制截然不同,@Override仅适用于重写。
-
EOFException是IOException的子类,用于标识流提前结束,如反序列化时数据不完整;处理时应先捕获EOFException以判断正常读取结束,再捕获其他IOException问题,并结合try-with-resources确保资源释放。
-
动态年龄判断是JVM在MinorGC后实时扫描Survivor区,若某一年龄段对象总和≥Survivor容量50%(默认),则所有≥该年龄对象直接晋升老年代;担保失败则是Survivor空间不足时强制晋升存活对象,无论年龄。
-
链表退化至O(n)时get()性能骤降,JDK1.8通过链表长度≥8且数组容量≥64才转红黑树来优化;红黑树兼顾效率与稳定性,但要求key实现Comparable或传入Comparator,否则树化失败。
-
IntelliJIDEA线程检查仅识别静态模式,如非线程安全集合迭代+修改、synchronized锁局部变量、Date未保护;需显式标注@Shared或跨方法传递才提示;不报ConcurrentModificationException、锁粒度不当或volatile缺失问题。
-
答案:使用JavaSwing实现贪吃蛇游戏,通过JFrame创建窗口,JPanel绘制界面,ArrayList存储蛇身,Timer控制移动,KeyListener处理方向输入,防止反向转向,随机生成食物,检测碰撞与游戏结束。
-
Set能自动去重是因为HashSet等实现类基于hashCode()和equals()判断重复:只有二者均相同才视为重复;自定义类必须同时重写且逻辑一致,否则去重失效。
-
用纯文本每行存一条记录(如playerName,2450,2024-05-1214:22),追加写入需newFileWriter("scores.txt",true),读取后split解析并try-catch处理异常,排序后截取前10名覆写文件。
-
Java子线程未捕获异常会静默退出,需通过Thread.UncaughtExceptionHandler捕获;ExecutorService中Runnable异常被吞,Callable异常需Future.get()触发;推荐用自定义ThreadFactory统一设置异常处理器。
-
JavaSecurityManager被禁用后,policy文件还起作用吗不起作用。从Java17开始,SecurityManager已被标记为deprecated;Java21正式移除。只要没显式启用(比如启动时加-Djava.security.manager),哪怕你写了java.policy,JVM根本不会加载它,更不会校验任何权限。常见错误现象:改了java.security里的policy.url,重启应用却没效果;或者看到AccessControlExce
-
final类不能被继承的根本原因是JVM在类加载时强制校验ACC_FINAL标记,若尝试继承则抛出VerifyError或IncompatibleClassChangeError;String被设计为final是为了保障不可变性,确保字符串常量池、HashMap/HashSet行为、安全校验等核心机制可信。
-
Java程序无法执行JDK安装,必须由操作系统完成:Linux用apt装OpenJDK、macOS用Homebrew并配置PATH、Windows用.msi安装包;IDE和构建工具需手动指定JDK根路径而非依赖PATH。
-
应用Java插件并设置项目基本信息,配置仓库与依赖管理,自定义构建任务,优化性能参数。示例包括启用java插件、定义group和version、指定Java版本、添加mavenCentral仓库、声明implementation依赖、创建printBuildInfo任务、在gradle.properties中启用守护进程与并行构建,提升构建效率。
-
最简单的方法是使用Collections.reverse(),它直接修改原列表顺序。示例:Listlist=Arrays.asList("A","B","C");Collections.reverse(list);输出为[C,B,A]。若要保留原列表,可先复制再反转:Listreversed=newArrayList(original);Collections.reverse(reversed)。
-
Java用PriorityQueue实现多路归并需:每个文件仅维护一个ChunkReader缓存当前待比较数据,队列中存最小值对应记录;poll后立即从同文件读下一条,读尽则不再入队;避免Integer包装,优选int数组或ByteBuffer;分块大小依堆内存与单条记录体积动态计算,禁用硬编码;配大缓冲区BufferedReader/BufferedInputStream;临时文件用createTempFile+deleteOnExit;控制归并路数防fd泄漏;关键在内存、IO、GC协同对齐。