阅读更多

1顶
0踩

编程语言

转载新闻 刚刚,Java 10 正式发布了

2018-03-21 10:01 by 副主编 jihong10102006 评论(4) 有13689人浏览

3 月 20 日,Oracle 宣布 Java 10 正式发布。官方已提供下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

在 Java 9 之后,Java 采用了基于时间发布的策略,每 6 个月一个版本。这是采用新的发布策略之后的第一个版本。

 

Java 10 主要有 12 个新特性。

具体来看看。

 

JEP 286: Local-Variable Type Inference

 

局部变量的类型推导。

很多人都会吐槽 Java 代码写起来太过繁琐,特别是涉及泛型的时候。就像 C++,也基于 auto 关键字引入了类型推导功能。

Java 也计划引入类似特性,语法是这样的:

var list = new ArrayList<String>();  // infers ArrayList<String>var stream = list.stream();          // infers Stream<String>

 

该特性只能用于三种场景:

  • 带有初始化信息的局部变量

  • 增强 for 循环中的索引

  • 传统 for 循环中的局部变量

看个复杂点的例子:

对该特性感兴趣的读者可以参考:https://developer.oracle.com/java/jdk-10-local-variable-type-inference
JEP 296: Consolidate the JDK Forest into a Single Repository

 

将 JDK 的多个代码仓库合并到一个代码仓库中。

看过 JDK 代码的应该知道,JDK 的不同功能分布在不同代码仓库中。以 JDK 9 为例,代码仓库有 8 个: root, corba, hotspot,jaxp, jaxws, jdk, langtools 和 nashorn。其中 hotspot 是虚拟机实现代码,jdk 是 Java 类库和相关工具,langtools 是 javac 等工具,nashorn 是 JavaScript 引擎。

JEP 304: Garbage Collector Interface

 

垃圾收集器接口。

在 hotspot/gc 代码实现方面,引入一个干净的垃圾收集器接口,改进不同垃圾收集器源代码的隔离性。这样添加新的或者删除旧的 GC,都会更容易。

 

 

JEP 307: Parallel Full GC for G1

 

为 G1 垃圾收集器引入并行 Full GC。

JEP 310: Application Class-Data Sharing

 

Java 之前就引入了类数据共享机制,Class data sharing (CDS) ,以减少 Java 程序的启动时间,降低内存占用。简单来说,Java 安装程序会把 rt.jar 中的核心类提前转化成内部表示,转储到一个共享的文件中(shared archive)。多个 Java 进程(或者说 JVM 实例)可以共享这部分数据。

现在,希望更近一步,支持应用类的数据共享。

 

JEP 312: Thread-Local Handshakes

 

修改安全点机制,使得部分回调操作只需要停掉单个线程,而不像以前那样,只能选择或者停掉所有线程,或者都不停止。

 

JEP 313: Remove the Native-Header Generation Tool (javah)

 

去掉 javah 工具。

从  JDK 8 开始,javah 的功能已经集成到了 javac 中。所以,javah 可以删掉了。

 

JEP 314: Additional Unicode Language-Tag Extensions

 

额外的 Unicode 语言标签扩展。

增强 java.util.Locale  和相关 API,实现 BCP 47 语言标签中额外的 Unicode 扩展。

 

JEP 316: Heap Allocation on Alternative Memory Devices

 

在可选内存设备上分配堆内存。

支持将 Java 对象堆分配到 NV-DIMM 等内存设备上。随着 NV-DIMM 越来越便宜,未来的系统可能会搭载异构内存架构。

 

JEP 317: Experimental Java-Based JIT Compiler

 

实验性的基于 Java 的 JIT 编译器。

支持基于 Java 的 JIT 编译器。相关工作主要基于 Graal。Graal 也是 Java 9 中引入的 AOT 编译器的基础。

 

JEP 319: Root Certificates

 

根证书。

在 JDK 中提供一组默认的根证书。

 

JEP 322: Time-Based Release Versioning

 

基于时间的版本字符串。修改 Java SE 平台和 JDK 版本字符串机制。考虑和之前版本号的兼容等问题,新的版本命名机制是:

$FEATURE.$INTERIM.$UPDATE.$PATCH
$FEATURE,每次版本发布加 1,不考虑具体的版本内容。(之前的主版本号部分)2018 年 3 月的版本是 JDK 10,9 月的版本是 JDK 11,依此类推。
$INTERIM,中间版本号,在大版本中间发布的,包含问题修复和增强的版本,不会引入非兼容性修改。
马上下载尝试吧!

  • 大小: 125.2 KB
  • 大小: 133.1 KB
来自: 开发资讯
1
0
评论 共 4 条 请登录后发表评论
4 楼 SuiFeng枫 2018-03-23 19:44
然而我还在用jdk1.6
3 楼 风一样的男人__ 2018-03-23 15:26
 
2 楼 masuweng 2018-03-22 13:25
8,9,都没有用过,出来10了,    
1 楼 cremains 2018-03-21 10:59
  这也太快了吧。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • ActiveXTest代码

    ActiveXActiveXTest代码ActiveXTest代码ActiveXTest代码

  • VC++开发Activex控件以及签名发布

    前言       本人不懂C++,当前由于要做一个打印控件,使用Activex插件技术,所以在网络上搜索了相关技术文档,今天有空,遂将自己的当前学到的一些关于Activex技术整理之,进而和朋友们分享之。 一、 开发环境 开发工具:Visual Studio 2008 开发语言:Visual C++ 测试工具:IE 7+二、 创建MFC ActiveX项目 1、 打开VS2008新建MFC项目...

  • ActiveX发布步骤

           元旦刚过,老板就吩咐起草一份项目可行性报告,昨天刚完,掰手指头一算,整整没日没夜写了4天!老板又让偶写一个网页控件给客户。是在内部网发布,发布过程还是频费一翻周折,呵,好记性不如烂笔头,记下来:      以下ActiveX发布所需工具下载:http://d.download.csdn.net/down/326629/memory_xj       开发一个示功图显示程序,控件为

  • 开源发布一个Web在线截图ActiveX控件,通过AJAX可以自动上传到服务上

    开源发布一个Web在线截图ActiveX控件,通过AJAX可以自动上传到服务上

  • 发布Activex

    1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet  SDK的安装就有了,Cabinet  SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。  Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。  2、制作cab文件时需要将

  • ActiveX打包与发布

    一、ActiveX发布步骤1、单击"开始""运行(R)"输入"cmd"回车进入到操作的控件所在的目录;2、创建PVK文件(私人密匙文件),在命令行中输入"makecert -sk demo demo.pvk -n CN=XXXXXXX公司",然后回车;3、创建CER文件(公司证书),在命令行中输入"makecert -sk demo.pvk demo

  • vs2010开发activex(MFC)控件/ie插件(一)

    vs2010制作基于mfc的ie插件

  • 用ActiveXObject可实现从客户端本地上传文件到服务器端的功能

    1、javascript代码如下,filePath为服务器路径: function sendFileToServer(filePath){     var stream =newActiveXObject("ADODB.Stream");     stream.Type=1;      stream.Open();      stream.Position = 0;     s

  • Activex test contact failed to create control 未指定的错误 控件无法加载的原因

    本文指的是vc++项目的activex  出现这个问题, 我总结了总共有以下几点,可能还有其他原因:1.中文问题:如果你的项目类型是多字节的,而不是unicode编码的,你可能要注意这个问题了,我就发生了这个问题,为了解决这个问题没办法项目重新生成然后一个一个去排除,结果发现在 "copyright 公司名称(C)"的地方多了一个公司名称,是我自己手动加上去的,结果就是这个说明给搞的不能运

  • 如何发布ActiveX 控件

    [背景]       做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后运行DOS工具里面运行regsvr32 test.ocx命令进行注册。但如果真是这么去做的话,那么代表着你处于危险之中了,因为您

  • Activex打包于发布完整版---ActiveX打包

    前面介绍了数字证书的原理与制作:http://blog.csdn.net/jiangtongcn/article/details/13508365,下面来看一下ActiveX组件的打包。 我现在有一个ActiveX组件:fq.ocx,目的用于采集当前登录的QQ号码,采用vc mfc编写,当然您完全可以用其它技术编写。本ActiveX需要嵌入在网页中运行。 网上的关于打包这方面的东西太多了。这里

  • 复制不能复制的网页文字

    1,网页中嵌入了javascript语言,通过编程手段屏蔽了复制。   只要点击IE的“工具”→“Internet选项”菜单,进入“安全”标签页,选择“自定义级别”,将所有脚本全部禁用,然后按F5键刷新网页,这时你就会发现那些无法选取的文字可以选取了   在采集到了自己需要的内容后,一定要给脚本“解禁”,否则会影响到我们浏览网页。   2,有些网站为了防止别人使用他的内容把它禁掉了,除了上述同志们

  • AVR单片机项目-ADC键盘(源码+仿真+效果图).zip

    使用adc功能来判断不同电压,那必定是通过电压的不同来区分的,这就需要按键与电阻进行组合,我设计打算使用正比关系的按键阻值,这样会比较好在程序判断,最后就如仿真图那样设计,按键按下让某部分电路短路,剩下的电路得到不同的电压值,而不同按键按下,对应的电阻值是10k的倍数,很好区分。而基地的电阻设为10k,按键靠近gnd的电压值最小,远离则慢慢增大,可大概计算出来的,分压的电压为5v。按键不按时为0v,有按键按的电压范围为2.5v~0.238v。然后用以前编写好的数码管驱动拿过来用,也就是用动态扫描的方式进行显示的。然后编写adc代码,根据atmega16的数据手册就可以慢慢写出来了,即配置好ADMUX、ADCSRA寄存器,使用单次触发的方式,写好对应的函数,在初始化之后,使用定时器1中断进行adc的读取和数码管的刷新显示。而adc对应按键的判断也使用了for循环对1024分成1~21份,对其附近符合的值即可判断为按键i-1,可直接显示出来,而误差值可以多次测量后进行调整。 使用adc功能来判断不同电压,那必定是通过电压的不同来区分的,这就需要按键与电阻进行组合,我设计打算使用正比关系的按

  • java毕设项目之基于SpringBoot的失物招领平台的设计与实现(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3

  • java毕设项目之基于springboot的智能家居系统(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3

Global site tag (gtag.js) - Google Analytics