Java基础
PilerH
When it is obvious that goals cannot be reached, don't adjust the goals, adjust the action steps.
展开
-
5、JVM 调优 - Mothed Area
1、方法区结构示意图2、方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。细致理解如下:1)Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分开来。2)对于习惯在HotSpot虚拟机上...原创 2019-10-12 16:33:57 · 157 阅读 · 0 评论 -
4、JVM 调优 - 栈
1、虚拟机栈结构示意图:2、栈帧结构示意图:1、“堆和栈”中存放局部变量的栈(和存放对象的堆),但是不仅仅存放局部变量,存放局部变量的只是里面的变量表部分。2、栈针是方法执行产生的内存,每一个方法会创建一个栈帧,用于存储局部变量表、操作栈、动态链接、方法出口等信息。局部变量表存放了编译器可知基本数据类型(boolean、byte、char、short、int、f...原创 2019-10-12 16:31:28 · 162 阅读 · 0 评论 -
3、JVM 调优 - 堆
1、Java堆结构与配置参数(1)Java7堆内存结构图(2) Java8堆内存结构图2.2 堆内存调优简介(1)调优参数:(2)如何查看堆内存信息 public static void main(String[] args) { // 返回 Java 虚拟机试图使用的最大内存量。 long maxMemory = Run...原创 2019-10-12 16:28:18 · 126 阅读 · 0 评论 -
2、JVM 运行
1、方法区-Method Area线程共享,存储已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等等。(HotSpot虚拟机上开发部署人员更愿意成为“永久代”,Permanent Generation)。1.1、类型信息类型的全限定名 超类的全限定名 直接超接口的全限定名 类型标志(该类是类类型还是接口类型) 类的访问描述符(public、p...原创 2019-10-12 16:24:05 · 126 阅读 · 0 评论 -
1、JVM 基础
1)JVM运行过程我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?Java程序经过一次编译之后,将Java代码编译为字节码也就是.class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行。那么了解了这个基本原理后,一个普通的java程序它的执行流程到底是怎样的呢?例如我们写了一段这样的代...原创 2019-10-12 16:20:38 · 163 阅读 · 0 评论 -
Java类加载机制
注:本文主要参考自《深入理解java虚拟机(第二版)》在查看本文前,先要了解JVM内存结构,见 第一章 JVM内存结构1、类加载流程· 把描述类的数据从xxx.class文件加载到JVM内存· 对这些数据进行校验、准备、解析(这三个过程总称为"链接")· 对这些数据进行初始化,最终形成可被JVM直接使用的Class对象注意:· 类加载过程是在运行期完成的2、加载原创 2017-07-04 15:31:45 · 180 阅读 · 0 评论