-
答案:&&是短路与,左边为false时右边不执行;&是逻辑与且不短路,两边均计算,还可用于按位与操作。
-
当使用Scanner的nextDouble()等方法读取非匹配类型输入时,会抛出InputMismatchException而非NumberFormatException,若catch块未正确声明该异常类型,则异常将未被捕获而直接终止程序。
-
Java8u161+及主流OpenJDK默认支持无限制加密强度,无需手动配置JCE;若Cipher.getMaxAllowedKeyLength("AES")返回128,需升级JDK或旧版中替换local_policy.jar和US_export_policy.jar。
-
Java序列化是将运行中对象(含字段值、引用关系)转为字节流,仅保存实例状态,不保存方法、静态变量;反序列化则重建等价对象。必须实现Serializable接口以通过JVM许可检查,该接口为标记接口;未实现则运行时抛NotSerializableException;父类未实现时其字段丢失;内部类序列化要求外部类也实现;建议显式声明serialVersionUID避免InvalidClassException;static和transient字段不参与序列化,transient字段反序列化后为默认值,且全过
-
Java中默认构造方法仅在类未显式定义任何构造方法且非匿名类、接口或枚举时由编译器自动生成,具有与类相同的访问修饰符并隐式调用super()。
-
线程结束需通过逻辑控制实现,1.正常运行结束:run()方法执行完毕后自动终止,适合处理完任务的场景;2.中断机制:调用interrupt()通知线程,通过isInterrupted()检查状态或捕获InterruptedException实现优雅退出;3.volatile标志位:定义volatileboolean变量,线程定期检查该标志并退出。推荐使用中断或标志位方式,避免stop()等不安全方法导致的问题。
-
Java集合对null支持差异显著:ArrayList/LinkedList允许任意位置存null;HashMap/LinkedHashMap允许一个null键和多个null值;TreeMap/TreeSet完全禁止null;ConcurrentHashMap拒绝null键值,CopyOnWriteArrayList允许add(null)。
-
双亲委派被打破的典型信号是NoClassDefFoundError或ClassNotFoundException发生在同一类名、不同模块间;本质是当前ClassLoader找不到类而父加载器却有,需检查加载器链及OSGi的Import-Package声明。
-
Java21是最值得升级的LTS版本,尤其适用于I/O密集型服务、云原生微服务及长期维护项目;升级可解决线程资源瓶颈、GC停顿和并发代码可维护性差三大痛点。
-
Java枚举是独立引用类型,编译为final类继承Enum,具备类型安全、序列化支持和switch语义检查;必须用enum关键字定义,常量首行声明,构造器私有且隐式final,实例唯一且不可反射创建。
-
JVM仅接受publicstaticvoidmain(String[]args)或publicstaticvoidmain(String...args)两种签名;其他改动会导致运行时错误,因JVM硬编码校验修饰符、静态性、返回类型及参数类型。
-
静态绑定在编译期确定方法调用,依据引用类型,适用于private、static、final及构造方法;动态绑定在运行时通过vtable或itable依据实际对象类型分派非私有实例方法或接口方法。
-
推荐直接使用ThreadPoolExecutor而非Executors,因其可显式配置核心线程数、最大线程数、队列容量和拒绝策略,避免newCachedThreadPool和newFixedThreadPool因无界队列导致的OOM风险。
-
Java并发编程高频考点揭示核心陷阱:volatile不保证i++原子性因无法解决“读-改-写”竞态;ConcurrentHashMapJDK8后取消分段锁,改用synchronized锁单Node;线程池拒绝策略无绝对不丢任务方案,需结合限流与持久化队列;CompletableFuture中thenApply支持链式转换,thenAccept仅消费且中断链。
-
FileSystemException报错原因需看message字段:含“Accessisdenied”等为权限问题,含路径过长提示则为路径超限;Windows下可用\\?\前缀绕过260字符限制,但须Paths.get()显式构造且仅支持绝对路径。