Java、JVM、JRE、JDK等组件的理解
- .java ⇒(javac) .classs ⇒ (类加载器)转换后的 .class 文件 ⇒ (解释器)可执行代码 ⇒ (JIT 编译器)⇒ 机器码
0. 虚拟机
- Java 有它的虚拟机:Java 虚拟机(JVM);
- 在多个平台上实现统一语言,屏蔽和透明的是平台细节;
- .net 也有它自己的虚拟机;
- 可在单一平台上实现多种语言,屏蔽和透明的是不同语言的语言细节;
- 所谓虚拟机 virtual machine,也即是对 machine(硬件)的软件抽象,也即是一种抽象的计算机;
- 虚拟机的定义是什么呢,也即如何构成虚拟机,基本概念都有什么?
- 指令集:
- 内存体系:
1. JVM
- Java 虚拟机(JVM)负责把类文件(.class)形式(人类不可读)的代码链接起来并执行;
- JVM 不能直接解释 Java 语言的源文件(.java 文件),需要首先把源文件转化为类文件;
JVM 是一种虚拟机(virtual machine),除了满足一个虚拟机的基本要求之外,JVM 还能够使安装 JVM 的计算机运行 Java 程序。JVM 在不同的上下文环境下有如下三种不同的含义:
- specification:规范,格式化地定义了 JVM 的实现所需的要求,JVM 只有一种规范,这就保证了所有的 JVM 实现间的互操作性;
- implementation:实现
- 满足 JVM 规范的一组计算机程序;
- instance:实例
- An instance of a JVM is an implementation running in a process that executes a computer program compiled into Java bytecode.
2. JRE
Java Runtime Environment,Java 运行时环境。
JRE 包含了运行 Java 程序所需的软件包。
3. JDK
Java Development Kit 是 JRE 的超集,且包含了 javac 编译器等供 Java 程序员使用的常用工具。
Java、JVM、JRE、JDK等组件的理解的更多相关文章
- java jvm jre jdk三者的关系
jvm:java虚拟机器(跨平台的关键) jre:java运行环境 jdk:java 开发工具包(kit) jdk>jre>jvm 环境变量配置 https://www.cnblogs.c ...
- java JVM JRE JDK三者之间的关系
JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器. JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台. JVM是JRE的一部分,Java虚拟机的主要工作是 ...
- JVM, JRE,JDK 的区别
在网上看到一篇讲解jvm,jre,jdk区别的文章,感觉不错,就收藏到自己的博客了. 1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实 ...
- 辨析ADK&JVM&JRE&JDK&ADT
一.SDK 英文全称:Software Development Kit 中文译名:软件开发工具包 详解: 由第三方服务商提供的实现软件产品某项功能的工具包. 为了扩展软件功能或其它方面而设计出来给开发 ...
- JVM JRE JDK三者的区别和联系
一. 详细介绍1.JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类 ...
- JVM,JRE,JDK
JVM (Java Virtual Machine) : Java虚拟机,运行所有Java程序的假象计算机,是Java程序的运行环境,跨平台性由JVM实现. JRE (Java Runtime Env ...
- 一图看懂JVM,JRE,JDK的关系
- Java的一些常见问题,JRE,JDK,JVM,包等概念理解
Java常见错误: 文件名字应该与文件中public类的名字相同 public static void main(String[] args); 如何定位错误和解决错误. JVM,JRE,JDK解释和 ...
- JAVA中JDK开发环搭的搭建,jvm jre
1.JDK的下载与安装: www.oracle.com 安装需要注意的是:不能把jdk安装到有空格或中文的文件夹中,建议大家在某个目录下创建一个JavaWeb的文件夹,然后把所学的java所有内容(后 ...
随机推荐
- (转)ORA-01940: cannot drop a user that is currently connected 问题解析
删除数据库用户的时候经常会遇到这样的错误: ORA: cannot drop a user that is currently connected 原因是有程序在连接我们需要删除的用户,我们删除用户之 ...
- Windows下合并tar分卷
如有例如以下几个tar分卷:logs.tar.gza1.logs.tar.gza2.logs.tar.gza3.在Windows下怎样进行合并呢? 按"win+r"键在弹出的输入框 ...
- [Nuxt] Navigate with nuxt-link and Customize isClient Behavior in Nuxt and Vue.js
Because Nuxt renders pages on the server, you should use the nuxt-link components to navigate betwee ...
- bootstrap+fileinput插件实现可预览上传照片功能
实际项目中运用: 功能:实现上传图片,更改上传图片,移除图片的功能 <!DOCTYPE html> <html> <head> <meta charset=& ...
- C++利用SOAP开发WebService
// soapconsole.cpp : Defines the entry point for the console application.// #include "stdafx.h& ...
- 【rlz03】十六进制转十进制
Time Limit: 3 second Memory Limit: 2 MB 问题描述 输入一个十六进制数,编程转换为十进制数. 整数部分不会超过65535,十六进制的小数部分不会超过2位. Sam ...
- 【26.83%】【Codeforces Round #380C】Road to Cinema
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- [PReact] Use Link State to Automatically Handle State Changes
Storing and updating values inside a component’s local state (known as controlled components) is suc ...
- [Angular] Alternative Themes - Learn the Host-Context Selector
To add alernative theme, we can use :host-context() selector from Angular. //au-fa-input-red-theme.c ...
- Effective C++ 条款28
避免返回handles指向对象内部成分 本节作者讲述的知识核心是对于一个类来说,应该避免类返回自己内部的私有数据. 例如以下: class Point{ public: Point(int x, in ...