当前位置: 首页>>软件下载 >编程开发 >JAVA相关 > Java SE Development Kit 9 v9.0.4官方版

Java SE Development Kit 9 v9.0.4官方版

360浏览器无法下载资源的解决办法?

点此纠错

情介绍

 Java SE Development Kit已经正式推出了全新的jdk9,但是许多用户都在网上传谣说jdk9没有32位版本的,其实jdk9暂未放弃32位运行环境推出了32位版,用户朋友可以下载使用32位的jdk9进行开发。

用过JDK的同学肯定知道这肯定是32位版本的

Java SE Development Kit 9 v9.0.4官方版基本简介

  Java SE, JDK 9 现已正式发布!首先新功能jshell无疑让JAVA再次领先其它编程语言和平台10年以上!java开发者们再也不用羡慕别的自带REPL的语言了,不用为了试个Java功能而开个Groovy shell了 。其次最主要的大功能就是Jigsaw——Java模块化了,有了它,自己定制/裁剪JDK变得更直接。

  JDK(Java Development Kit)是整个Java的核心,包括了Java运行环境、Java开发工具和Java基础类库源代码。JDK作为JAVA开发的环境,是运行JAVA程序不可缺少的环境,不管是做JAVA开发还是做安卓开发,都必须在电脑上安装JDK。小到小型设备,大到智慧城市,Java的贡献力量是其他任何技术无可比拟的。

Java SE Development Kit 9 v9.0.4官方版开发组成

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

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

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

  jdb – debugger,查错工具

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

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

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

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

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

Java SE Development Kit 9 v9.0.4官方版软件特色

  1. Java 平台级模块系统

  Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。每一个公共类都可以被类路径之下任何其它的公共类所访问到, 这样就会导致无意中使用了并不想被公开访问的 API。此外,类路径本身也存在问题: 你怎么知晓所有需要的 JAR 都已经有了, 或者是不是会有重复的项呢? 模块系统把这俩个问题都给解决了。

  模块化的 JAR 文件都包含一个额外的模块描述器。在这个模块描述器中, 对其它模块的依赖是通过 “requires” 来表示的。另外, “exports” 语句控制着哪些包是可以被其它模块访问到的。所有不被导出的包默认都封装在模块的里面。如下是一个模块描述器的示例,存在于 “module-info.java” 文件中:

  module blog {

  exports com.pluralsight.blog;

  requires cms;

  }

  2. Linking

  当你使用具有显式依赖关系的模块和模块化的 JDK 时,新的可能性出现了。你的应用程序模块现在将声明其对其他应用程序模块的依赖以及对其所使用的 JDK 模块的依赖。为什么不使用这些信息创建一个最小的运行时环境,其中只包含运行应用程序所需的那些模块呢? 这可以通过 Java 9 中的新的 jlink 工具实现。你可以创建针对应用程序进行优化的最小运行时映像而不需要使用完全加载 JDK 安装版本。

  3. JShell : 交互式 Java REPL

  许多语言已经具有交互式编程环境,Java 现在加入了这个俱乐部。您可以从控制台启动 jshell ,并直接启动输入和执行 Java 代码。 jshell 的即时反馈使它成为探索 API 和尝试语言特性的好工具。

  测试一个 Java 正则表达式是一个很好的说明 jshell 如何使您的生活更轻松的例子。 交互式 shell 还可以提供良好的教学环境以及提高生产力,您可以在此了解更多信息。在教人们如何编写 Java 的过程中,不再需要解释 “public static void main(String [] args)” 这句废话。

  4. 改进的 Javadoc

  有时一些小事情可以带来很大的不同。你是否就像我一样在一直使用 Google 来查找正确的 Javadoc 页面呢? 这不再需要了。Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。此外,你会注意到,每个 Javadoc 页面都包含有关 JDK 模块类或接口来源的信息。

  5. 集合工厂方法

  通常,您希望在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它。 实例化集合,几个 “add” 调用,使得代码重复。 Java 9,添加了几种集合工厂方法:

  Set<Integer> ints = Set.of(1, 2, 3);

  List<String> strings = List.of("first", "second");

  除了更短和更好阅读之外,这些方法也可以避免您选择特定的集合实现。 事实上,从工厂方法返回已放入数个元素的集合实现是高度优化的。这是可能的,因为它们是不可变的:在创建后,继续添加元素到这些集合会导致 “UnsupportedOperationException” 。

  6. 改进的 Stream API

  长期以来,Stream API 都是 Java 标准库最好的改进之一。通过这套 API 可以在集合上建立用于转换的申明管道。在 Java 9 中它会变得更好。Stream 接口中添加了 4 个新的方法:dropWhile, takeWhile, ofNullable。还有个 iterate 方法的新重载方法,可以让你提供一个 Predicate (判断条件)来指定什么时候结束迭代:

  IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println);

  第二个参数是一个 Lambda,它会在当前 IntStream 中的元素到达 100 的时候返回 true。因此这个简单的示例是向控制台打印 1 到 99。

  除了对 Stream 本身的扩展,Optional 和 Stream 之间的结合也得到了改进。现在可以通过 Optional 的新方法 `stram` 将一个 Optional 对象转换为一个(可能是空的) Stream 对象:

  Stream<Integer> s = Optional.of(1).stream();

  在组合复杂的 Stream 管道时,将 Optional 转换为 Stream 非常有用。

  7. 私有接口方法

  Java 8 为我们带来了接口的默认方法。 接口现在也可以包含行为,而不仅仅是方法签名。 但是,如果在接口上有几个默认方法,代码几乎相同,会发生什么情况? 通常,您将重构这些方法,调用一个可复用的私有方法。 但默认方法不能是私有的。 将复用代码创建为一个默认方法不是一个解决方案,因为该辅助方法会成为公共API的一部分。 使用 Java 9,您可以向接口添加私有辅助方法来解决此问题:

  public interface MyInterface {

  void normalInterfaceMethod();

  default void interfaceMethodWithDefault() {  init(); }

  default void anotherDefaultMethod() { init(); }

  // This method is not part of the public API exposed by MyInterface

  private void init() { System.out.println("Initializing"); }

  }

  如果您使用默认方法开发 API ,那么私有接口方法可能有助于构建其实现。

  8. HTTP/2

  Java 9 中有新的方式来处理 HTTP 调用。这个迟到的特性用于代替老旧的 `HttpURLConnection` API,并提供对 WebSocket 和 HTTP/2 的支持。注意:新的 HttpClient API 在 Java 9 中以所谓的孵化器模块交付。也就是说,这套 API 不能保证 100% 完成。

  9. 多版本兼容 JAR

  我们最后要来着重介绍的这个特性对于库的维护者而言是个特别好的消息。当一个新版本的 Java 出现的时候,你的库用户要花费数年时间才会切换到这个新的版本。这就意味着库得去向后兼容你想要支持的最老的 Java 版本 (许多情况下就是 Java 6 或者 7)。这实际上意味着未来的很长一段时间,你都不能在库中运用 Java 9 所提供的新特性。

Java SE Development Kit 9 v9.0.4官方版配置命令

  CMD命令提示符输入 java -version

Java SE Development Kit 9 v9.0.4官方版最新特性

  —最好玩的新功能当属jshell,有了它无疑让JAVA再次领先其它编程语言和平台10年以上!骑士继续流行20年也完全没有问题。因为它和Graal+Truffle、Substrate VM开启了无限可能!!Java开发们们再也不用羡慕别的自带REPL的语言了,不用为了试个Java功能而开个Groovy shell了 。

  —最主要的大功能就是Jigsaw——Java模块化了,有了它,自己定制/裁剪JDK变得更直接,而包冲突也会变得更容易发现和解决。

  —作为JVM的JIT编译器研发,最关注的功能是JVMCI,有了它之后,第三方开发就可以更为方便的向HotSpot VM插入一些强大的插件,例如说可以从外部配置插入一个新的JIT编译器。这样,要在HotSpot VM上使用Graal编译器就非常容易了,不必再专门用改造过的Graal VM。Oracle JDK 9计划在未来的某个update版本里发布配套的AOT编译器,而这个AOT编译器正是基于Graal与JVMCI的。

  —Oracle JDK 9 / OpenJDK 9把G1作为默认GC选项,如果要选用Parallel GC、CMS GC等别的GC的话则要显式在命令行上指定。这对目前正在使用CMS GC的人来说多半没什么影响,毕竟现在用CMS GC也要显式配置-XX:+UseConcMarkSweepGC选项。而对目前因

您喜欢

需要授予该应用的权限

	  

获取任务信息

允许程序获取当前或最近运行的应用

修改声音设置 修改声音设置信息

连续广播

允许一个程序收到广播后快速收到下一个广播

连续广播

允许一个程序收到广播后快速收到下一个广播

读写系统设置

允许读写系统设置项

唤醒锁定

允许程序在手机屏幕关闭后后台进程仍然运行

访问网络

访问网络连接,可能产生GPRS流量

读取电话状态

访问电话状态

获取WiFi状态

获取当前WiFi接入的状态以及WLAN热点的信息

获取网络状态

获取网络信息状态,如当前的网络连接是否有效

访问外部存储

访问外部存储的权限

写入外部存储

允许程序写入外部存储,如SD卡上写文件

挂载文件系统 挂载、反挂载外部文件系统

录音 录制声音通过手机或耳机的麦克

使用振动 允许振动

改变WiFi状态 改变WiFi状态

改变WiFi多播状态 改变WiFi多播状态

结束系统任务 结束任务通过restartPackage(String)方法,该方式将在外来放弃

显示系统窗口 显示系统窗口

禁用键盘锁 允许程序禁用键盘锁

获取精确位置 通过GPS芯片接收卫星的定位信息,定位精度达10米以内

获取粗略位置 通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米

访问定位额外命令 允许程序访问额外的定位提供者指令

使用蓝牙 允许程序连接配对过的蓝牙设备

蓝牙管理 允许程序进行发现和配对新的蓝牙设备

状态栏控制 允许程序扩展或收缩状态栏

读取系统日志 读取系统底层日志

改变网络状态 改变网络状态如是否能联网

排序系统任务 重新排序系统Z轴运行中的任务

拍照权限 允许访问摄像头进行拍照

读取日程提醒 允许程序读取用户的日程信息

写入日程提醒 写入日程,但不可读取

使用闪光灯 允许访问闪光灯

允许NFC通讯 允许程序执行NFC近距离通讯操作,用于移动支持