-
答案:在CentOS中安装JDK需先检查Java版本,使用yum或dnf安装OpenJDK-devel,验证安装后配置JAVA_HOME、PATH和CLASSPATH环境变量,确保开发与运行环境正常。
-
Java线程优先级通过setPriority()设置,取值1-10,分别对应MIN、NORM、MAX_PRIORITY,继承父线程优先级,但实际调度受操作系统影响,无法保证执行顺序,仅作为CPU时间分配的提示,不能依赖其控制程序逻辑。
-
编译期常量是在编译阶段就能确定值并嵌入字节码的final基本类型或String变量,需满足声明即初始化、类型合法、表达式为常量表达式四条件,影响赋值、switch、字符串优化等行为。
-
父类构造方法中调用被子类重写的方法是危险但默认发生的多态行为;应避免在构造过程中依赖可被重写的行为,最稳妥方式是将方法设为final/sealed或推迟多态逻辑至构造完成后的显式初始化方法。
-
负载因子控制触发HashMap扩容的键值对数量阈值系数,即size>capacity×loadFactor时扩容;它不控制内存占比、桶内链表长度或哈希计算,仅构造时固化,默认0.75为时空折中。
-
newBigDecimal(0.1)不等于0.1,因为double的二进制浮点表示导致0.1存储为近似值0.10000000000000000555…,BigDecimal(String)或BigDecimal.valueOf()才能精确构造。
-
Java的extends仅支持单继承,可链式继承但不允许多类继承;继承public/protected及包内default成员,不可见private成员;构造器不被继承,static成员可继承但不可重写。
-
Java批量重命名工具需安全遍历、合规构名、原子重命名及完善反馈:过滤无效文件,清理非法字符并保留扩展名,优先用Files.move()替代renameTo(),预览变更、记录日志、校验结果。
-
父类构造方法在子类对象实例化时必须优先执行,以确保父类字段(如privatefinalStringidCard)被正确初始化,避免未定义状态;编译器强制插入super()调用,执行顺序为:父类静态块→子类静态块→父类实例块→父类构造→子类实例块→子类构造。
-
多层try-catch并非嵌套越多越好,应按异常类型粒度、恢复策略和资源生命周期分段设计;捕获顺序须从具体到宽泛,避免子类异常被父类吞没;推荐使用try-with-resources确保资源安全关闭,并合理处理suppressed异常。
-
MalformedURLException通常不是运行时该捕获的异常这个异常是java.net.URL构造函数抛出的检查型异常,本质是「你传了个明显非法的字符串给它」——比如协议缺省、冒号位置错、空字符串、含非法字符等。它反映的是代码逻辑问题,不是网络或用户输入的偶然错误。常见错误现象:newURL("http//example.com")(少了一个冒号)、newURL("ftp:/path")(协议后格式不合法)、newURL("")(空白字符串)。实操建议:不要在运行时靠tr
-
首先下载JDK11并安装,然后配置JAVA_HOME和PATH环境变量,最后通过java-version和javac-version验证安装成功。
-
构造函数中启动线程危险,因this引用可能逸出,导致其他线程看到半初始化对象,引发NullPointerException或逻辑错误;应将线程启动移至工厂方法或init()中确保安全发布。
-
直接newForkJoinPool()易出问题,因其默认共享commonPool且线程数等于CPU核心数,I/O阻塞易致饥饿、堆积或死锁;应显式创建独立实例并合理设置并行度。
-
Java中判断线程是否被中断应检查中断标志而非线程状态;Thread.interrupted()检测并清除当前线程中断状态,isInterrupted()仅检测不修改;阻塞方法响应中断抛出InterruptedException且自动清标志,需手动恢复;不可中断操作不响应interrupt(),getState()与中断无关。