`

Java7的那些新特性

 
阅读更多

本文介绍的java 7新特性更多的感觉像是语法糖。毕竟java本身已经比较完善了,不完善的很多比较难实现或者是依赖于某些底层(例如操作系统)的功能。不过java7也实现了类似aio的强大功能。但本文并未有此介绍。主要是 1.switch可以接受string类型而不像以前仅仅是int;2.异常catch可以一次处理完而不像以前一层层的surround;3.泛型类实例化也不用繁琐的将泛型声明再写一遍;4.文件读写 会自动关闭流而不像以前那样需要在finally中显式close;5.数值可以使用下划线分隔;6.文件读写功能增强,有更简单的api调用;7.文件改变的事件通知功能;8.多核 并行计算的支持加强 fork join 框架;9.还有一些动态特性的加入。

具体看代码:

1.switch可以接受string类型而不像以前仅仅是int;

  1. publicvoidprocessTrade(Tradet){
  2. Stringstatus=t.getStatus();
  3. switch(status){
  4. caseNEW:
  5. newTrade(t);
  6. break;
  7. caseEXECUTE:
  8. executeTrade(t);
  9. break;
  10. casePENDING:
  11. pendingTrade(t);
  12. break;
  13. default:
  14. break;
  15. }
  16. }
2.异常catch可以一次处理完而不像以前一层层的surround;

  1. publicvoidnewMultiCatch(){
  2. try{
  3. methodThatThrowsThreeExceptions();
  4. }catch(ExceptionOne|ExceptionTwo|ExceptionThreee){
  5. //loganddealwithallExceptions
  6. }
  7. }


3.泛型类实例化也不用繁琐的将泛型声明再写一遍;

  1. Map<String,List<Trade>>trades=newTreeMap<>();

4.文件读写 会自动关闭流而不像以前那样需要在finally中显式close;

  1. publicvoidnewTry(){
  2. try(FileOutputStreamfos=newFileOutputStream("movies.txt");
  3. DataOutputStreamdos=newDataOutputStream(fos)){
  4. dos.writeUTF("Java7BlockBuster");
  5. }catch(IOExceptione){
  6. //logtheexception
  7. }
  8. }


5.数值可以使用下划线分隔;

  1. intmillion=1_000_000

6.文件读写功能增强,有更简单的api调用;

  1. publicvoidpathInfo(){
  2. Pathpath=Paths.get("c:\\Temp\\temp");
  3. System.out.println("NumberofNodes:"+path.getNameCount());
  4. System.out.println("FileName:"+path.getFileName());
  5. System.out.println("FileRoot:"+path.getRoot());
  6. System.out.println("FileParent:"+path.getParent());
  7. //这样写不会抛异常
  8. Files.deleteIfExists(path);
  9. }

7.文件改变的事件通知功能;

  1. /**
  2. *Thisinitiatesthepolice
  3. */
  4. privatevoidinit(){
  5. path=Paths.get("C:\\Temp\\temp\\");
  6. try{
  7. watchService=FileSystems.getDefault().newWatchService();
  8. path.register(watchService,ENTRY_CREATE,ENTRY_DELETE,
  9. ENTRY_MODIFY);
  10. }catch(IOExceptione){
  11. System.out.println("IOException"+e.getMessage());
  12. }
  13. }
  14. /**
  15. *Thepolicewillstartmakingrounds
  16. */
  17. privatevoiddoRounds(){
  18. WatchKeykey=null;
  19. while(true){
  20. try{
  21. key=watchService.take();
  22. for(WatchEvent<?>event:key.pollEvents()){
  23. Kind<?>kind=event.kind();
  24. System.out.println("Eventon"+event.context().toString()+"is"+kind);
  25. }
  26. }catch(InterruptedExceptione){
  27. System.out.println("InterruptedException:"+e.getMessage());
  28. }
  29. booleanreset=key.reset();
  30. if(!reset)
  31. break;
  32. }
  33. }


8.多核 并行计算的支持加强 fork join 框架;

  1. ForkJoinPoolpool=newForkJoinPool(numberOfProcessors);
  2. publicclassMyBigProblemTaskextendsRecursiveAction{
  3. @Override
  4. protectedvoidcompute(){
  5. ...//yourprobleminvocationgoeshere
  6. }
  7. }
  8. pool.invoke(task);


9.还有一些动态特性的加入。

java.lang.invoke包的引入。MethodHandle,CallSite还有一些其他类供使用。


具体参见原文 http://radar.oreilly.com/2011/09/java7-features.html

更多内容,大家可参考:

Java 7 的新特性一览表

分享到:
评论

相关推荐

    java7新特性与java高级编程

    Java 7是Java编程语言的一个重大更新,发布于2011年,它引入了许多新的特性和改进,旨在提升开发者的效率和代码的可读性。...《深入理解Java7》这本书应该会详细阐述这些内容,帮助你全面掌握Java 7的精髓。

    Java7的新特性

    Java新特性学习 Jlayer是一个适用于Swing组件的灵活而强大的组件装饰器。提供了用来装饰多个组合组件的方式,并且可以捕获所有鼠标、键盘和FocusEvent的事件,并针对所有的XLayer子组件。这个组件只会对public swing...

    JAVA 7新特性1

    JAVA 7 新特性 —— 异常处理升级 JAVA 7 中引入了多个新特性,其中之一是异常处理升级。在 Java 7 中,catch 代码块得到了升级,可以在单个 catch 块中处理多个异常。这种特性可以减少代码重复度,并生成更少的...

    Java8 新特性

    Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...

    JAVA1.5新特性

    JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列创新特性,旨在提升编程效率、增强代码安全性并简化开发流程。以下是对JAVA 1.5新特性的详细解析: ### 1. 泛型 (Generics) #### 概述 泛型...

    java8新特性

    Java 8是Java编程语言的一个重大更新,引入了许多新的特性和功能,极大地提高了开发效率和代码的可读性。以下是一些主要的Java 8新特性详解: 1. **Lambda表达式**:这是Java 8最显著的新特性之一,它为Java引入了...

    第7章 Java语言类的特性(第7版).pptx

    第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7...

    删减版Java新特性(剖析Java8以来的新特性).pdf

    自 Java 8 发布后,Java 有了许多显著的新特性,极大地提升了开发效率和代码质量。以下是对 Java 8 及之后版本主要新特性的深入剖析: 1. **Lambda 表达式**: Java 8 引入了 Lambda 表达式,使得函数式编程成为...

    Java7新特性中文介绍

    ### Java 7新特性中文介绍 #### 一、概述 随着Java 7的发布,业界迎来了一次重大的技术革新。作为一款原本就极其强大的编程语言,Java在Oracle的重组之后,不仅保持了其原有的优势,还增添了许多令人期待的新特性...

    Java异常处理新特性

    Java 异常处理新特性是在 Java7 中引入的一种新的异常处理机制,它提供了一种更加简洁、可靠的方式来处理资源使用异常。这种机制称为 try-with-resources,实际上是自动调用资源的 close() 函数,从而实现资源的自动...

    JAVA8新特性讲解

    以下是关于Java 8新特性的详细讲解: 1. **函数式编程:Lambda表达式** Lambda表达式是Java 8中最显著的新特性,它允许我们将函数作为一个方法参数,或者以匿名函数的形式创建。Lambda表达式简洁且易于理解,使得...

    java9新特性大全详解

    ### Java 9 新特性大全详解 #### 一、概述 Java 9 是 Oracle 在 2017 年 7 月发布的重大版本更新,它不仅引入了许多令人兴奋的新功能和改进,还对 Java 平台的整体架构进行了优化。本文将详细介绍 Java 9 中的关键...

    Java SE 6 新特性

    7. **NIO 2.0**:Java SE 6引入了新的文件系统API(JSR 203),增加了对异步I/O的支持,以及文件属性和文件系统查询的增强,提高了I/O操作的效率。 8. **XPath和XSLT 2.0支持**:Java 6支持XPath 2.0和XSLT 2.0标准...

    JAVA8-新特性总结及案例[汇编].pdf

    以下是对Java 8新特性的详细总结: **一、Lambda表达式** Lambda表达式是Java 8的核心特性之一,它允许将函数作为一个方法的参数,从而实现函数式编程的风格。Lambda表达式的语法如下: ```java (parameters) -&gt; ...

    2019最新 java9新特性课程讲解.rar

    Java 9是Java平台的重大更新,它引入了许多新特性,旨在提升性能、模块化系统以及增强开发者体验。在这个2019年的最新课程讲解中,我们将会深入探讨以下几个关键知识点: 1. **模块化系统(Project Jigsaw)**:这...

    java7新特性功能表

    Java 7,全称为Java SE 7 (Java Platform, Standard Edition 7),是Java编程语言的一个重大更新,它在2011年发布,引入了一系列的新特性,旨在提高开发效率,增强程序性能,并且简化某些编程任务。让我们深入探讨...

    Java17新特性详解含示例代码(值得珍藏)

    【Java 17新特性详解含示例代码】 Java 17作为Java的最新版本,引入了一系列提升开发效率、性能和开发体验的新特性。以下是Java 17的主要新特性及其实现方式: 1. **增强的伪随机数生成器 (JEP 356)** Java 17...

    JAVA5-6新特性列表.doc

    Java 5 和 Java 6 是两个重要的 Java 发行版本,它们引入了一系列的新特性和改进,极大地提升了开发效率和代码质量。下面将详细讲解这两个版本的关键特性。 Java 5: 1. **泛型**:泛型允许在类、接口和方法中使用...

    java1.7 特性实现

    Java 7引入了一个新的语法结构——`try-with-resources`,用于更有效地管理资源,特别是那些实现了`AutoCloseable`接口的类,如文件流或数据库连接。这确保了在try块结束后,资源会自动关闭,避免了资源泄露的问题...

    JAVA7新特性透明窗体代码

    在Java 7中,Swing库引入了一些新特性,使得开发者可以更加灵活地设计和定制用户界面。其中,最引人注目的就是对透明窗体(Translucent Windows)的支持。透明窗体允许开发者创建半透明或者具有渐变色背景的窗口,这...

Global site tag (gtag.js) - Google Analytics