自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 五种常见序列化算法:JDK、JSON、Hession、Kryo、ProtoStuff

序列化算法优点缺点JDK使用简单,可靠性能极差,占空间,不跨语言JSON格式简洁、可读性强性能较差,占空间Hession跨平台方便性能较差Kryo性能高,占空间小不跨语言ProtoStuff高性能依赖schema性能对比:Kryo > ProtoStuff > JSON > Hession > JDK空间开销:JKD > Hession > JSON > ProtoStuff > Kroy以上数据来自。

2024-07-30 19:07:30 736

原创 类文件结构

最开始,代码编译的结果只能是二进制本地机器码,而如今越来越多语言选择了与操作系统和机器指令无关的、平台中立的格式作为程序编译后的存储格式。Java选择字节码作为程序存储格式,即”Class文件“。注意:任何一个Class文件都对应着唯一一个类或接口的定义消息,但类或接口不一定必须定义在文件中(类和接口可以动态生成,直接送入类加载器中,例如使用反射机制)。

2024-07-30 14:19:35 349

原创 自动配置原理

参考: https://b23.tv/JFhubZ2自动配置:springBoot自动去把第三方组件的bean装载到ioc容器里面,不需要开发人员再写bean相关的配置。在启动类上加上@SpringBootApplication注解就可以实现自动配置。

2024-07-30 01:08:27 339

原创 Redis哨兵机制

哨兵机制的作用是实现主从集群的故障自动恢复,帮助选取新的主节点维护主从集群正常运行。

2024-07-26 17:41:37 350

原创 Redis主从复制

为了进一步提高Redis的并发能力,我们需要搭建主从集群,实现。主服务器:可以进行读写操作,并将写操作同步给从服务器。从服务器:只能进行读操作,接收主服务器同步的写操作命令,并且执行该操作。

2024-07-26 14:43:54 617

原创 Redis过期删除策略与内存淘汰策略

Redis基于内存存储,然而内存非常珍贵且有限,所以Redis提供两个策略回收内存。

2024-07-25 17:06:37 342

原创 Redis持久化

Redis虽然是内存数据库,但会把缓存数据保存到硬盘中持久化。使用了AOF和RDB进行持久化。

2024-07-25 16:09:05 491

原创 对象中JVM中

在堆中划出一部分作为句柄池,reference存储对象的句柄地址,句柄中包含对象的实例数据地址信息和对象类型数据地址信息。例如线程A给对象A分配内存,指向了一个指针进行分配。选择哪种方法由空间压缩算法决定,例如标记清除(只能用空闲指针)算法,标记复制算法,标记整理算法。好处:具有稳定的句柄地址,reference指向句柄地址不会变,对象被移动只需要改变句柄的指针。可以通过reference直接访问对象实例,访问对象的类的数据的话还是需要指针。好处:开销降低,指向实例数据的话只要一次指向。

2024-07-25 14:03:17 322

原创 字节码的执行引擎

栈帧需要分配的内存只取决于程序源码和虚拟机的内存布局,不受程序运行时的变量影响,因为栈帧所需要多大的局部变量表和操作数栈在编译源码时已经被分析出来了,并写到了方法表的code属性中。方法无论以哪种方式退出,都必须返回最初方法被调用的位置,程序才能继续执行,一般来说,方法正常退出时,主调方法的pc计数器的值是方法返回地址。虚拟机在重载时是根据参数的静态类型而不是实际类型决定的,在调用重载方法时,根据静态类型选择对应参数的重载方法。只有位于栈顶的栈帧才是真正运行的,被称为当前栈帧,该方法被称为当前方法。

2024-07-25 13:59:28 433

原创 类加载机制

类加载机制:jvm把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。

2024-07-25 13:56:30 759

原创 JVM数据区

jvm运行时数据区。

2024-07-25 13:54:48 280

原创 垃圾收集器与内存分配策略

程序计数器,虚拟机栈,本地方法栈随着线程而生,随着线程死,栈中的栈帧在方法执行后会自动出栈,所以这几部分不需要垃圾回收。而堆和方法区具有不确定性,内存的分配回收都是动态的,需要垃圾回收机制。堆中主要回收对象,方法区主要回收废弃的常量和不再使用的类。

2024-07-25 13:53:22 715

原创 Future 、promise和compleableFuture有什么区别

在异步处理时,我们常常需要用到这些接口:jdk中的Future和CompleableFuture,netty中的Future和promise。其中jdk的Future和CompleableFuture在上篇文章中已经讲过了,现在先来讲讲netty的Future和promise。

2024-07-24 16:44:32 554

原创 CompletableFuture

CompletableFuture是Java8引入的,在Future的基础上实现了异步编排功能。

2024-07-24 14:25:01 448

空空如也

空空如也

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

TA关注的人

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