自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 问答 (1)
  • 收藏
  • 关注

原创 JVM垃圾收集算法

jvm一般把内存区域(或者说堆内存)分为新生代和老年代,作这样的区分主要是为了方便收集,新生代的对象大部分都是朝生夕死,所以进行回收十分频繁,而老年代则是那些一直没有被收集过得内存,进行垃圾回收次数较少。这样就不用了对整块内存进行回收。因而才有了“Minor GC”“Major GC”“Full GC”这样的回收类型的划分。手机算法也有标记-清除算法,标记-复制算法,标记-整理算法。标记可以理解为jvm会对将要回收的内存进行一次标记,这些标记过得内存区域是可能进行回收的,然后在第二次标记如果发现这个内存已

2021-04-14 09:55:07 86

原创 HotSpot虚拟机对象探秘

本文章来自于阅读《深入理解java虚拟机》的个人理解。可能包含很多错误的理解。1.对象的创建对象的创建大体上可分为三步,第一步当java虚拟机遇到new指令时,先回去堆中进行内存分配,内存分配的方式会根据堆内存是否规整来分为指针碰撞和空闲列表这两种方式,而java堆是否规整会根据使用的垃圾收集器是否有空间压缩整理的能力而决定。第二步当分配过可用内存后会对对象进行初始化,把对象内的值初始化成数据类型所对应的“零值“。第三步就是将对象指针指向这个堆内存上分配的空间。2.对象的内存布局堆内存中布局可分为

2021-04-12 10:27:56 73

原创 JVM内存区域分析

java虚拟机总共分成。线程共享:方法区,堆,执行引擎,本地库接口非线程共享:虚拟机栈,本地方法栈,程序计数器。这上述几大类。在线程共享和非共享之外。运行时的数据区包含:方法区,堆,虚拟机栈,本地方法栈,程序计数器这几类。借用《深入理解java虚拟机》这本书中的图来描述一下如下:下面结合书中的解释以及自己的理解重新看下虚拟机中这几大块的作用。1.程序计数器程序计数器十一块较小得看内存空间,它是当前线程所执行的字节码的行号指示器,程序的分支,循环,跳转,异常处理等功能都依赖这个计数器。由此可以看

2021-04-09 13:54:22 79

原创 记录一次加密jar包破解反编译的过程。

最近私下搭建了一下冒险岛的私服来自娱自乐下,从网上获取了冒险岛的源码。然后搭建了服务在游戏的过程中发现了不少BUG,于是就想看下源码反编译后修改下bug。解压jar后,用反编译工具发现竟然不能反编译,然后有尝试了各种各样的反编译工具结果都失败了。然后打开了启动服务的bat脚本发现命令中有着这样的命令。一般加了这样的命令等于在加载class之前回去执行这个dll文件进行一系列操作,这个文件名也很直白-解密。那肯定这个jar包里的class就是被加密了。然后打开了class的16进制文件发现,class1

2020-11-30 10:41:24 4667 2

原创 理解JAVA内存模型(JMM)

JMM是一个抽象的概念,他并不是真实存在的东西。只是java为了消除各个平台和系统上堆内存访问差异而定义的一个模型。他主要控制了线程与线程之间的通信,线程与内存之间的交互。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。如图所示:下面介绍JMM几个比较重要的概念:1.对执行的重排序,JMM会在保证执行结果正确(单线程下)的前提下对指令进行重排序。但也正是因为重排序的从在,所以在多线程的情况下会发生许多在单线程情况下不会出现的问题。重排序会经历一下几个过程:2.happens-before

2020-11-05 14:53:20 95

原创 volatile关键字解析

学习volatile关键字首先要了解java内存模型。数据是如何在告诉缓存和内存中运作的。 在Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。那么Java内存模型规定了哪些东西呢,它定义了程序中变量的访问规则,往大一点说是定义了程序执行的次序。注意,为了获得较好的执行性能,Java内存模型并没有限制执行引擎使用处理器的寄存器或者高速缓存来提升指令执行速度,也

2020-11-02 10:25:15 86

空空如也

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

TA关注的人

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