本文介绍的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。

[html] view
plain
copy

  1. public void processTrade(Trade t) {
  2. String status = t.getStatus();
  3. switch (status) {
  4. case NEW:
  5. newTrade(t);
  6. break;
  7. case EXECUTE:
  8. executeTrade(t);
  9. break;
  10. case PENDING:
  11. pendingTrade(t);
  12. break;
  13. default:
  14. break;
  15. }
  16. }

2.异常catch能够一次处理完而不像曾经一层层的surround。

[html] view
plain
copy

  1. public void newMultiCatch() {
  2. try {
  3. methodThatThrowsThreeExceptions();
  4. } catch (ExceptionOne | ExceptionTwo | ExceptionThree e) {
  5. // log and deal with all Exceptions
  6. }
  7. }

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

[html] view
plain
copy

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

4.文件读写 会自己主动关闭流而不像曾经那样须要在finally中显式close。

[html] view
plain
copy

  1. public void newTry() {
  2. try (FileOutputStream fos = new FileOutputStream("movies.txt");
  3. DataOutputStream dos = new DataOutputStream(fos)) {
  4. dos.writeUTF("Java 7 Block Buster");
  5. } catch (IOException e) {
  6. // log the exception
  7. }
  8. }

5.数值能够使用下划线分隔;

[html] view
plain
copy

  1. int million  =  1_000_000

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

  1. public void pathInfo() {
  2. Path path = Paths.get("c:\\Temp\\temp");
  3. System.out.println("Number of Nodes:" + path.getNameCount());
  4. System.out.println("File Name:" + path.getFileName());
  5. System.out.println("File Root:" + path.getRoot());
  6. System.out.println("File Parent:" + path.getParent());
  7. //这样写不会抛异常
  8. Files.deleteIfExists(path);
  9. }

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

[html] view
plain
copy

  1. /**
  2. * This initiates the police
  3. */
  4. private void init() {
  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 (IOException e) {
  11. System.out.println("IOException"+ e.getMessage());
  12. }
  13. }
  14. /**
  15. * The police will start making rounds
  16. */
  17. private void doRounds() {
  18. WatchKey key = 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("Event on " + event.context().toString() + " is " + kind);
  25. }
  26. } catch (InterruptedException e) {
  27. System.out.println("InterruptedException: "+e.getMessage());
  28. }
  29. boolean reset = key.reset();
  30. if(!reset)
  31. break;
  32. }
  33. }

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

[html] view
plain
copy

  1. ForkJoinPool pool = new ForkJoinPool(numberOfProcessors);
  2. public class MyBigProblemTask extends RecursiveAction {
  3. @Override
  4. protected void compute() {
  5. . . . // your problem invocation goes here
  6. }
  7. }
  8. pool.invoke(task);

9.另一些动态特性的增加。

java.lang.invoke 包的引入。

MethodHandleCallSite 另一些其它类供使用。

详细參见原文 http://radar.oreilly.com/2011/09/java7-features.html

很多其它内容。大家可參考:

Java 7 的新特性一览表

Java7的那些新特性的更多相关文章

  1. java7和java8新特性

    以下来至网址: http://blog.csdn.net/samjustin1/article/details/52268004 Java7 新特性 1.switch中可以使用字符串了 String ...

  2. Java 5/Java 6/Java7/Java 8新特性收集

    前言: Java 8对应的JDK版本为JDK8,而官网下载回来安装的时候,文件夹上写的是JDK1.8,同一个意思.(而这个版本命名也是有规律的,以此类推) 一.Java 5 1.https://seg ...

  3. Java7的异常处理新特性-addSuppressed()方法等

    开发人员对异常处理的try-catch-finally语句块都比较熟悉.如果在try语句块中抛出了异常,在控制权转移到调用栈上一层代码之前,finally语句块中的语句也会执行.但是finally语句 ...

  4. Java Java7处理异常新特性

  5. java5、java6、java7、java8的新特性

    Java5: 1.泛型 Generics:        引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数 ...

  6. java7新特性 java8新特性

    Java 7 的7个新特性 Java7语法新特性 JAVA8 十大新特性详解 http://www.jb51.net/article/48304.htm

  7. Java7 新特性 数值文本表示法

    今天和大家分享下 java7中新特性-数值文本表示法 首先,在原来jdk1.6中 如果需要将一个二进制的数值转换成十进制的话,一般情况下都会以下面的代码方式去实现. public static voi ...

  8. java7 新特性 总结版

    Java7语法新特性: 前言,这是大部分的特性,但还有一些没有写进去,比如多核 并行计算的支持加强 fork join 框架:这方面并没有真正写过和了解.也就不写进来了. 1. switch中增加对S ...

  9. Java7的新特性

    原文出处:xixicat 序 本文主要讲Java7的新特性,相对于Java6而言,Java7增加了一些重要的特性,比如NIO2,不像Java6那么鸡肋,也算是一个重要的版本. 特性列表 suppres ...

随机推荐

  1. [Angular] ngx-formly (AKA angular-formly for Angular latest version)

    In our dynamic forms lessons we obviously didn’t account for all the various edge cases you might co ...

  2. Linux内核project导论——网络:Netfilter概览

    简单介绍 最早的内核包过滤机制是ipfwadm.后来是ipchains.再后来就是iptables/netfilter了. 再往后,也就是如今是nftables. 只是nftables与iptable ...

  3. NYOJ 145 聪明的小珂

    /* 题目大意:求解和输入数的互质的数 解题思路:求解和 n 互质的最大数.从n/2開始找 关键点:GCD函数的使用 解题人:lingnichong 解题时间:2014-10-04 16:11:55 ...

  4. Oracle回滚段的概念,用法和规划及问题的解决

    回滚段概述  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回 ...

  5. WCF:目录

    ylbtech-WCF:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech.c ...

  6. 几种AutoLayout自动布局所经常使用的布局约束类型

    width表示约束ui控件的固定宽度 height表示约束ui控件的固定高度 Leading Space to Superview 与父视图的左边界线保持固定距离 Trailing Space to ...

  7. 服务器未能识别http头soapaction的值

    公司真是坑的一比 ,连接PDA报出这个错误 网上找的解决方案: 加什么wsdl http://www.cnblogs.com/dengxinglin/archive/2012/05/02/247868 ...

  8. 在centOS 6.5下手动安装nginx1.9.x版本

    第一步:首先安装Nginx的依赖环境    1.安装pcre-devel   yum -y install pcre-devel  #支持正则的pcre模块 比如安装 不然手动安装会报错    2.安 ...

  9. 欢迎来到SQL学院

    给学习SQL的同学的福利@ http://sqlschool.modeanalytics.com/ 第一部分 学习SQL 本教程是专为那些想用数据回答问题的人们而设计的.从很大程度上讲,SQL是数据分 ...

  10. Route学习笔记

    前言 UrlRoutingModule.class:这块的代码关联了上一篇中路由部分的一个详细说明 一:Route的讲解 1. 路由模板匹配 添加路由: MapRoute 剔除的路由:IgnoreRo ...