从总体的角度介绍JDK 7里的新特性

JDK 全称 Java Development Kit,是一套供 Java ">开发人员使用的软件开发工具,其中包括了 JRE(Java Runtime Environment),以及 Java、Jar、Javac、 Javap、Javah、Javaws 等工具。自从 Sun 公司于 2006 年 12 月 11 日发布 JDK6 到 Oracle 公司于 2011 年 7 月 28 日发布 JDK7,历时长达 5 年之久,期间经历了不少大大小小的事件。所以首先,让我们来回顾一下 JDK7 发展历史上的风风雨雨。

2009 年 1 月,Sun 开始开发 JDK7 Milestone 1。

2009 年 11 月,Sun 在 Devoxx 2009 大会上宣布将闭包特性加入 JDK7,并将 JDK7 的发布日期推迟到 2010 年底。

2010 年 4 月,Oracle 收购 Sun。

2010 年 9 月,Mark Reinhold 在 JavaOne 大会上宣布 JDK7 将砍去 Lambda、Jigsaw 和部分 Coin 新特性并于 2011 年中发布,其余部分的新特性将于 2012 年底同 JDK8 一同发布。

2010 年 10 月,IBM 宣布加入 OpenJDK,将与 Oracle 合作共同开发 JDK。此后,Apple 和 SAP 也陆续加入 OpenJDK 社区。

2011 年 7 月 28 日,Oracle 正式发布 JDK7,并指定 OpenJDK7 为参考实现。

2011 年 9 月 19 日,IBM 正式发布 IBM JDK7。

在经历了推迟发布,Sun 被收购,新特性删减,再推迟发布等一系列事件之后,JDK7 终于还是来到了大家的面前,那么 JDK7 到底有哪些重要的新特性呢?本系列文章将为读者逐一展现。

JSR292:支持动态类型语言(InvokeDynamic)

图 1. 项目图标--达芬奇设计的直升机

近年来越来越多的基于 JVM 的动态语言的出现,对于 JVM 提出了新的需求和挑战。其实在 JDK6 中就已经支持 JSR223:Java 平台上的脚本语言,通过一个脚本语言引擎在 JVM 上执行 JavaScript 等脚本语言。但由于 JVM 本身的设计原来是针对 Java 这种静态类型语言的,所以脚本语言无论是解释执行,或者是编译时用虚拟类型,还是运用反射机制,都会对执行效率产生很大程度的影响。

JSR292 的实现增加了一个 InvokeDynamic 的字节码指令来支持动态类型语言,使得在把源代码编译成字节码时并不需要确定方法的签名,即方法参数的类型和返回类型。当运行时执行 InvokeDynamic 指令时,JVM 会通过新的动态链接机制 Method Handles,寻找到真实的方法。

有了 InvokeDynamic,动态类型语言在 JVM 上的执行速度得到了大大提升,具体的实现细节和实例将在今后的系列文章中有详细介绍。

时间: 2024-09-15 15:54:29

从总体的角度介绍JDK 7里的新特性的相关文章

java-如何获取jdk版本升级后的新特性

问题描述 如何获取jdk版本升级后的新特性 对于jdk 版本的升级,我都知道如何适应,如何获取jdk版本的最新动态和升级后的新功能,,请各位大神指教.. 解决方案 http://www.oracle.com/technetwork/java/javase/downloads/index.html 想了解最新版本的话,多看看这个网站~进去之后点learn more就会显示出该版本的最新特性. btw~~jdk不建议经常更新,因为最新版的jdk可能会出现一些兼容性问题.比如说跟各种IDE.tomca

从DBA管理角度,看12c那些令人倾心的内存新特性

作者介绍 邹德裕,轻维软件首席数据库专家,DBAplus社群联合发起人,OraZ产品作者.10年以上运维管理经验,Oracle OCM,精通Oracle9i.10g和11g数据库技术及Linux Unix技术.对数据库系统架构具有深刻的理解,并在数据库诊断.故障排除.优化.架构设计等方面具有丰富的经验.   2013年6月26日,Oracle Database 12.1.0.1.0版本正式发布,随后在2014年7月发布了12.1.0.2.0,在2015年10月27日,Oracle在甲骨文全球大会

Java8新特性之字符串去重介绍_java

8月19日,Oracle发布了JDK 8u20,JDK 8u20包含很多新特性,比如Java编译器更新.支持在运行时通过API来修改MinHeapFreeRatio和MaxHeapFreeRatio参数.新的GC调优指南文档.不过在众多新特性中,最令人期待的还属字符串去重(String Deduplication ).如何减少内存占用一直是一个永恒的话题,而在Java应用中,经常会看到String对象会占用应用30%的内存,它是Java中最常用的对象之一.新的字符串去重特性可以帮助减少应用中St

简单介绍SQL Server里的闩锁_MsSql

在今天的文章里我想谈下SQL Server使用的更高级的,轻量级的同步对象:闩锁(Latch).闩锁是SQL Server存储引擎使用轻量级同步对象,用来保护多线程访问内存内结构.文章的第1部分我会介绍SQL Server里为什么需要闩锁,在第2部分我会给你介绍各个闩锁类型,还有你如何能对它们进行故障排除. 为什么我们需要闩锁?闩锁首次在SQL Server 7.0里引入,同时微软首次引入了行级别锁(row-level locking).对于行级别锁引入闩锁的概念是非常重要的,不然的话在内存中会

简单介绍SQL Server里的闩锁

在今天的文章里我想谈下SQL Server使用的更高级的,轻量级的同步对象:闩锁(Latch).闩锁是SQL Server存储引擎使用轻量级同步对象,用来保护多线程访问内存内结构.文章的第1部分我会介绍SQL Server里为什么需要闩锁,在第2部分我会给你介绍各个闩锁类型,还有你如何能对它们进行故障排除. 为什么我们需要闩锁? 闩锁首次在SQL Server 7.0里引入,同时微软首次引入了行级别锁(row-level locking).对于行级别锁引入闩锁的概念是非常重要的,不然的话在内存中

JFFS2 文件系统及新特性介绍

简介: JFFS2 是一个开放源码的项目(www.infradead.org). 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用.这篇文章首先分析了在闪存上使用 JFFS2 的必要性,然后详细的阐述了 JFFS2 实现的内部机制,包括日志结构的文件系统,关键的数据结构,挂载过程和垃圾收集机制.同时也指出了 JFFS2 的局限性,并介绍了最新的针对 JFFS2 的不足进行改进的补丁程序.最后对 JFFS3 的设计思想和现在的开发状况给予了简单的介绍 1. 为什么需要 JFFS

Java9的一些新特性介绍_java

被接受的特性1. Jigsaw 项目;模块化源码 Jigsaw项目是为了模块化Java代码.将JRE分成可相互协作的组件,这也是Java 9 众多特色种的一个.JEP是迈向Jigsaw四步中的第一步,它不会改变JRE和JDK的真实结构.JEP是为了模块化JDK源代码,让编译系统能够模块编译并在构建时检查模块边界.这个项目原本是随Java 8发布的,但由于推迟,所以将把它加到Java 9. 一旦它完成,它可能允许根据一个项目需求自定义组件从而减少rt.jar的大小.在JDK 7 和JDK 8的rt

JDK 7新特性简介

JDK7 新特性系列之一 总览 JDK 全称 Java Development Kit,是一套供 Java 开发人员使用的软件开发工具, 其中包括了 JRE(Java Runtime Environment),以及 Java.Jar.Javac. Javap.Javah.Javaws 等工具.自从 Sun 公司 于 2006 年 12 月 11 日发布 JDK6 到 Oracle 公司于 2011 年 7 月 28 日发布 JDK7,历时长达 5 年之久,期间经历了 不少大大小小的事件.所以首先

JDK1.5新特性介绍

"JDK1.5"(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 .使用这些特性有助于我们编写更加清晰,精悍,安全的代码. 下面我们简单介绍一下这些新特性. 1.泛型(Generic) C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能.一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换.猛虎引入了泛型,它允许指