楼上有只喵
  • 首页
  • 归档
  • 分类
  • 标签
  •   
  •   

FullGC

1. FullGC 是什么?Full GC(Full Garbage Collection,全垃圾收集)是 Java 虚拟机(JVM)执行的一种垃圾收集过程,它会对整个堆内存进行垃圾收集,包括年轻代(Young Generation)和老年代(Old Generation),以及永久代(PermGen)或元空间(Metaspace)。 Minor GC:仅针对年轻代(Eden 和 Survivo
2024-06-13
JVM

操作系统OOM Killer

1. OOM Killer 是什么?OOM Killer(Out of Memory Killer)是 Linux 操作系统内核中的一个机制,用于在系统内存耗尽时,通过终止进程来释放内存资源,从而防止系统崩溃或无法响应。 2. OOM Killer 的触发条件当系统的物理内存和交换空间(swap)都被完全占用,且内核无法再分配内存时,就会触发 OOM(Out of Memory)状态。在这种情况下
2024-06-12

脑裂

1. 脑裂是什么?脑裂是指在分布式系统中,网络分区或其他原因导致集群中的节点分裂成多个子集。由于互相无法通信,这些子集各自认为自己是唯一的集群,从而可能导致数据不一致性、服务重复、竞态条件等严重问题。 在分布式数据库、分布式文件系统、分布式锁等系统中,脑裂问题尤为重要,因为它直接影响系统的正确性和一致性。 2. 脑裂的成因 网络分区:集群中的节点因网络故障被分隔成多个子集,子集之间无法通信。 节点
2024-05-30

java基础

1. Java 面向对象的三大特性及理解 默认情况下,面向对象有三大特性:继承、封装、多态。但如果考官让回答4大特性,我们就把抽象加上去。 1、继承 继承就是从已有的类继承信息创建新类的过程,被继承的类称为父类(也叫基类、超类),继承的类叫做子类(也叫派生类)。子类可以全盘接受父类的所有属性和方法(甚至是private修饰的,也可以继承,但是不能在父类之外访问,提供共有的访问方法(比如封装s
2024-05-25

spring常见面试题

1. Spring 注入过程 启动 Spring 容器 读取配置文件或注解扫描(如 @ComponentScan)加载 Bean 的定义。 Spring 容器会根据 Bean 的定义实例化对象。这个过程称为实例化(Instantiation)。 Spring 容器会注入依赖对象到 Bean 中。依赖注入可以通过构造器、Setter 方法或字段注入来实现。 依赖注入完成后,可以通过 Spring
2024-05-24

线程池

1. 线程池的定义 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源,提高了代码执行效率。 线程池和工厂模式、观察者模式有关(自己不要提,设计模式是个坑) 2. 使用线程池的好处1.降低资源消耗。通过重复利
2024-05-22

Jpa和mybatis

1. JPA和mybatis的区别基本概念 MyBatis: 是一个半自动化的持久层框架,专注于 SQL 映射和管理。 提供 SQL 查询、结果映射和存储过程的调用,允许开发者编写自己的 SQL。 JPA: 是 Java EE 和 Java SE 的标准规范,用于对象关系映射(ORM)。 主要实现包括 Hibernate、spring data jpa 和 OpenJPA。 提供全自动化的
2024-05-22

jpa的批量优化

1. 问题Spring-data-jpa自己带的JpaRepository里有很多现有的方法,如findAll, saveAll, deleteAll ,但是saveAll 和deleteAll 这种底层都是foreach的save或者delete的,性能非常低 2. 优化可以通过配置hibernate.jdbc.batch_size的方式, 将这些插入操作打包成一个批处理操作,然后一次性发送到数
2024-05-21

滑动窗口

1. 应用场景关键词: 满足XXX条件(计算结果,出现次数,同时包含) 最长/最短 子串/子数组/子序列 Eg:长度最小的子数组 2. 使用思路1. 寻找最长左右双指针(L,R)在起始点,R向右逐位滑动循环 ——每次滑动过程中 窗内元素满足条件,R向右扩大窗口,并更新最优结果 窗内元素不满足条件,L向右缩小窗口 ——R到达结尾 2. 模版12345678910
2024-05-20
LeetCode

同步阻塞与异步非阻塞的整理

1. BIO 和NIOBIO(Blocking I/O)和 NIO(Non-blocking I/O)是 Java 中用于处理 I/O 操作的两种不同的编程模型。 BIO(Blocking I/O): 同步阻塞:在 BIO 模型中,I/O 操作是同步阻塞的。当一个线程执行一个 I/O 操作时,线程会被阻塞,直到这个 I/O 操
2024-05-15
1…56789…28

搜索

Hexo Fluid
总访问量 次 总访客数 人