自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

r09er的博客

严于律己,宽以待人

  • 博客(12)
  • 收藏
  • 关注

原创 JVM(七)内存空间

JVM内存空间JVM规范在程序运行期间定义了不同的数据区域.有一些区域跟随JVM的创建销毁.而有些区域则是线程独有的,线程独有的区域会跟随线程的创建与销毁.在不同版本和不同厂商的JVM版本中,都会有较大差异.本文基于JDK8,HotSpot虚拟机进行的总结JVM规范内的运行时数据区域程序计数器(The pc Register)JVM支持多线程,每个线程都有自己的程序计数器.当线程执行中...

2020-03-30 11:39:36 270

原创 JVM(九)JVM常用参数-不定时更新

JVM参数官方JDK8虚拟机参数主要分为6类6大类参数参数描述-Xmx5m堆内存最大5m-Xms5m堆内存初始化为5m-Xmn10m设置年轻代最大为10m-Xss256k线程堆栈大小256k,等同于-XX:ThreadStackSize=256k,这个参数会影响到虚拟机栈的,即方法栈的深度.设置太小可能会导致程序运行时...

2020-03-25 18:14:38 178

原创 JVM(八)-垃圾回收机制与垃圾收集器

JVM垃圾回收(GC)模型垃圾判断算法GC算法垃圾收集器的实现和选择垃圾判断算法引用计数法(Reference Couting)算法逻辑给对象添加一个引用计数器,当一个地方引用它,计数器+1,当引用失效,计数器-1.任何时刻计算器对象为0的对象就是不能再被使用的.算法弊端无法解决循环依赖问题.即A依赖于B,B也依赖于A.根搜索算法(GC Roots Trac...

2020-03-25 18:06:59 239

原创 JVM(七)JVM内存空间

JVM内存空间在JVM运行期间,会将内存划分为不同的区域在不同版本和不同厂商的JVM版本中,都会有较大差异.本文基于JDK8,HotSpot虚拟机进行的总结虚拟机栈(Stack)线程独有的内存空间,每个方法在执行时候会形成一个栈帧,用于存在这个方法的局部变量,操作数栈,动态链接,方法返回等信息.程序计数器(Program counter)线程独有,描述的是JVM执行过...

2020-03-24 15:35:31 125

原创 JVM(五)类的初始化

类的初始化类的初始化步骤假如类还未被加载和连接,那就先进行加载和连接假如类存在直接父类,并且这个父类还未被初始化,那就先初始化父类假如类中存在初始化语句,那就一次执行初始化语句类的初始化时机7种主动使用和被动使用,会触发类的初始化当初始化类的时候,要求父类都已经被初始化,但是这条规则不适用于接口(interface)初始化一个类时,并不会先初始化它所实现的接口...

2020-03-24 14:41:35 114

原创 JVM(四)类的连接

类的验证类被加载后,就进入连接阶段.连接就是将已经读入到内存的类的二进制数据合并到虚拟机运行时环境中.类验证的内容即使每个虚拟机实现都不同,但是大都会围绕以下几点进行类文件的结构检查语义检查字节码验证二进制兼容性验证类的准备在准备阶段,Java虚拟机为类的静态变量分配内存,并设置默认的初始值类的解析将间接引用转化为直接引用Java代码中的对象引用转化为...

2020-03-24 14:41:08 176

原创 SpringDataElasticSearch(一)

SpringDataElasticsearchSpringDataElasticsearch是SpringData模块的一个子模块,是对ES原生API的二次封装.由于SpringData版本与ES版本有相关的依赖性.所以集成会有坑.以此记录SpringBoot,SpringData,ES各个版本的支持情况本文编写时候ES最新版已经是7.6.1,但是SpringData最...

2020-03-20 16:48:10 180

原创 JVM(三)类加载器

类的加载类的加载是指将类的.class文件中二进制数据读入到内存中,然后将其放在运行时数据区的方法区内,然后在内存中创建爱你一个java.lang.Class对象规范并没有说明Class对象应该存放在哪,HotSpot虚拟机将其放在方法区中,用来封装类在方法区内的数据结构加载.class文件的方式从本地系统中直接加载从网络下载.calss文件从zip,jar等归档...

2020-03-20 16:46:24 97

原创 SpringDataCache踩坑记

SpringDataCache配合Redis使用缓存.完整配置在最后目的:使用注解形式优雅地序列化数据到redis中,并且数据都是可读的json格式为了达到以上目的,在SpringCache的使用过程中,需要自定义Redis的Serializer和Jackson的ObjectMapper,而且非常多坑.由于项目中使用了Java版本为JDK8,并且整个项目中关于时间的操作类全都是LocalD...

2020-03-19 10:34:49 1102

原创 JVM(二)类的主动使用与被动使用

对类的使用方式主动使用被动使用所有Java虚拟机实现必须在每个类或接口被Java程序首次主动使用时才初始化主动使用才进行初始化第一次主动使用才进行初始化,之后就不再初始化只有当程序访问的静态变量或静态方法确实在当前类或当前接口中定义时,才可认为是对类或接口的主动使用主动使用创建类的实例new Object()访问某个类或接口的静态变量,或者对该静...

2020-03-18 17:03:07 231

原创 JVM(一)类加载阶段分解

类加载器深入解析与阶段分解类加载阶段在Java代码中,类型的加载,连接与初始化过程都是在程序运行期间完成提供了更大的灵活性,增加了更多的可能性加载将已存在的磁盘的类的class文件加载到内存中连接对字节码的处理,验证,校验类与类之间的符号引用转为直接引用初始化对于静态变量进行赋值JVM规范对类加载的阶段进行了约束,但是具体情况需要根据运行时的...

2020-03-18 16:57:37 95

原创 Redis实现不可靠发布/订阅功能

Redis的发布/订阅模型Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式, 这个功能提供两种信息机制, 分别是订阅/发布到频道和订阅/发布到模式, 本文讨论订阅/发布到频道的实现该种模型类似于RocketMQ中广播模式,消费者订阅topic如图展示了发布消息到channel1后,各个client都会接收到messageim...

2020-03-18 16:51:32 4987 3

空空如也

空空如也

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

TA关注的人

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