阅读更多

1顶
0踩

编程语言

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

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

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,有些网站为了防止别人使用他的内容把它禁掉了,除了上述同志们

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

Global site tag (gtag.js) - Google Analytics