Java虚拟机--JVM

~JVM:java虚拟机简称JVM是运行所有java程序的假想计算机,是java程序的运行环境,是java最具有吸引力的特性之一,我们编写的java代码,都运行在JVM之上

~跨平台:任何软件的运行都必须要运行在操作系统之上,而我们用java编写的软件可以运行在任何操作系统上,这个特性成为java语言的跨平台特性,该特性是由JVM实现的,我们编写的程序运行在JVM之上,而JVM运行在操作系统上

java的虚拟机本身不具备跨平台功能的,每个操作系统下都有=不同版本的虚拟机

JRE是啥
先说JRE,在我们装JDK的时候,经常会发现即安装了JDK也安装了JRE,也不知道他们有什么区别。

JRE(Java Runtime Environment)是JAVA运行时环境,它是运行已编译Java程序所需的所有内容的集合,包括Java虚拟机(JVM),Java核心类库和一些基础的构件。

有些人认为如果是运行,那JVM不就够了吗,其实还不够,因为在解释class文件时,JVM需要调用解释所需要的类库 lib。jre的安装目录下,里面有两个文件夹bin和lib,笼统的分析下,这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

jre里有运行.class的java.exe文件,至于虚拟机则是jre安装目录/bin/server目录下的jvm.dll文件

但是,它不能用于创建新程序。它只包括了运行的能力,不具备开发的能力,它无法将java文件编译成.class字节码文件,但是它可以直接跑.class字节码文件,你在其他电脑上编译好java程序,拿到仅有JRE环境的电脑也可以正常使用

JDK是啥
JDK(Java Development Kit)是Java的开发工具包,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。通过这里,我们可以明白三个J的包括关系了:JDK》JRE》JVM,所以我们在安装JDK时,通常不需要考虑JRE,JVM之类的,只要你安装好了JDK,其他两个就都有了。

简单列举一下JDK包括的一些开发工具:

javac – 编译器,将源程序转成字节码。

jar – 打包工具,将相关的类文件打包成一个文件。

javadoc – 文档生成器,从源码注释中提取文档。

jdb – debugger,查错工具。

java – 运行编译后的java程序(.class后缀的)。

appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

Jconsole: Java进行系统调试和监控的工具。

有时候还会有人提到SDK,SDK(Software Development Kit )是指软件开发包,它不仅限于JAVA,很多软件也有自己的SDK,更像一个统称,是专门给第三方开发者提供的软件开发工具集合。

所以SDK实际上和JDK没啥直接联系,SDK比较抽象,JDK则是具体指Java开发工具包,它们两都不是一个次元的,硬要说的话,JDK可以被描述成Java开发的SDK

JAVA语言的跨平台性和JDK,JRE与JVM的更多相关文章

  1. Java语言的跨平台性

    2.1 Java虚拟机 -- JVM JVM:Java虚拟机,简称JVM,是运行所有java程序的假想计算机,是java程序的运行环境,是java最具吸引力的特性之一,我们编写的java代码都运行在J ...

  2. 1、Java语言概述与开发环境——JDK JRE JVM理解

    一.理解概念: 1.JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含Java的开发工具,也包括JRE,所以安装了JDK,就不用单独 ...

  3. Difference between JDK, JRE and JVM

    With Java programming language, the three terms i.e. JDK, JRE and JVM will always be there to unders ...

  4. Java基础知识 ——JDK,JRE和JVM

    1.开发简单的Java程序过程: 名词解释: JDK:JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行 ...

  5. java的特点跨平台原理以及JDK的安装

    终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史 机器语言--->汇编语言--->--->高级语言(面向过程的语言和面向对象的语言) 机器语言 每一个计算机 ...

  6. java学习之Java中JDK,JRE和JVM之间的关系(转载)

    最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的 ...

  7. Java中JDK,JRE和JVM之间的关系

    初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...

  8. java什么是跨平台性?原理是什么?

    所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行. 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行 ...

  9. Java中JDK,JRE和JVM之间的关系-(转载)

    初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...

随机推荐

  1. Kafka生成消息时的3种分区策略

    摘要:KafkaProducer在发送消息的时候,需要指定发送到哪个分区, 那么这个分区策略都有哪些呢? 本文分享自华为云社区<Kafka生产者3中分区分配策略>,作者:石臻臻的杂货铺. ...

  2. python学习-Day6

    目录 学习内容详述 上期 '猜年龄'练习详解: while循环补充 while + else 死循环与while的嵌套 while嵌套 for循环 range关键字 range用法 什么是爬虫??? ...

  3. 抽象类 & 接口

    抽象类 模板设计模式 把每个类中类似的job 方法"提炼"出来, 成为一个抽象函数(同时也有一个抽象类) 然后把另外calcuateTime这个函数内容,"提炼" ...

  4. react实战系列 —— 我的仪表盘(bizcharts、antd、moment)

    其他章节请看: react实战 系列 My Dashboard 上一篇我们在 spug 项目中模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划") ...

  5. Linux-交互式转化批处理工具expect

    expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式 操作的场景,借助 expect 处理交互的命令,可以将交互过程如: ...

  6. [笔记] 期望概率DP

    线性高斯消元 模型概述 转移不是 DAG 的期望 DP. 成环的转移有特殊性质,如:只总父亲/根/儿子转移,只从左右转移-- 处理方式 以只从父亲和儿子转移的期望 DP 为例: \[f(x)=p\cd ...

  7. Linux 查询 OS、CPU、内存、硬盘信息

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 一.前言 当我们接手了一台或者几台服务器的时候,首先我们 ...

  8. 没想到吧!这个可可爱爱的游戏居然是用 ECharts 实现的!

    摘要:echarts 是一个很强大的图表库,除了我们常见的图表功能,还可以自定义图形,这个功能让我们可以很简单地在画布上绘制一些非常规的图形,基于此,我们来玩一些花哨的:做一个 Flappy Bird ...

  9. 安装Zabbix到CentOS(YUM)

    运行环境 系统版本:CentOS 7 软件版本:Zabbix-4.2.1 硬件要求:无 安装过程 1.安装YUM-Zabbix存储库 [root@localhost ~]# rpm -Uvh http ...

  10. 第24章 Java 数据类型转换

    每日一句 井底点灯深烛伊,共郎长行莫围棋. 每日一句 What we call "failure" is not falling down, but the staying dow ...