1. java三大版本比较

  1.1 java SE

      javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly) 全称:Java Platform Standard Edition  主要用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。例如,Java应用程序开发平台Eclipse。

  1.2 java EE

      javaEE 是java企业版的简称,其定位是服务器端应用 (目前应用最广泛的版本)全称:Java Platform Enterprise Edition 是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API.可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和web2.0应用程序。

  1.3 javaME

      javaME 是java微型版的简称,主要定位是移动产品和车载产品等(基本没有使用,大部分移动产品使用Android)全称:Java Platform Micro Edition Java ME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME包括灵活的用户界面、健壮的安全模式、许多内置的网络协议以及对于动态下载的连网和离线应用程序的丰富支持。基于Java ME规范的应用程序只需要编写一次,就可以用于许多设备,而且可以利用每个设备的本级功能。

  1.4 包含关系

      

2. JVM JRE 与 JDK 的关系

  2.1 JVM

      JVM 全称 Java  Virtual Machine 是java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。

      也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

      JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

  2.2 JRE

      JRE 全称 Java Runtime Environment 是java运行时环境,这里面包含了运行java程序所需要的所有类库,一台机器上只有安装了jre才可以运行java程序

      JRE 是包含 JVM的,并且还包含了一些运行java程序所需要的类库和资源文件等。

  2.3 JDK

      JDK 全称 Java Development Kit 是java开发工具包,是Sun Microsystems针对Java开发员的产品。JDK 中包含了很多关于java程序开发的工具,例如编译工具javac,文档生成工具javadoc等等等等。

      同理,JDK是包含JRE 和 JVM 的,并且在此基础上还包括了一些开发工具,调试工具,以及用于管理程序的管理工具等。

  2.4 关系图

 

3. 其他一些补充知识

  3.1  三大版本更名是在jdk5.0中   

      ①SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
      ②EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
      ③ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

  3.2 java实现跨平台的原理

      这里要从java的编译方式说起,java源代码编译之后并不是直接生成一个可执行文件(.exe),而是生成对应的java字节码文件(.class),这个字节码电脑的并不能运行,而是需要java虚拟机来再次进行解释,才能被cpu执行,也就是说,java程序并不是直接运行在cpu上的,而是运行在java虚拟机JVM上面的。

      对于不同的从操作系统,有不同的java虚拟机。虽然是不同的虚拟机,但是他们可以识别相同的字节码文件。这样,就达到了一次编译,到处运行的目的,也就是java跨平台的原理。

    

java-01 JAVA三大版本比较&JDK、JRE、JVM 的关系的更多相关文章

  1. 9.Java三大版本以及JDK,JRE,JVM简单介绍

    Write Once,Run Anywhere. JavaSE:标准版(桌面程序,控制台开发...),是Java的基础和核心. JavaME:嵌入式开发(手机,小家电...),现在基本不用已经过时. ...

  2. dos命令,jdk&jre&jvm的关系,classpath和path区别

    Day01_SHJavaTraing_4-2-2017 一.学习方法 1.独立思考 2.独立整理.总结知识点 3.整理Exception报错文档 4.莫钻牛角尖 5.敲代码,敲,猛敲,死里敲 6.写代 ...

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

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

  4. JDK,JRE,JVM,JMM关系与区别

    JVM: Java Virtual Machine, 将java文件编译成class文件并运行class文件的软件 JRE:Java  Runtime  Enviromental,包含了JVM和Jav ...

  5. JDK JRE JVM的关系

    JVM:Java Virtual Machine的缩写,即Java虚拟机 JRE:Java Runtime Environment的缩写,即Java运行环境 JDK:Java Development ...

  6. JDK,JRE,JVM三者关系

    已上图,如有疏漏错误请在下面评论区指出,感激不尽!

  7. Java的特性和优势以及不同版本的分类,jdk,jre,jvm的联系与区别,javadoc的生成

    Java 1.Java的特性和优势 Write Once,Run Anywhere 简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 2.Java的三大版本 JavaSE:标 ...

  8. Java初学者不得不知的概念,JDK,JRE,JVM的区别?(转)

    JVM(Java Virtual Machine Java虚拟机)可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令. ...

  9. java的概念了解(jdk,jre,jvm,javase,javaee,javame)

    jvm jvm:java virtual machine,俗称:java虚拟机,只认识xxx.class这类文件 jre jre:java runtime environment,俗称java运行环境 ...

  10. Java开发介绍之JDK JRE JVM 和 环境变量配置

    一.JDK>JRE>JVM JDK(Java Development Kit):Java开发工具包 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和 ...

随机推荐

  1. Django 组件content_type

    content type: django内置组件,这个组件帮忙做连表操作(混搭连表) 适用场景:适用于一张表与多张表同时做关联的时候.直接导入就可以使用了. 关联数据库所有的表:可以快速插入数据,并且 ...

  2. Thinkphp 查询条件 and 和 or同时使用即复合查询

            thinkphp 3.2快捷查询OR查询&分割表示AND查询讲解         快捷查询方式是一种多字段查询的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表 ...

  3. C++11新特性介绍 02

    阅读目录 1. 范围for语句 2. 尾置返回类型 3. =default 生成默认构造函数 4. 类对象成员的类内初始化 5. lambda表达式与bind函数 6. 智能指针share_ptr,u ...

  4. asp.net webapi 自托管插件式服务

    webapi问世已久,稀里糊涂的人哪它都当mvc来使,毕竟已mvc使用级别的经验就可以应对webapi. webapi和mvc在asp.net5时代合体了,这告诉我们,其实 它俩还是有区别的,要不现在 ...

  5. Django UrL 解析

    Django的路由系统 URLconf 本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行. 1.1 djan ...

  6. Sqoop导入关系数据库到Hive

    参考:segmentfault.com:Sqoop导入关系数据库到Hive Sqoop 是 apache 下用于 RDBMS 和 HDFS 互相导数据的工具.本文以 mysql 数据库为例,实现关系数 ...

  7. python爬虫----基本操作

    一.爬虫基本操作 有些网站和其他网站是有关系(链接),全球的网站就相当于一个蜘蛛网,我们放一只蜘蛛在上面爬,一定能够把网爬个遍.那么如果我们要爬取互联网上内容我们就相当于放一只蜘蛛在上面. 爬虫分为 ...

  8. sonar link 的安装与使用

    参考来源:https://jingyan.baidu.com/article/2a1383289bea98074a134ff6.html 工具/原料   版本要求Eclipse(4.2,3.8)以上, ...

  9. _kbhit() for linux

    传送门:http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html #include <stdio.h> #in ...

  10. Maven(二)了解Maven仓库

    转载自: http://blog.csdn.net/gebitan505/article/details/46233981 在使用 Maven 之前,我们必须要了解一下 Maven 到底是怎样管理 j ...