![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础-JVM
文章平均质量分 80
changhenshui1990
这个作者很懒,什么都没留下…
展开
-
JDK、JRE、JVM之间的联系
我们都知道需要开发Java程序,首先得需要配置java的开发环境即 JDK。今天我们来看下JDK、JRE、JVM三者之间的关系。首先介绍下这三者的含义:JDK:Java Development Kit (Java 开发工具)JRE:Java Runtime Envirnment (Java 运行环境)JVM : Java Virtual Machine (Java转载 2017-04-10 10:45:36 · 764 阅读 · 0 评论 -
JVM系列之JVM体系(一)
一、前言 为什么要学习了解Java虚拟机 1.我们需要更加清楚的了解Java底层是如何运作的,有利于我们更深刻的学习好Java。 2.对我们调试错误提供很宝贵的经验。 3.这是合格的Java程序必须要了解的内容。 基于此,笔者打算出一个Java虚拟机的系列,加深自己对知识点的理解,同时也方便各位有需要的园友。二、Java虚拟机的定义 Java虚拟机(Java Virtual Machi...转载 2017-04-11 14:21:13 · 708 阅读 · 0 评论 -
JVM系列之垃圾回收(二)
一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要进行垃圾回收 对于虚拟机中线程私有的区域,如程序计数器、虚拟机栈、本地方法栈都不需要进行垃圾回收,因为它们是自动进行的,随着线程的消亡而消亡,不需要我们去回收,比如栈的栈帧结构,当进入一...转载 2017-04-11 15:28:19 · 579 阅读 · 0 评论 -
JVM系列之Class文件(三)
一、前言 随着我们学习的不断深入,我相信读者对class文件很感兴趣,class文件是用户编写程序与虚拟机之前的桥梁,程序通过编译形成class文件,class文件之后会载入虚拟机,被虚拟机执行,下面我么来一起揭开class文件的神秘面纱。二、什么是class文件 class文件是二进制文件,通常是以.class文件结尾的文件,它是以8位字节为基础单位的二进制流,各个数据项紧密排列在class...转载 2018-03-21 13:30:48 · 222 阅读 · 0 评论 -
JVM系列之类加载机制(四)
一、前言 前面分析了class文件具体含义,接着需要将class文件加载到虚拟机中,这个过程是怎样的呢,下面,我们来仔细分析。二、什么是类加载机制 把class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类加载机制。三、类加载总体流程图 说明:类的整个生命周期分为以上七个阶段,验证、准备、解析统称为连接阶段。关于加载流程笔者之前也...转载 2018-03-21 13:31:43 · 184 阅读 · 0 评论 -
JVM系列之执行引擎(五)
一、前言 在了解了类加载的相关信息后,有必要进行更深入的学习,了解执行引擎的细节,如字节码是如何被虚拟机执行从而完成指定功能的呢。下面,我们将进行深入的分析。二、栈帧 我们知道,在虚拟机中与执行方法最相关的是栈帧,程序的执行对应着栈帧的入栈和出栈,所以栈帧对于执行引擎而言,是很重要的基础。栈帧的基本结构之前已经有所介绍,这里只是再简单的过一遍。 栈帧主要包括了局部变量表、操作数栈、动态连接、...转载 2018-03-22 16:53:41 · 2602 阅读 · 0 评论 -
JVM系列之内存模型(六)
一、前言 经过前面的学习,我们终于进入了虚拟机最后一部分的学习,内存模型。理解内存模型对我们理解虚拟机、正确使用多线程编程提供很大帮助。下面开始正式学习。二、Java并发基础 在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步。 2.1 通信 通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程...转载 2018-03-22 16:53:53 · 174 阅读 · 0 评论