-
首先下载JDK11并安装,然后配置JAVA_HOME和PATH环境变量,最后通过java-version和javac-version验证安装成功。160 收藏 -
构造函数中启动线程危险,因this引用可能逸出,导致其他线程看到半初始化对象,引发NullPointerException或逻辑错误;应将线程启动移至工厂方法或init()中确保安全发布。160 收藏 -
直接newForkJoinPool()易出问题,因其默认共享commonPool且线程数等于CPU核心数,I/O阻塞易致饥饿、堆积或死锁;应显式创建独立实例并合理设置并行度。160 收藏 -
正则表达式是一种描述字符串模式的微型形式语言,本质是正则集的有限表达方式,对应唯一字符串集合,由有限自动机构实现,属乔姆斯基层级中最底层的正则语言。159 收藏 -
LinkedBlockingQueue是基于链表的可选有界阻塞队列,支持put/take阻塞操作,适用于生产者-消费者模型。它采用双锁分离机制提升并发性能,默认容量为Integer.MAX_VALUE,建议显式设置容量以避免内存溢出,且不支持null元素。159 收藏 -
IllegalMonitorStateException因未获取锁时调用wait/notify导致,需在synchronized块中调用这些方法,并优先使用ReentrantLock、BlockingQueue等并发工具确保线程安全。159 收藏 -
设计Student类封装姓名、学号、成绩,提供构造方法和getter/setter及toString();用ArrayList存储学生对象,支持动态增删;通过Scanner实现菜单交互,包含录入、查询、统计平均分等功能;使用switch分流,遍历集合匹配学号,计算平均分时判空防异常;输入时校验数据类型,避免程序崩溃;合理拆分方法提升可读性,掌握类、集合与流程控制核心。159 收藏 -
Java构造方法由new隐式触发,必须与类名完全一致且无返回类型;this()委托须首行唯一;父类无参构造缺失时子类须显式调用super(...);构造器中可return;但不可返回值;严禁泄露未完成初始化的this。159 收藏 -
用ArrayList<Product>比数组更灵活,支持动态扩容和便捷增删查;配合HashMap<String,Product>可实现O(1)查询;删除商品需先检查订单依赖,再同步更新集合。159 收藏 -
本文详解如何通过递归方式判断两个字符串是否在所有'X'字符的位置上完全一致,重点修复逻辑运算符误用(||替代&&)导致的匹配失败问题,并提供符合Java规范的健壮实现。159 收藏 -
Path和Files从设计上解决File类路径、元数据、I/O混杂导致的跨平台错误、静默失败等问题:Path专注可预测路径操作,Files提供语义明确、异常清晰的I/O方法。159 收藏 -
静态成员属类、共享且类加载时初始化;实例成员属对象、独立且每次new时创建;静态方法不能访问实例成员;静态块先于实例块执行;静态内部类不持外部引用,非静态则持有;静态集合易致内存泄漏。159 收藏 -
只需安装JDK即可,因JRE已集成其中;Java11起Oracle停供独立JRE,OpenJDK版本亦不提供;Java9+用jlink定制运行时替代传统JRE。159 收藏 -
静态代码块在类首次被主动使用且JVM执行初始化阶段时执行,仅一次;按源码顺序执行,依赖声明顺序,不可用this或new实例,异常会导致初始化失败。159 收藏 -
进了,但仅限于编译期能确定的字符串字面量;Java在编译阶段将"abc"等字面量存入class常量池,类加载时载入运行时常量池(JDK7+位于堆中),Strings="abc"直接复用该引用,而newString("abc")总在堆新建对象。159 收藏