JVM
Zyd_code
这个作者很懒,什么都没留下…
展开
-
JVM学习(六) JVM类加载
JVM学习(六) JVM类加载机制前言侵删,记录学习笔记。类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。图 1 类的生命周期加载,验证,准备,初始化和卸载这五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定。有且只有5种必须立即对类进行初始化的场景遇到new、getstatic、putst原创 2020-06-18 15:44:16 · 293 阅读 · 0 评论 -
JVM学习(五)垃圾收集器
JVM学习(五)垃圾收集器前言侵删,记录自学时的笔记如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现图 1 JDK1.7 HotSpot虚拟机的垃圾收集器图1展示了新生代和老年代的垃圾收集器,可以看到不同收集器之间存在连线,被线相连的垃圾收集器可以搭配使用垃圾收集器Serial(连续)垃圾收集器(单线程、复制算法)最基础的收集器,使用复制算法。在JDK1.3.1之前是虚拟机新生代垃圾收集器的唯一选择。这是一个单线程的收集器,它在进行垃圾收集时,必须暂停其他所有的工原创 2020-06-13 19:53:08 · 150 阅读 · 0 评论 -
JVM学习(四)强引用、软引用、弱引用、虚引用
JVM学习(四)强引用、软引用、弱引用、虚引用前言侵删,记录自己学习时整理的笔记java在变量上有基本类型和引用类型之分,引用类型指的是它的值是指向内存空间的引用,所指向的内存保存着变量所表示的一个值或一组值。java在JDK1.2之后对引用的概念进行了扩充,将引用分为:强引用、软引用、弱引用、虚引用,其强度依次递减。强引用把一个对象赋给一个引用变量,这个引用变量就是一个强引用。Person person=new Person("小明");Java中默认声明的就是强引用当一个对象被强引原创 2020-06-11 20:57:42 · 193 阅读 · 0 评论 -
JVM学习(三)垃圾回收
JVM学习(三)垃圾回收前言侵删,记录自己学习时看到的一些片段GC(垃圾回收)通过一系列措施释放垃圾占用的内存空间,防止内存泄漏垃圾判断算法引用计数算法这是一种实现简单,判定效率高的算法。实现方法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器+1,当引用失效时,计数器-1。当对象的计数器为0,此时判定此对象不可能再被使用。算法缺陷无法解决循环引用问题。当对象a和对象b相互引用对方,并且两对象再无任何引用时,引用计数算法无法通知GC系统回收对象a和对象b。可达性分析为原创 2020-06-08 22:46:23 · 250 阅读 · 0 评论 -
JVM学习(二)Java堆
JVM学习(二)Java堆前言侵删,记录自己学习JVM时看书或查找资料看到的要点JAVA堆为对象创建分配内存的两种方式 假设Java堆中内存是绝对规整的,所有用过的内 存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配 内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离,这种分配方式称 为“指针碰撞”(Bump the Pointer)。如果Java堆中的内存并不是规整的,已使用的内存和空 闲的内存相互交错,那就没有办法简单地进行指针碰撞了,虚拟机就原创 2020-06-06 21:30:49 · 181 阅读 · 0 评论 -
JVM学习(一)JVM基本结构
JVM学习(一)JVM基础前言侵删,记录一下自己学习jvm的情况,以及看书看到的关键段落。什么是JVMJVM(Java虚拟机)是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java编译而成。立足于JVM,可以产生各种各样的跨平台语言。除了语言特性各不相同外,它们可以共享Java虚拟机带来的跨平台性,优秀的垃圾回收器,以及可靠的即时编译器。JVM的基本结构类加载子系统负责从文件系统或网络中加载Class信息,加载的类信息存放于方法区的内存空间。原创 2020-06-05 20:19:48 · 175 阅读 · 0 评论