JVM 介绍
JVM 介绍:
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
java 源代码编译过程

java 基本数据类型
其它数据类型
JVM虚拟机内存结构
JVM虚拟机将其内存分为程序计数器、虚拟机栈、本地方法栈、java堆、方法区。
程序计数器:是一块私有的内存空间,比较小。主要记录下一条要运行的命令。
虚拟机栈:也是线程私有的内存空间,和java线程同一时间创建,主要用来保存局部变量、部分结果、并参与方法的调用和返回。(虚拟机栈运行时使用一种叫“栈帧”的数据结构保存上下文数据。)
本地方法栈:虚拟机栈用于管理java函数的调用,本地方法栈用于管理本地方法的调用(用C实现的方法)
java堆:所有的对象、数组都是在堆中分配空间。
堆分为:新生代、老年代。
新生代:存放刚刚产生的对象和年轻对象。新生代分为:e'den(对象刚创建时)、survivor space()、1(至少被GC一次)。
方法区(永久区):被JVM中的所有线程共享(独立于java堆的内存空间)。主要保存的是类的元数据(类的类型信息、常量池、域信息、方法信息:存放常量和类的定义信息)。GC回收时,只回收永久区中常量池的回收(未被引用的常量),再就是对类元数据的回收。

JVM百度百科地址:https://baike.baidu.com/item/JVM/2902369?fr=aladdin
JVM 介绍的更多相关文章
- JVM介绍&自动内存管理机制
1.介绍JVM(Java Virtual Machine,Java虚拟机) JVM是Java Virtual Machine的缩写,通常成为java虚拟机,作为Java可以进行一次编写,到处执行(Wr ...
- Java虚拟机------JVM介绍
Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目: Java的平台无关性 Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目[stealth ...
- JVM介绍(二)
1 JVM简介 JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibe ...
- JVM介绍(一)
JVM是运行在操作系统之上的,它与硬件没有直接的交互 类装载器ClassLoader 负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的 ...
- 深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理
微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔 ...
- Java学习 1.1——(JVM介绍)Java为什么能够跨平台?
首先介绍一下Java的各个层级,先放一张图: 硬件,操作系统和操作系统接口:这三级不说大家都知道,操作系统有很多种,比如Windows,Linux.Windows又分为win7,win10,win x ...
- 【译】GraalVM—下一代JVM介绍
原标题:GraalVM – an introduction to the next level JVM 随着Red Hat宣布Quarkus作为- 为GraalVM和HotSpot量身定制的下一代Ku ...
- 【转】JVM介绍
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...
- JVM介绍
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...
随机推荐
- oracle查询表指定字段类型
查询表某字段类型,如下: SELECT data_type FROM all_tab_cols WHERE table_name = UPPER('SRIS_P_BaseInfo') and colu ...
- Python自学笔记(九)
#类 #类的创建 :class类名 + 冒号,后面语句要缩进 #类的属性创建:通过赋值语句(即定义“是怎样的”) #实例方法的创建:def + 方法名(self) #方法具体的执行过程,即定义“能做什 ...
- thymeleaf动态拼接class
场景:站内消息,一些已读的要区别与未读的. <table class="layui-table"> <thead> <tr> <th la ...
- shutter 安装和设置快捷键
1. 打开系统设置 2. 打开 Keyboard 键盘设置 3. 添加成功的状态 4. 单击右侧 Disabled,然后快速按下 Ctrl+Alt+A 如下图 5. Ctrl+Alt+A 测试OK. ...
- linux 安装网易云音乐
1.首先去官网下载最新的网易云 网易云音乐曾经推出官方Linux版本,提供的下载安装包有:deepin15(32位):http://s1.music.126.net/download/pc/net . ...
- 第九章 JSP标签——《跟我学Shiro》
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2026398 博客分类: 跟我学Shiro 跟我学Shiro 目录贴:跟我学Shiro目录贴 ...
- iOS-UIWebView去掉滚动条和黑色背景即拖拽后的上下阴影
iOS UIWebView去掉滚动条和黑色背景即拖拽后的上下阴影 隐藏滚动条和上下滚动时出边界的后面的黑色的背景 webView.backgroundColor=[UIColor clearColor ...
- 【c# 学习笔记】所有类的父类:System.object
在c#中,所有的类都派生自System.Object类.如果定义的类,没有直达任何基类,编译器就会自动把Object类当作它的基类.和其他类 一样,System.Object类也定义了一组共有的成员, ...
- CentOS 7 安装wordpress
1.安装php 要安装php 7,必须使用下面的命令在Centos7系统上安装并启用epel和remi存储库. 输入一下代码, yum install http://rpms.remirepo.net ...
- error PRJ0003 : 生成“rc.exe”时出错
完美解决 visual studio 2008运行时 error PRJ0003 : 生成“rc.exe”时出错 步骤如下 : 1.运行vs2008安装程序,点击安装或删除程序.在“选择要安装的功能” ...