-
守护线程是JVM退出时自动终止的后台线程,适用于监控、日志等非关键任务;必须启动前设置setDaemon(true);其创建的子线程默认也是守护线程;应避免执行持久化、资源释放等关键操作。
-
非静态内部类默认持有外部类强引用,Java编译器在字节码中注入this$0字段,导致Activity等组件无法被GC回收,引发内存泄漏;Handler、匿名监听器及捕获实例方法的Lambda均属此类。
-
选集合先看操作特征:纯随机读用ArrayList或HashMap,频繁中间增删用LinkedList(需节点引用),有序+查key用LinkedHashMap,并发读多用ConcurrentHashMap,写多强一致考虑加锁或CopyOnWriteArrayList。
-
Java访问控制模型是编译器强制的可见性规则体系,通过public、protected、default、private四关键字划定“谁能在哪看到什么”,核心服务于封装、低耦合与可维护性,而非运行时权限管理。
-
中文乱码需统一源文件编码、IDE内部编码和终端编码:Windows终端用chcp65001,IDE设UTF-8,JVM加-Dfile.encoding=UTF-8,Python需确保终端与文件均为UTF-8无BOM。
-
二进制文件(如PDF、图片、短视频)不宜直接当作“文档”存入数据库;推荐采用元数据+文件系统分离存储的架构,兼顾性能、可维护性与扩展性。
-
JavaFX11+需手动配置SDK路径、模块声明及运行参数:下载匹配JDK版本的javafx-sdk,配置--module-path和--add-modules,module-info.java中显式requires和opens相关模块,FXML控制器包名须与fx:controller完全一致。
-
TreeMap的get()时间复杂度为O(logn),因其基于红黑树实现,需沿树路径比较查找;不支持O(1)因需维持键有序性,适用于范围查询、排序遍历等场景。
-
for-each遍历时调用remove()会抛ConcurrentModificationException,因modCount与expectedModCount不一致;正确做法是用Iterator.remove()、removeIf()或倒序for循环。
-
本文详解如何在多线程求最大值场景中,通过合理使用join()与线程安全设计(而非错误依赖synchronizedrun)确保主线程等待子线程完成,避免竞态读取未初始化结果。
-
ArrayList比HashMap更合适存账目,因其天然保持录入顺序、避免键维护问题,且增删查改更自然;需重写equals/hashCode,优先用增强for或stream过滤,日期查询可缓存TreeSet;文件保存应原子写入JSON;金额输入须正则校验或格式化控件,禁用float;导出Excel需设中文字体和公式;CSV更稳妥;规则宜简单配置化。
-
final类不能被继承,因为JVM在加载时直接禁止子类符号引用解析,编译阶段即报错“cannotinheritfromfinalclass”,属字节码层面设计约束,非运行时限制。
-
final关键字在Java中用于限制类、方法和变量的修改。1.final类不能被继承,如MathUtils或String类,防止行为被篡改;2.final方法不能被子类重写,确保核心逻辑不变,如Animal类的breathe方法;3.final变量一旦赋值不可更改,包括继承体系中的成员变量,必须在构造前初始化,且子类无法修改父类的final字段。合理使用final可增强代码安全与稳定。
-
本文介绍如何在SpringBoot应用中结合CRON定时任务与前端自动刷新机制,实现每小时从网站抓取数据、分组处理后实时展示在多个JSP页面上,无需手动提交或页面重载。核心方案为后端定时调度+前端轻量轮询/自动刷新。
-
IP地址标识主机,Java用InetAddress类表示;2.端口号标识进程,范围0-65535,Socket连接需指定;3.通信协议定义传输规则,TCP可靠、UDP高效,分别用Socket和DatagramSocket实现。