最新 最热

C#中的悲观锁和乐观锁

乐观锁的核心思想是假设在大多数情况下,资源不会发生冲突,因此允许多个用户或线程同时读取和修改资源。只有在真正发生冲突的时候才会进行冲突解决。...

2023-09-06
1

每天一道面试题-CPU伪共享

如果要获取一个内存中的数据,首先会从一级缓存中获取,如果一级缓存中没有,就会从二级缓存中获取,如果二级缓存中没有,就会从三级缓存中获取,如果三级缓存中没有,就会从内存中获取。...

2023-09-06
1

公司在用JDK11,都有什么区别?

不得不说,现在虽然大部分公司还是在使用的 JDK8,但是也有一些相对比较小的公司,会跟风,直接切换版本,毕竟这个项目切换版本,其实还是一个很大的问题,一般的大公司的话,可能并没有那么容易起的去切换版本,反而是小公司更容易去...

2023-09-06
1

一文搞懂Java的线程生命周期

Java的多线程机制为开发者提供了充分利用多核处理器的能力,但同时也带来了线程安全和同步等问题。了解Java线程的生命周期对于正确管理和调试多线程程序至关重要。...

2023-09-06
1

重温斐波那契数列,再看时间复杂度的重要性

一个老生常谈的思路是递归,另外是循环,今天借此机会回顾并演示时间复杂度在编程中的重要性。

2023-09-05
1

G1垃圾收集器-JVM(十三)

上篇文章说了CMS垃圾收集器使用以及三色标记如何解决cms的一些问题。分别有初始标记,并发标记,重新标记,并发清理,并发重置。

2023-09-05
1

CMS垃圾收集器&三色标记-JVM(十二)

上篇文章说了CMS垃圾收集器是赋值清除,所以他不可以碎片整理,于是jvm支持两个参数,几次fullGC之后碎片整理压缩空间。Cms他会抢占cpu资源,因为是并行运行,所以会有浮动垃圾。还有执行不确定性,垃圾收集完,继续进入新的对象,导...

2023-09-05
1

垃圾收集器CMS-JVM(十一)

前面还有一个类的加载没说,类的加载则需要考虑到双亲委派,有三个类自带的核心加载器,bootStrap加载器,扩展加载器,app加载器,后面则有自定义加载器。...

2023-09-05
1

redis缓存设计-Redis(七)

正常情况下,用户访问某条数据,第一次从数据库获取,后面会set进缓存,从缓存获取。缓存穿透指的是数据库没有这个值,当大量请求时,会经过缓存在数据库不断查询,数据库负担不断增加。这种情况下可能是业务代码异常,也可能是黑客...

2023-09-05
1

持久化RDB/AOF-Redis(三)

Redis现在采用的是bgsave是异步持久化。(background save)

2023-09-05
1