黑马程序员技术交流社区

标题: 谁能给总结一下java 7的新特性啊 [打印本页]

作者: 123    时间: 2013-3-17 09:25
标题: 谁能给总结一下java 7的新特性啊
本帖最后由 wwd867551927 于 2013-3-17 10:40 编辑

java 7增加了一些新特性,谁能给总结一下啊,谢谢
作者: HM张超    时间: 2013-3-17 09:32
几乎方方面面都有重大更新,举几个语法上的新特性,其他方面建议你去查找相关资料。1、switch...case支持字符串。2、数字字面量改进,加入二进制字面量表示:如0b001001(十进制数字9)或0B001001;   数字字面量中可以使用下划线分割,以使长数字便于阅读,如100000可以写成100_000,就好比现实生活中写成100,000便于阅读一样。3、优化异常处理,Throable类增加addSuppressed和getSuppressed方法,用来记录被其他异常抑制而无法正常抛出的异常;   一个catch子句可以捕获多个异常,每个异常之间使用“|”分割,如catch (ClassNotFoundException cnfe | IOException ioe);   还有其他的一些优化,如异常类中包含更多信息,精确异常抛出等等。4、Java 7之前通常在try里创建资源,finally里对资源进行关闭等操作,Java 7中可以使用try-with-resources语句,而不需要关心资源的关闭,如——    try (InputStream input = new FileInputStream("D:/test1.txt");            OutputStream output = new FileOutputStream("D:/test2.txt")) {        byte[] buffer = new byte[1024];        int len = -1;        while ((len = input.read(buffer) != -1 ) {            output.write(buffer, 0, len);        }    }    将资源的创建写在try后的括号里,这样就不需要使用finally语句来保证资源的正确关闭,由虚拟机自动完成,程序员只需要关心业务逻辑即可。5、关于变长参数的优化,增加了@SafeVarargs注解,Java 7之前在使用可变长参数的方法时,如果参数传递的是不可具体化的类型(如泛型类型List<String>)会产生警告信息,如果希望进制该警告,需要使用@SuppressWarnings("unchecked")注解进行声明,Java 7中,如果开发人员确信某个使用了可变长参数的方法在与泛型类一起使用时不会出现类型安全问题,就可以使用@SafeVarargs注解来声明。注意该注解只能用于可变长参数的方法或者构造方法,并且方法必须声明为static或final
作者: 洪建超    时间: 2013-3-17 09:39
楼下有帖子总结了这个http://bbs.itheima.com/thread-41599-1-1.html

作者: 黑马-李嘉欣    时间: 2013-3-17 09:41
新特性一览表:

Swing

新增 JLayer 类,是一个灵活而且功能强大的Swing组件修饰器,使用方法:How to Decorate Components with JLayer.
Nimbus Look and Feel 外观从 com.sun.java.swing 包移到 javax.swing 包中,详情:javax.swing.plaf.nimbus
更轻松的重量级和轻量级组件的混合
支持透明窗体以及非矩形窗体的图形界面,请看 How to Create Translucent and Shaped Windows
JColorChooser 类新增 HSV tab.
网络

新增 URLClassLoader.close 方法,请看 Closing a URLClassLoader.
支持 Sockets Direct Protocol (SDP) 提供高性能网络连接,详情请看 Understanding the Sockets Direct Protocol.
集合

新增 TransferQueue 接口,是 BlockingQueue 的改进版,实现类为 LinkedTransferQueue
RIA/发布

拖拽的小程序使用一个默认或者定制的标题进行修饰,详情:Requesting and Customizing Applet Decoration in Draggable Applets.
JNLP 文件做了如下方面的增强,详情请看 JNLP File Syntax:
The os attribute in the information and resources elements can now contain specific versions of Windows, such as Windows Vista or Windows 7.
Applications can use the install attribute in the shortcut element to specify their their desire to be installed. Installed applications are not removed when the Java Web Start cache is cleared, but can be explicitly removed using the Java Control Panel.
Java Web Start applications can be deployed without specifying the codebase attribute; see Deploying Without Codebase
可直接在 HTML 中嵌入 JNLP 文件:Embedding JNLP File in Applet Tag.
可在 JavaScript 代码中检查 Applet 是否已经加载完成:Handling Initialization Status With Event Handlers.
可在 Applet 从快捷方式启动或者拖出浏览器时对窗口样式和标题进行控制:Requesting and Customizing Applet Decoration in Developing Draggable Applets.
XML

包含 Java API for XML Processing (JAXP) 1.4.5, 支持 Java Architecture for XML Binding (JAXB) 2.2.3, 和 Java API for XML Web Services (JAX-WS) 2.2.4.
java.lang 包

消除了在多线程环境下的非层次话类加载时导致的潜在死锁,详情:Multithreaded Custom Class Loaders in Java SE 7.
Java 虚拟机

支持非 Java 语言: Java SE 7 引入一个新的 JVM 指令用于简化实现动态类型编程语言
Garbage-First Collector 是一个服务器端的垃圾收集器用于替换 Concurrent Mark-Sweep Collector (CMS).
提升了 Java HotSpot 虚拟机的性能
Java I/O

java.nio.file 包以及相关的包 java.nio.file.attribute 提供对文件 I/O 以及访问文件系统的全面支持,请看 File I/O (featuring NIO.2).

目录 <Java home>/sample/nio/chatserver/ 包含使用 java.nio.file 包的演示程序
目录 <Java home>/demo/nio/zipfs/ 包含 NIO.2 NFS 文件系统的演示程序
安全性

新的内置对多个基于 ECC 算法(ECDSA/ECDH)的支持,详情请看:Sun PKCS#11 Provider's Supported Algorithms in Java PKCS#11 Reference Guide.
禁用了一些弱加密算法,详情请看 Appendix D: Disabling Cryptographic Algorithms in Java PKI Programmer's Guide and Disabled Cryptographic Algorithms in Java Secure Socket Extension (JSSE) Reference Guide.
Java 安全套接字扩展中对 SSL/TLS 的增强
并发

fork/join 框架,基于 ForkJoinPool 类,是 Executor 接口的实现,设计它用来进行高效的运行大量任务;使用 work-stealing 技术用来保证大量的 worker 线程工作,特别适合多处理器环境,详情请看 Fork/Join
目录<Java home>/sample/forkjoin/ 包含了 fork/join 框架的演示程序
ThreadLocalRandom 类class 消除了使用伪随机码线程的竞争,请看 Concurrent Random Numbers.
Phaser 类是一个新的同步的屏障,与 CyclicBarrier 类似.
Java 2D

一个新的基于 XRender 的 Java 2D 渲染管道支持现在的 X11 桌面,改善了图形性能,请看 System Properties for Java 2D Technology 中的 xrender .
JDK 可枚举并显示出已安装的 OpenType/CFF 字体,通过 GraphicsEnvironment.getAvailableFontFamilyNames 方法 See Selecting a Font.
TextLayout 类支持西藏语脚本
libfontconfig, 是一个字体配置 api ,see Fontconfig.
国际化

支持 Unicode 6.0.0
目录 <Java home>/demo/jfc/Font2DTest/ 包含 Unicode 6.0 的演示程序
Java SE 7 可容纳在 ISO 4217 中新的货币,详情请看 Currency 类.
Java 编程语言特性

二进制数字表达方式
使用下划线对数字进行分隔表达,例如 1_322_222
switch 语句支持字符串变量
泛型实例创建的类型推断
使用可变参数时,提升编译器的警告和错误信息
try-with-resources 语句
同时捕获多个异常处理
JDBC 4.1

支持使用 try-with-resources 语句进行自动的资源释放,包括连接、语句和结果集
支持 RowSet 1.1
其实官方已经总结的很清楚了,Java 的详细介绍:请点这里
http://wenku.baidu.com/view/50ecd004e87101f69e3195a8.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2