
JVM
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
JVM底层操作总结:反射、动态代理、lambda、注解等
反射:https://www.cnblogs.com/yougewe/p/10125073.html将Java文件保存到本地硬盘后,编译Java文件,生成.class文件,然后使用JVM将字节码文件加载到内存,字节码文件在内存(方法区)中生成一个Class类表示此Java对象使用反射的时候,首先获取到Class类,这样就可以得到class文件里的所有内容,包含属性、构造方法、普通方法;属...原创 2020-02-15 23:23:37 · 575 阅读 · 0 评论 -
JVM学习之一:Java内存区域与内存溢出异常
《深入理解Java虚拟机》1 Java内存区域与内存溢出异常1.1 运行时数据区域Java运行时,虚拟机内存存放的东西:1.1.1 程序计数器(Program Counter Register)作用可以看作是当前线程所执行字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成如果线程正在执行的是一个 Java 方法,计数器记录的是正在执行的...原创 2019-08-30 10:47:33 · 170 阅读 · 0 评论 -
JVM学习之二:垃圾收集(内存回收策略)与内存分配策略
《深入理解Java虚拟机》深入拆解Java虚拟机2 垃圾收集(内存回收策略)与内存分配策略程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由JIT编译器进行一些优化,但大体上可以认为是编译期可知的);因此这几个区域的内存分配和回收都...原创 2019-08-30 10:52:42 · 215 阅读 · 0 评论 -
JVM学习之三:虚拟机类加载机制
《深入理解Java虚拟机》3 虚拟机类加载机制3.1 概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的;这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性;Java里天生可以动态扩展的语言特性就是依...原创 2019-08-30 10:54:24 · 119 阅读 · 0 评论 -
JVM之问:JVM内部相关实现
深入拆解Java虚拟机1 为什么 Java 要在虚拟机里运行?1.Java 作为一门高级程序语言,它的语法非常复杂,抽象程度也很高。因此,直接在硬件上运行这种复杂的程序并不现实:C++的策略是直接编译成目标架构的机器码,Java的策略是编译成一个虚拟架构的机器码。这个虚拟架构可以有物理实现,也可以是软件实现,即JRE;所以,在运行 Java 程序之前,我们需要对其进行一番转换;提供了可移...原创 2019-08-30 10:58:00 · 252 阅读 · 0 评论