编程 第83页
常见的GC算法有哪些?-编程社

常见的GC算法有哪些?

Java的内存回收机制基于自动内存管理,开发人员无需手动释放内存。 垃圾回收器会自动识别不再使用的对象,并回收它们所占用的内存空间。 垃圾回收算法主要有 : 标记-清除算法:标记-清除算法分...
清欢渡的头像-编程社钻石会员清欢渡1年前
0487
为什么Java解释和编译都有?-编程社

为什么Java解释和编译都有?

首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
清欢渡的头像-编程社钻石会员清欢渡1年前
0767
Java为什么既是编译型也是解释型的?-编程社

Java为什么既是编译型也是解释型的?

首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释。 如下图: 编译性: Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。 解释性...
清欢渡的头像-编程社钻石会员清欢渡1年前
0546
JVM的内存区域和作用-编程社

JVM的内存区域和作用

根据 JVM8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。 还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 JVM的内存结构主要...
清欢渡的头像-编程社钻石会员清欢渡1年前
0496
怎么排查死锁?-编程社

怎么排查死锁?

产生死锁需要满足以下 4 个条件: 互斥条件:指运算单元(进程、线程或协程)对所分配到的资源具有排它性,也就是说在一段时间内某个锁资源只能被一个运算单元所占用。 请求和保持条件:指运算...
清欢渡的头像-编程社钻石会员清欢渡1年前
0376
快速排序最坏复杂度,最坏是什么情况-编程社

快速排序最坏复杂度,最坏是什么情况

快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn) 快速排序最坏的情况还得看枢轴(pivot)的选择策略。在快速排序的早期版本中呢,最左面或者是...
清欢渡的头像-编程社钻石会员清欢渡1年前
0375
spring三级缓存是什么?-编程社

spring三级缓存是什么?

三级缓存主要是为了解决单例模式下的循环依赖的问题。 循环依赖指的是两个类中的属性相互依赖对方:例如 A 类中有 B 属性,B 类中有 A属性,从而形成了一个依赖闭环,如下图。 循环依赖问题在Sp...
清欢渡的头像-编程社钻石会员清欢渡1年前
0505