-
JavaScript是基于原型的对象系统,无传统类继承,通过[[Prototype]]链实现属性查找;ES6class仅为语法糖,BOM和DOM是宿主环境提供的API,非语言特性。
-
JavaIO是阻塞式且低效于高并发,NIO通过非阻塞和复用机制提升性能。1.JavaIO基于流模型,每个连接需独立线程处理,导致高并发下线程开销大;2.NIO引入通道、缓冲区和选择器,实现非阻塞I/O,单线程可管理大量连接;3.文件操作上,NIO的内存映射和零拷贝减少数据拷贝与CPU开销;4.网络通信中,Selector监听多事件,SocketChannel与ServerSocketChannel配合实现高效连接处理;5.使用NIO需注意Selector空轮询、Buffer管理、Direct/HeapBu
-
抽象类适配器的核心是卸载接口全实现压力,让子类仅重写关心的方法,其余由抽象适配器空实现或提供默认逻辑;它必须abstract、implements接口、不实例化,适用于方法较多且子类只需部分功能的场景。
-
@Deprecated是提示性注解,不中断编译仅触发警告,IDE标黄是主动解析实现;它不影响运行时路由或权限控制,需配合逻辑拦截、版本路径和文档说明才能真正停用接口。
-
分层编译是JVM通过C1与C2协同实现启动快、运行优的关键机制,共5层:0层解释执行,1层基础C1优化,2/3层带profiling的C1,4层基于热点数据的深度C2优化,升层由调用/回边计数器触发。
-
flatMap可将List<List<T>>展平为单层Stream<T>,核心是将每个内层列表转为Stream再合并;需过滤null/空列表以确保安全;还可逐层处理更深嵌套结构。
-
Optional.ifPresent仅用于本地空值防护,不能解决微服务迁移中的上下文断裂、分布式容错等问题;它适用于DTO转换、配置读取等轻量场景,需配合契约定义、统一结果封装和降级机制保障变量安全。
-
Java中long和float字面量需加L/F后缀,因整数默认int、浮点数默认double;如10000000000无L会超int范围报错,3.14无F因double转float隐式降级被禁止。
-
Java中的Stream只能被消费一次,执行终端操作后再次使用会抛出IllegalStateException;正确做法是每次从数据源重新创建新Stream或用Supplier封装stream()调用。
-
DelayQueue必须存实现Delayed接口的对象,需同时重写getDelay和compareTo方法;取任务必须用take()阻塞等待,消费应单线程取出后交由业务线程池异步处理,并配合外部存储实现持久化与幂等关单。
-
可通过ResultSet.getMetaData()获取元数据,按列索引(从1开始)调用getColumnCount()、getColumnName()、getColumnLabel()、getColumnTypeName()、getColumnType()等方法获取列数、列名、标签名、数据库类型名及JDBC类型码,并依映射关系转为对应Java类型。
-
FileSystems.getDefault()返回JVM启动时绑定的本地操作系统文件系统实例(如Windows的NTFS、Linux的ext4),是单例且线程安全的,但不支持jar、网络或内存路径,仅限本地磁盘访问。
-
LinkedHashMap通过双向链表维护插入或访问顺序,遍历时按插入顺序输出;设置访问顺序后可实现LRU缓存;序列化和复制时能保留顺序,适用于配置项、有序响应、缓存等场景。
-
CyclicBarrier适用于多阶段并行计算,支持重复使用,每轮等待所有线程到达后自动重置;CountDownLatch不可重用,频繁新建实例会增加开销和出错风险。
-
核心是先稳数据模型与操作边界:employee表含id、name、emp_code;attendance表含employee_id、work_date(DATE)、status,并建联合唯一索引uk_emp_date;用PreparedStatement或MyBatis动态SQL,查考勤需用LocalDate区间查询,批量更新须事务控制。