Java中对象一般创建在堆内存中,在堆内存空间不足的时候,GC便会进行垃圾回收,如果过于频繁,便会影响程序的性能,所以逃逸分析由此诞生,它的目的就是判断哪些对象是可以存储在栈内存中而不用存储在堆内存中的,从而让其随着线程的消逝而消逝,进而减少了GC发生的频率,这也是常见的JVM优化技巧之一。
Java中对象一般创建在堆内存中,在堆内存空间不足的时候,GC便会进行垃圾回收,如果过于频繁,便会影响程序的性能,所以逃逸分析由此诞生,它的目的就是判断哪些对象是可以存储在栈内存中而不用存储在堆内存中的,从而让其随着线程的消逝而消逝,进而减少了GC发生的频率,这也是常见的JVM优化技巧之一。
我们知道,程序在运行的时候,为了提高性能,大部分数据都是会加载到内存中进行运算的,有些数据是需要常驻内存中的,但是有些数据,用过之后便不会再需要了,我们称这部分数据为垃圾数据。 为了防止内存被使用完,我们需要将这些垃圾数据进行回收,即需要将这部分内存空间进行释放。不同于 C++ 需要自行释放内存的机制,Java 虚拟机(JVM)提供了一种自动回收内存的机制,这对于我们开发人员来说,再友好不过了。
堆栈(Stack)数据结构也是常用的数据结构之一,但是官方建议使用 Deque 这种双边队列才替代之,所以,本文就对 Deque 这种数据结构进行详细地剖析下。
HashMap 这个数据结构,不管是日常开发,还是求职面试,它始终都是所有 Java 程序员绕不开的宿命,所以还是决定写篇文章来详细剖析下 HashMap 这个数据结构,探探期间到底有多少奥秘。
有时候程序代码的漏洞会导致服务器 CPU 占用过高,这类问题往往处理起来会比较棘手,本文使用一个浅显的案例来介绍几种排查 CPU 占用过高问题的工具,这些工具都是很强大并且很有效的,比如 Arthas 等。
对于身份证号码,你是否还停留在可以知晓出生地和出生年月日的层面上?其实它背后也有着丰富而优美的数学知识,比如末位数字的奥秘,本文带你深度剖析它。
具有竞争或对抗性质的行为称为博弈行为,并且博弈理论在经济学、国际关系、军事战略等很多领域都有广泛的应用,其中以纳什均衡为代表的非合作性博弈理论在日常中最为常用。
webhook 是 git 仓库锋利的瑞士军刀之一,利用它,我们可以监听例如 push 在内的所有动作,并设置很多定制化的回调,比如本文的自动部署博客便是最简单的应用场景之一。
关于 Spring 事务,平时开发过程中都会有接触到,但是对这块知识的详细总结却很少,所以本文总结了下 Spring 事务的传播行为。