自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 京东一面:Spring Boot 如何热加载jar实现动态插件?

一、背景动态插件化编程是一件很酷的事情,能实现业务功能的 解耦 便于维护,另外也可以提升 可扩展性 随时可以在不停服务器的情况下扩展功能,也具有非常好的 开放性 除了自己的研发人员可以开发功能之外,也能接纳第三方开发商按照规范开发的插件。常见的动态插件的实现方式有 SPI、OSGI 等方案,由于脱离了 Spring IOC 的管理在插件中无法注入主程序的 Bean 对象,例如主程序中已经集成了 Redis 但是在插件中无法使用。本文主要介绍在 Spring Boot 工程中热加载 jar 包并注册成为

2022-04-15 21:49:39 1360 2

原创 阿里二面:Redis身为单线程,它是怎么做到这么快的?

面试时候的常见问题,可以从 Redis 不同数据类型底层的数据结构实现、完全基于内存、IO 多路复用网络模型、线程模型、渐进式 rehash……等等方面回答1. 基于内存实现Redis 是基于内存的数据库,跟磁盘数据库相比,完全吊打磁盘的速度。内存直接由 CPU 控制,也就是 CPU 内部集成的内存控制器,所以说内存是直接与 CPU 对接,享受与 CPU 通信的最优带宽。2. 高效的数据结构Redis 一共有 5 种数据类型,String、List、Hash、Set、SortedSet。不同的数据

2022-04-08 21:41:34 976

原创 Java后端面试常问的JVM板块,你有认真的研究过它的原理吗?

1.JVM 的位置JVM是运行在操作系统之上的。2.JVM 的体系结构首先垃圾回收一定不会在栈、本地方法栈、程序计数器中,栈用完后系统会自动释放掉所谓的JVM调优,99%其实就是在堆与方法区中进行的,而其中99%就是在调堆,我们说方法去其实就是一个特殊的堆3.类加载器 Class Loader类加载器的作用:加载Class文件例如,我们有一个 Student 实体类当我们执行 new Student(); 后,说明抽象的 Student 类变为一个具体的实例。引用将会被放入栈中,而具

2022-04-07 21:40:13 268

原创 图文并茂,直接用33张图给你讲透ReentrantReadWriteLock源码架构,看完你就懂了

1. 由一个问题引发的思考 线程的合理使用能够提升程序的处理性能,主要有两个方面,第一个是能够利用多核CPU以及超线程技术来实现线程的并发执行;第二个是线程的异步化执行相比于同步化执行来说,异步执行能够很好的优化程序的处理能力提升并发的吞吐量。但是,这样也会带来很多的麻烦,来看如下代码: public class Demo { private static int count = 0; public static void inc() { try {

2022-04-06 21:07:31 323

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除