java虚拟机
文章平均质量分 83
戴夫爱吃胡萝卜
这个作者很懒,什么都没留下…
展开
-
JVM理解——类加载机制
一、什么是类加载机制把描述类的数据从Class文件加载到内存,并对数据进行验证,准备,解析和初始化,最终形成可以被虚拟机使用的java类型。二、类加载过程(1)加载通过一个全类名获取定义此类的二进制字节流将字节流代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class文件(2)验证确保Class文件符合规范,确保不会危害虚拟机自身安全。文件格式验证元数据验证字节码验证符号引用验证(3)准备将类中的静态变量分配内存,设置初始原创 2021-04-15 15:11:57 · 186 阅读 · 0 评论 -
JVM理解——GC垃圾收集
目录一、判定对象是否存活算法(1)引用计数算法(2)可达性分析二、引用类型三、常见垃圾回收算法(1)标记-复制算法(2)标记-清除算法(3)标记-整理算法(4)分代收集算法四、常见垃圾收集器(1)Serial(2)Serial Old(3)ParNew(4)Parallel Scavenge(5)Parallel Old(6)CMS(7)G1五、GC收集五、内存分配策略一、判定对象是否存活算法(1)引用计数算法在对象中添加一个引用计数器,每有一个引用,计数器就就+1;引用失效,计数器就-1。当计数器为原创 2021-04-12 11:28:31 · 212 阅读 · 0 评论 -
JVM理解——String
一、String的基本特性String:字符串,使用“”引起来表示(一种为字面量方式,一种为new)字面量创建的存储在字符串常量池中String声明为final,不可被继承实现了Serializable接口:表示支持序列化;实现了Comparable接口:表示可以比较大小String在jdk8及以前使用 final char[] value 存储字符串数据;jdk9改为 byte[] +coder原因:char占用两个字节,而大部分字符(ISO-88559-1/Latin-1)只占用一个字节,原创 2020-06-23 21:09:35 · 202 阅读 · 0 评论 -
JVM理解——内存区域
一、概述线程私有所有线程共享二、运行时数据区(1)程序计数器程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器,记录正在执行的虚拟机字节码指令的地址。线程私有(每个线程都需要一个独立的程序计数器,且互不影响)问题一:为什么要使用程序计数器记录当前线程的执行地址?答:因为cpu需要不停切换执行各个线程,这样切换回来以后就知道该执行什么指令(2)Java虚拟机栈java虚拟机栈(JVM Stack):每个线程创建时都会创建建原创 2020-06-21 21:07:48 · 191 阅读 · 0 评论