jdk11和jdk1.8区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk11和jdk1.8区别相关的知识,希望对你有一定的参考价值。
jdk11少了jre的部分,而jdk1.8包含jre部分。是精简版与完整版的区别。 参考技术A 在JDK1.7的新特性方面主要有bai下面几方面的增强:du1.jdk7语法上
1.1二进制变zhi量的表示,支持将整数dao类型用二进制来表示,用0b开头。
1.2 Switch语句支持string类型
1.3 Try-with-resource语句
注意:实现java.lang.AutoCloseable接口的资源都可以放到try中,跟final里面的关闭资源类似; 按照声明逆序关闭资源 ;Try块抛出的异常通过Throwable.getSuppressed获取
1.4 Catch多个异常 说明:Catch异常类型为final; 生成Bytecode 会比多个catch小; Rethrow时保持异常类型
1.5 数字类型的下划线表示 更友好的表示方式,不过要注意下划线添加的一些标准
1.6 泛型实例的创建可以通过类型推断来简化 可以去掉后面new部分的泛型类型,只用<>就可以了
1.7在可变参数方法中传递非具体化参数,改进编译警告和错误
1.8 信息更丰富的回溯追踪 就是上面try中try语句和里面的语句同时抛出异常时,异常栈的信息
2. NIO2的一些新特性
1.java.nio.file 和java.nio.file.attribute包 支持更详细属性,比如权限,所有者
2. symbolic and hard links支持
3. Path访问文件系统,Files支持各种文件操作
JDK和Java SDK的区别
【中文标题】JDK和Java SDK的区别【英文标题】:Differences between JDK and Java SDK 【发布时间】:2010-09-15 01:02:08 【问题描述】:这两个术语之间有什么实质性区别吗?我了解 JDK 代表 Java Development Kit,它是 SDK(软件开发工具包)的一个子集。但是指定Java SDK,应该和JDK一样。
【问题讨论】:
【参考方案1】:JDK是你需要write a java program
的。
JRE 是您需要run a java program
所需要的。
由于JDKcontains
JRE可以下载JDK来编写和运行java程序。
JRE 包含 JVM,只要 JVM 安装在该操作系统上,Java 程序就可以在任何平台上运行(无需为其他平台重新编写或重新编译代码)。这就是 Java 广为人知的原因
Write Once(compile once) run anywhere.(WORA)
【讨论】:
【参考方案2】:JDK 是 Java 的 SDK。
SDK 代表“软件开发工具包”,这是一种开发人员工具,可让人们更轻松、更有效、更高效地编写代码。 SDK 适用于各种语言。它们提供了大量的 API(应用程序编程接口),使程序员的工作变得轻松。
Java 开发工具包称为 JDK,即 Java 开发工具包。 所以说 SDK for Java 实际上是指 JDK。
假设您是 Java 新手,您会遇到另一个术语 - JRE,Java 运行时环境的首字母缩写。 当您尝试运行用 Java 编写的软件程序时,您需要 JRE。
Java 是一种独立于平台的语言。 JRE 运行 JVM,即 Java 虚拟机,它使您能够在 JVM 可用的任何平台上运行软件。
【讨论】:
请说明 JRE 在您的图表中的位置? JRE 很好地包含在 JDK 中,或者它可以是独立的,具体取决于您在做什么。它是运行时,因此当您构建应用程序时,它位于 JDK 中,但当您仅运行应用程序时,它是独立的,在这种情况下,此图没有多大意义。 你确定jdk是java的sdk吗?考虑到 java se,这可能是真的,但对于 java ee 和 java me,我只看到了 Oracle 提供的 SDK。那么,你真的确定吗? 图片在跟我说话 :)【参考方案3】:取自 Java EE 6 SDK Installer,显示 SDK 6 除了 JDK 还包含什么:
【讨论】:
【参考方案4】:是的,SDK 和 JDK 之间是有区别的。 大多数人忘记了Java平台不仅用于开发Java语言程序。 JVM 还支持其他一些语言。 因此,明确地说,SDK 是通用的软件捆绑包,支持使用各种语言(如 Clojure、Groovy、Scala、JRuby 等)创建软件。 JDK 是用 Java 语言开发软件的特定捆绑包,包含所有 Java 标准 API。 (我希望我解释得很好,因为我实际上不会说英语)
【讨论】:
【参考方案5】:没有区别。
在 Sun 的营销部门对“tm”和术语感到疯狂之前,Java 软件开发工具包 (Java SDK) 曾经被称为 Java 开发工具包 (JDK)。出于政治原因和理智,他们将有意义的名称 (jdk) 和版本 (1.2 / 1.3 / 1.4 1.5 / 1.6) 称为“工程”术语。营销术语是“Java2 平台”(又名 jdk 1.2 到 1.4)或 Java5(又名 jdk 1.5)或 Java6(又名 jdk1.6)。想想就头疼。
【讨论】:
【参考方案6】:来自wikipedia entry:
JDK 是一般意义上的软件开发工具包 (SDK) 的一个子集。在最近发布的 Java SE、EE 和 ME 的描述中,Sun 承认根据他们的术语,JDK 构成了负责编写和运行 Java 程序的 SDK 的子集。 SDK 的其余部分由额外的软件组成,例如应用程序服务器、调试器和文档。
“额外软件”似乎是 Glassfish、MySQL 和 NetBeans。 This page 比较了您可以为 Java EE SDK 获得的各种包。
【讨论】:
SDK 是否在其包 - JDK“包”中包含(!)? JRE 包含在 JDK 中,是的。 JDK是一个软件开发工具包(SDK)。【参考方案7】:我认为 jdk 具有可以与特定框架一起使用的某些功能。好吧,把它称为 SDK。
像 Android 或 Blackberry 一样,它们都使用 java 及其框架。
【讨论】:
【参考方案8】:JDK 附带了一组用于开发和运行 Java 程序的工具,
它们包括:
appletviewer(用于查看 Java 小程序)
javac(Java 编译器)
java(Java 解释器)
javap(Java 反汇编程序)
javah(用于 C 头文件)
javadoc(用于创建 HTML 文档)
jdb(Java 调试器)
而 SDK 附带许多其他工具,包括 JDK 中可用的工具。
http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-
【讨论】:
【参考方案9】:JDK(Java 开发工具包)是一个 SDK(软件开发工具包)。
它用于在 Java 上构建软件/应用程序 当然,它还包括执行该软件的 JRE(Java 运行时版)。 如果您只想执行 Java 应用程序,只需下载 JRE。
顺便说一句,Java EE(企业版)包含“带有方法(函数)”的类包库,用于为 WEB 环境和 Java ME(微型版)构建移动设备的应用程序。如果您对它(Java ME)感兴趣,我建议您看看 Google 的 Android DevKit 和 API。
看看这里:它会解释更多.. http://www.oracle.com/technetwork/java/archive-139210.html
【讨论】:
【参考方案10】:此问题的最佳示例,SDK - 软件开发工具包 - 例如:Netbeans JDK - Java 开发工具包。(这是 Java 编译器)。没有JDK,我们无法在SDK中运行java程序。
【讨论】:
【参考方案11】:在我看来,Java 中的 JDK 和 SDK 没有区别。我们可以在它们中找到所有的开发工具和设施。只是sun提供的一个别名。
【讨论】:
【参考方案12】:有两种产品JavaSE 和JavaEE。 EE是允许Web应用程序开发和运行的Web应用程序/企业版。 SE 是纯 Java 产品,其中没有 EE 细节,但它是 EE 的一个子集。 SE 有两种类型,JDK 和 JRE。
有一个很大的区别可能并不明显,我不确定它是否适用于所有操作系统,但在 Windows 下,JRE 没有服务器 HotSpot JVM,只有客户端一个,JDK 两者都有,而且据我所知,所有其他操作系统都有 JDK 和 JRE。 真正的区别是JDK包含Java编译器,即JDK允许您从源代码编译和运行Java,而JRE只允许运行Java字节码,即已经编译的Source。 是的,较新的版本捆绑了许多额外的组件,例如 NetBeans 编辑器环境和 Java 内存数据库 (derby/cloudscape),但这些都是可选的。
【讨论】:
【参考方案13】:Sun 只是喜欢无缘无故地更改事物的名称。查看 SunOS/Solaris 的三种不同编号方案,或 Java 的两种编号方案。是 Java 1.6、Java 2 版本 6 还是 Java 6?
【讨论】:
【参考方案14】:JDK 和 Java SDK 之间没有区别。两者的意思是一样的。我认为从 JDK 转换到 Java SDK 是 Sun 的公关决定。我认为它现在回到 JDK。
【讨论】:
【参考方案15】:我最初的猜测是 Java SDK 用于构建 JVM,而 JDK 用于构建应用程序for JVM。
编辑:虽然目前这看起来是不正确的。 Sun 正在对 JVM 进行开源(也许他们现在已经完成了),所以如果我的答案确实正确,我不会太惊讶……但目前,SDK 和 JDK 是一回事。
【讨论】:
抱歉,构建 JVM 是什么意思? Java 应用程序在 Java 虚拟机中运行。 JRE 的一部分正在向公众开放,因此 Java SDK 将有助于人们为其平台构建 JRE。 抱歉,您从哪里得到这个声明(Java SDK 对人们为他们的平台构建 JRE 很有用)?我认为要么我不理解你,要么这不是 Java SDK 的目标。 Java SDK 由 JRE 和一些工具如 Javac、javap、javadoc ... 组成以上是关于jdk11和jdk1.8区别的主要内容,如果未能解决你的问题,请参考以下文章