JVM
不知为MUJI
站在树上的鸟从不害怕树枝断裂,因为它相信的不是树,而是翅膀。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【并发编程】synchronized实现
1.功能synchronized是用与线程同步,是一个重量级互斥锁,可以保证方法或者代码块在运行时,同一时刻只有一个线程可以进入到该对象的临界区(同一个对象的所有synchronized保卫的代码块)。synchronized是可重入的,即同一个线程,可以多次进入同个对象的多个synchronized块。2.锁对象synchronized修饰位置 锁对象 样例 实例...原创 2020-03-10 19:59:19 · 363 阅读 · 0 评论 -
【JVM】内存管理
2.内存管理JVM规范中指定运行时数据去分为以下几块,方法区、堆、程序计数器、虚拟机栈、本地方法栈。其中方法区、堆是所有线程共享的,而程序计数器、虚拟机栈、本地方法栈是线程私有的。 2.1 内存分配线程共享? jvm规范 hotspot实现 存放内容 可能异常 hotspot选项控制 共享 方法区 永久代 存放加载的...原创 2020-01-21 11:38:14 · 392 阅读 · 0 评论 -
【JVM】Java虚拟机
0.应用架构0.1 JVM VS JRE VS JDK关系0.2 JVM架构根据JVM规范,业界已有很多实现,其中最常用的是HotSpot虚拟机,1.类加载类加载机制:虚拟机把Class文件(字节码)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是虚拟机的。2.内存管理JVM运行时用到的内存线程共享维度...原创 2019-12-27 11:08:36 · 195 阅读 · 0 评论 -
【Java】java命令使用
1.Java命令启动一个Java应用,Launches a Java application,具体可以用man java查看使用方法。java [options] classname [args]java [options] -jar filename [args]options是传递给VM的参数,args是传递给java main方法的参数1.1 选项options1....原创 2019-12-27 10:23:03 · 573 阅读 · 0 评论 -
【JVM】类加载
1.类加载类加载机制:虚拟机把Class文件(字节码)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是虚拟机的。1.1 when触发场景前提条件:类还没有加载的时候(1) 主类(包含main(),启动入口)主类先初始化 (2) 父类递归,先触发父类的初始化,如主类加载过程中触发父类Object类的加载 (3) new、gets...原创 2019-12-26 12:50:39 · 270 阅读 · 0 评论 -
【BugFix】项目启动java.lang.OutOfMemoryError: PermGen space 永久代超限
1.现象springboot项目 本地启动报内存OutOfMemoryError,启动失败2.原因项目大、依赖多,加载的类很多,占用永久代过大,本地的虚拟机 内存参数配置过低,导致内存溢出3.解决方案修改运行VM arguments框中填入:-Xms1024m -Xmx1024m -XX:MaxPermSize=256m...原创 2019-07-11 11:59:55 · 210 阅读 · 0 评论 -
【JVM】class文件解析
1.文件排列二进制流文件字段 值 起始 size 注释 struct ClassFile classFile 0h 472h JDK 1.8 u4 magic CAFEBABEh 0h 4h 4字节无符号数 固定值,标识是class文件 u2 minor_version 0 4h ...原创 2019-09-19 09:38:22 · 170 阅读 · 0 评论
分享