-
静态块不能抛出受检异常,否则编译失败;若抛出未捕获异常(含RuntimeException),类初始化失败,后续所有对该类的主动使用均抛NoClassDefFoundError。
-
Java二进制字面量必须用0b或0B前缀,Java7起支持;八进制用0开头但易错应避免;十六进制用0x/0X,最安全常用。
-
本文介绍如何在Java应用不重启的前提下,通过JVM内置诊断命令动态开启垃圾回收(GC)日志,支持输出到控制台或指定文件,并可随时关闭,适用于生产环境紧急排查内存问题。
-
ArrayList.clone()返回浅拷贝,仅复制数组引用,元素对象仍共享;修改副本中可变元素会影响原集合,仅当元素为String等不可变类型时安全。
-
Java中读取配置文件最常用、最轻量的方式是使用java.util.Properties类,它原生支持键值对格式的加载、修改和保存,无需额外依赖;可通过类路径、文件路径、URL或字符串加载,需注意编码(推荐UTF-8)及生产环境写入风险。
-
首先设计Contact类封装姓名、电话、邮箱,再通过AddressBook类使用ArrayList实现增删改查功能,最后在主类中测试添加、查询、删除联系人并遍历显示,构成基础通讯录系统。
-
配置Eclipse工作空间和首选项可显著提升Java开发效率。1.选择清晰路径作为工作空间,避免中文和空格,可为不同类型项目创建多个空间;2.启用自动补全、扩展内容辅助触发字符、设置组织导入以优化编辑体验;3.统一编译器合规级别与JDK版本,确保全局与项目一致;4.在保存时自动格式化代码、整理导入并添加缺失注解。合理设置后能减少错误、提升编码流畅度。
-
URLConnection因缺乏重定向、连接池、JSON支持及默认超时等能力而被弃用;推荐OkHttp(API简洁、性能好)、ApacheHttpClient(稳定但繁琐)或Java11+HttpClient(标准库、轻量),Spring项目优先选WebClient。
-
首先下载JDK11并安装,然后配置JAVA_HOME和PATH环境变量,最后通过java-version和javac-version验证安装成功。
-
ArrayBlockingQueue是Java中基于数组实现的有界阻塞队列,1.初始化需指定固定容量,不可变;2.使用put()/take()实现线程安全的阻塞通信;3.可选公平策略控制线程等待顺序;4.支持offer/poll等非阻塞操作提升灵活性;5.需合理设置容量并处理中断异常。
-
Java内存模型(JMM)是定义多线程下可见性、有序性和原子性的抽象规范,非JVM内存结构;它通过主内存与工作内存(虚构概念)描述线程交互,volatile靠内存屏障实现可见性与禁止重排序但不保证原子性,synchronized基于happens-before保证锁释放前修改对后续获取该锁的线程可见,final字段在正确构造前提下提供初始化安全性。
-
本文详解如何在Java中将默认配置映射(Map)中的键值对,有选择性地合并到目标Map中:仅当目标Map中该键不存在,或对应值为null或空白字符串(isBlank())时才覆盖,同时规避不可变Map的常见陷阱。
-
Java集合框架核心是接口体系:Collection(单列,含List有序可重复、Set无序不重复、Queue队列)、Map(键值对,独立体系)及Iterable(支持for-each)。选型重行为匹配而非死记类名。
-
Collections.unmodifiableList返回一个禁止修改操作的列表视图,原始列表的变更仍会反映其中,适用于保护数据完整性但需注意其非深拷贝、不阻止元素内部状态修改等特性。
-
Java源文件通过javac编译为.class字节码,经JVM类加载(加载、链接、初始化)、执行引擎(解释器/JIT)运行,main方法启动后JVM存活至非守护线程结束。