首页 > 编程语言 >Java各个版本区别

Java各个版本区别

时间:2023-12-21 09:44:50浏览次数:29  
标签:JRE Java 版本 JDK 区别 JVM lib

1 Java

Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

Java有三个版本:

  • Java SE(Java Platform,Standard Edition)Java标准版,也称 J2SE,Java SE 是做电脑上运行的软件,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。
  • Java EE(Java Platform,Enterprise Edition)Java企业版,也称 J2EE,Java EE 是用来做网站的-(我们常见的JSP技术),
  • Java ME(Java Platform,Micro Edition)Java微型版,也称 J2ME,Java ME 是做手机软件的。

其实只要关注 Java SE 就行,这个是 Java 的标准版本JDK 是与 JavaSE 相对应的

2 JDK

  • JDK(Java Development Kit)是 Java 开发工具包,包含了Java编译器、运行环境、类库等,用于开发和运行Java程序
  • JRE(Java Runtime Environment)是 Java运行环境,包含了Java虚拟机和类库等,用于运行已编译的Java字节码文件
  • JVM(Java Virtual Machine)是 Java虚拟机,是一个能够执行Java字节码文件的虚拟进程,负责将字节码解释成特定平台的机器指令
  • 三者之间的联系是:JDK包含了JRE,JRE包含了JVM
  • 三者之间的区别是:JDK可以编译和运行Java程序,JRE只能运行已编译的Java程序,JVM只能执行特定格式的字节码文件。
  • JDK是提供给程序员使用的。JRE是提供给想运行 Java 程序的用户使用的。
  • 如果你需要编写Java程序,需要安装JDK。如果你需要运行Java程序,只需要安装JRE就可以了。
  • 只有JVM还不能完成class的执行,因为在解释class的时候,JVM需要调用解释所需要的类库lib,而JRE包含lib类库。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是JVM,lib中则是JVm工作所需要的类库,而JVM和 lib和起来就称为JRE。 得到公式:JVM(bin) + lib = JRE

3 Java SE 和 JDK 版本的关系

我们无论说Java版本还是JDK版本都是对于JavaSE这个标准版本而言,最终的则是要知道,每个Java版本其实是对应一个具体的JDK版本,也就是说Java是语言,JDK是Java这门语言的开发工具包,所以Java的版本可以说是抽象上的宏观上的一个概念,有其自己的版本名称,对应的具体的实实在在存在的则是JDK了。

一个Java版本对应着一个JDK版本

 总结一下就是:
(1)1.0-1.5 Java 库叫 J2SE
(2)1.5 以后就正式命名 Java 加整数了;
(3)Java 6-9 实际就是 JDK 1.6-1.9
(4)从Java 10 开始 JDK 使用一样的整数做版本号了。

总结:Java8、JDK8、JDK1.8 其实是同一个东西。

原文链接:https://blog.csdn.net/mahoon411/article/details/124857836

       https://blog.csdn.net/weixin_35773751/article/details/128591496

标签:JRE,Java,版本,JDK,区别,JVM,lib
From: https://www.cnblogs.com/daytoy105/p/17917099.html

相关文章

  • CAP 8.0 版本发布通告 - CAP 7岁生日快乐!
    前言今天,我们很高兴宣布CAP发布8.0版本正式版,从2016年12月14日CAP立项到2023年12月14日发布8.0版本刚好满7年,祝CAP7岁生日快乐,巧的是这一天也是我生日,真是意想不到啊!那就做一个Overview吧,在这7年间,我们一共发布了61个版本,在Github上有6.3K的Star......
  • harbor1.1.2无损升级到最新版本harbor2.5.0
    目标将老版本的harbor1.1.2无损升级到最新版本harbor2.5.0,后面有条件可以随版本更新基础环境信息hostIP:192.168.56.35httpdocker-compose路径:/usr/src/harbordata路径:/data升级步骤下面是升级版本需要的安装包,同样也意味着版本升级步骤harbor-offline-installer......
  • 【ECMAScript】提高JavaScript编程效率:掌握ES8的新特性和语法
    前言ECMAScript8,也称为ES8或ES2017,是JavaScript语言的最新标准。它在ES6的基础上进一步扩展了JavaScript的功能,为开发者提供了更多的工具和语法来编写高效、可维护的代码。本篇博客将详细介绍ES8的各种新特性及其用法,帮助读者更好地了解和掌握这个强大的语言标准。正文内容1.......
  • 使用JavaScript实现基于图片地址的图片下载功能
    前言在Web开发中,有时我们需要让用户能够通过点击按钮或链接来下载特定的图片。使用JavaScript,我们可以轻松地实现这一功能,让用户能够方便地下载网页上显示的图片。本文将介绍如何使用JavaScript根据图片地址下载图片,并提供详细的代码示例。为什么需要图片下载功能?在许多网站和We......
  • java中的单元测试
    通过单元测试,能更好的控制代码质量,提升代码质量,及时准确地定位bug;在java中,JUit是最常用的单元测试工具,我们简单介绍一下他的使用:测试类的基础结构:importorg.junit.Test;importstaticorg.junit.Assert.*;publicclassMyTest{@TestpublicvoidtestAddition(){......
  • Java中内存四区
    这里简要说明这四个区域通常用于存储的变量类型:栈区(Stack):存放局部变量、方法参数、返回地址等。变量的生命周期与其所在的方法(函数)的调用周期一致。堆区(Heap):主要用于动态分配内存,存放由new关键字创建的对象和数组。变量的生命周期不受方法调用的限制,需要手动释放内......
  • Java序列化和反序列化 Serializable BeanUtils.copyProperties赋值属性方法
    Java序列化和反序列化SerializableBeanUtils.copyProperties赋值属性方法packagecom.example.core.mydemo.java;importcom.example.core.mydemo.json2.GsonUtils;importorg.springframework.beans.BeanUtils;importjava.io.*;/***Java序列化和反序列化Serializ......
  • Java登陆第二十六天——初识Servlet
    静态资源和动态资源静态资源程序运行之前就存在于服务器之中的资源。例如html、css、js、img、音频文件和视频文件等。动态资源不是指动画,运动的效果。程序运行之前无法确定其数据,通过代码动态的生成数据。程序运行时,通过代码生成的资源。例如Servlet、Th......
  • java,ArrayList类
    ArrayList是一个数组列表,可以将多个对象放入数组中,是一个长度可变的集合,提供了增删改查的功能。publicclassTest2{publicstaticvoidmain(String[]args){Catc1=newCat("小黑","黑色",2.2);Catc2=newCat("小白","白色",2.3);Catc......
  • Java 并发编程在生产应用场景及实战
    背景介绍为什么需要学习Java并发?从提升性能角度来说提升了对CPU的使用效率:目前生产的服务器大多数都是多核,标配的机器都是8C/16G。操作系统会将不同的线程分配给不同的核心处理,理论上,有多少核心就有多少个线程并行执行。如果没有并发编程,CPU的利用率将极大的浪费,假设当......