自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jvm启动过程(类加载过程)

jvm类加载过程包括5个过程,分别为加载,验证,准备,解析,初始化。1,加载①:通过一个类的全限定名来获取定义此类的二进制字节流。②:将这个字节流代表的静态存储结构转化为方法区的运行时数据结构。③:在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。2,验证:确保class文件的字节流中包含的信息符合虚拟机的要求,并且不会危害虚...

2019-05-24 17:38:19 437

原创 jvm运行时数据区分布

1,程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程执行的字节码的行号指示器,通过改变指示器的值来选取下一条执行的字节码指令,帮助程序完成执行过程中存在的分支,循环,跳转,异常,线程恢复等功能。担任线程助跑器的职责,所以为线程私有内存区,同时是运行时数据区中唯一不会出现OutOfMemoryError的区域。2,虚拟机栈虚拟机栈描述的是Java方法(也就是字节码)执行的内存...

2019-05-24 15:50:04 111

原创 Java new一个对象的过程

1,首先到常量池中找类的带路径全名,然后检查对应的字节码是否已被加载,解析,验证,初始化,如果没有先执行类加载过程(class.forname())。2,类加载过程完成后,虚拟机会为对象分配内存。分配内存有两种方式,根据使用的垃圾收集器的不同使用不同的分配机制。(1)指针碰撞,当虚拟机使用复制算法或标记整理算法实现的垃圾收集器时,内存区域都是规整的,这时候使用指针碰撞分配内存,用过的内存放...

2019-05-15 17:19:29 9764

原创 jvm垃圾收集算法整理

1,标记清除算法标记可回收的内存,然后清除。2,复制算法。使用标记清除算法的过程中,如果回收的内存很少这个算法还是可以的,但是如果大量的内存都是需要回收的,那这个就比较笨重,因为我们只需要保留少量不被回收的内存就可以。这就衍生出了复制算法。3,标记整理算法使用标记清除算法的过程中,会产生大量内存碎片,导致分配大对象时频繁出现内存不足引发gc的问题,针对这个问题衍生出标记整理算法...

2019-05-15 16:12:14 118

原创 jvm垃圾收集器及启动参数使用说明

垃圾收集器表示内存回收的具体实现,区别于垃圾收集算法点击查看(相当于方法论),收集器基于收集算法实现。同时为了降低回收内存过程中对用户线程的影响的时间,衍生出不同的收集器。一般情况下年轻代需要回收的内存较多,存活对象较少,采用复制算法,年老代存活对象较多,需要回收的内存较少,采用标记清除/整理算法。1.serial收集器:串行收集器,采用单线程回收内存,同时暂停所有用户线程直到收集结束。...

2019-05-15 15:17:59 176

空空如也

空空如也

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

TA关注的人

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