- 博客(65)
- 收藏
- 关注
原创 Spring 面经
AOP:面向切面编程,是一种编程范式,它的主要作用是将那些与核心业务逻辑无关,但是对多个对象产生影响的公共行为封装起来,如日志记录、性能统计、事务等。IoC:控制反转,是一种设计思想,它的主要作用是将对象的创建和对象之间的调用过程交给 Spring 容器来管理。所谓的 IoC,就是由容器来控制对象的生命周期和对象之间的关系。控制对象生命周期的不再是引用它的对象,而是容器,这就叫控制反转(Inversion of Control)。
2025-04-01 20:06:21
461
原创 JVM 面经
方法区并不真实存在,是 Java 虚拟机规范中的一个逻辑概念,用于存储已被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等。在 HotSpot 虚拟机中,方法区的实现称为永久代 PermGen,但在 Java 8 及之后的版本中,已经被元空间 Metaspace 所替代。堆是 JVM 中最大的一块内存区域,被所有线程共享,在 JVM 启动时创建,主要用来存储 new 出来的对象。Java 中几乎所有的对象都会在堆中分配,堆也是垃圾收集器管理的目标区域。
2025-03-28 20:29:03
961
原创 Java 并发编程面经
线程上下文切换是指 CPU 从一个线程切换到另一个线程执行时的过程。在线程上下文切换的过程中,CPU 需要保存当前线程的执行状态,并加载下一个线程的上下文。之所以要这样,是因为 CPU 在同一时刻只能执行一个线程,为了实现多线程并发执行,需要不断地在多个线程之间切换。CPU 资源的分配采用了时间片轮转的方式。指令重排是指 CPU 或编译器为了提高程序的执行效率,改变代码执行顺序的一种优化技术。从 Java 源代码到最终执行的指令序列,会经历 3 种重排序:编译器重排序、指令并行重排序、内存系统重排序。
2025-03-27 20:49:04
695
原创 Java 集合框架面经
Java 中的队列主要通过 Queue 接口和并发包下的 BlockingQueue 两个接口来实现。优先级队列 PriorityQueue 实现了 Queue 接口,是一个无界队列,它的元素按照自然顺序排序或者 Comparator 比较器进行排序。双端队列 ArrayDeque 也实现了 Queue 接口,是一个基于数组的,可以在两端插入和删除元素的队列。采用安全失败机制的集合容器,在遍历时并不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。
2025-03-26 20:37:57
998
原创 Java SE 面经
字节码是 Java 程序经过编译后产生的 .class 文件。编译:将源代码文件 .java 编译成 JVM 可以识别的字节码文件 .class。解释:JVM 运行字节码文件,将字节码翻译成操作系统能识别的机器码。运行:操作系统运行二进制的机器码。//装箱int n = i;//拆箱。
2025-03-19 19:59:40
921
原创 RocketMQ 架构
集群的「中枢神经」,负责 Topic 元数据管理(如 Topic 分区分布、Broker 节点状态监控)。消息存储与流转的核心节点,负责消息的持久化、读写请求处理。消息生产者,负责将消息投递到指定的 Topic。消息消费者,从 Broker 拉取消息并处理。
2025-03-19 16:59:29
769
原创 LeetCode 解题思路 7(Hot 100)
O(nlogn),主要开销在排序步骤,时间复杂度为 O(nlogn)。合并的时间复杂度为 O(n)。需要额外的空间存储合并后的结果,最坏情况下(无重叠区间)空间复杂度为 O(n)。
2025-03-02 22:36:32
421
原创 LeetCode 解题思路 6(Hot 100)
O(k),最坏情况下,队列中存储窗口内所有元素的索引(当数组严格递减时)。O(n),每个元素最多入队和出队一次,因此总操作次数为线性时间。
2025-03-01 23:15:02
432
原创 org.springframework.jmx.export.UnableToRegisterMBeanException报错的解决方法
jmx.registration-policy: ignore_existing 是 Spring 中用于配置 JMX(Java Management Extensions)MBean 注册策略的一个属性。具体来说,它定义了当尝试注册一个已经存在的 MBean 时,Spring 应该如何处理这种情况。
2025-02-19 16:33:55
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人