`
飘零羽
  • 浏览: 26705 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

java7新特性

    博客分类:
  • java
阅读更多
  1. 1,菱形语法(泛型实例化类型自动推断)
  2. List<String> list = new ArrayList<>(); // <>这个真的很像菱形
  3. 2,在目前版本中,不可具体化的泛型(任意类型)可变参数,在编译时,会在调用处产生警告,JDK7里将这个警告挪到了方法定义处。
  4. 变化前:
  5. static <T> List<T> asList(T... elements) { ... }
  6. static List<Callable<String>> stringFactories() {
  7. Callable<String> a, b, c;
  8. ...
  9. // 警告处
  10. return asList(a, b, c);
  11. }
  12. static <T> List<T> asList(T... elements) { ... }
  13. static List<Callable<String>> stringFactories() {
  14. Callable<String> a, b, c;
  15. ...
  16. // 警告处
  17. return asList(a, b, c);
  18. }
  19. 变化后:
  20. // 警告处
  21. static <T> List<T> asList(T... elements) { ... }
  22. static List<Callable<String>> stringFactories() {
  23. Callable<String> a, b, c;
  24. ...
  25. return asList(a, b, c);
  26. }
  27. // 警告处
  28. static <T> List<T> asList(T... elements) { ... }
  29. static List<Callable<String>> stringFactories() {
  30. Callable<String> a, b, c;
  31. ...
  32. return asList(a, b, c);
  33. }
  34. 3switch现在可以支持字符串了
  35. String s = ...
  36. switch(s) {
  37. case "quux":
  38. processQuux(s); //没有break,继续往下
  39. case "foo":
  40. case "bar":
  41. processFooOrBar(s);
  42. break;
  43. case "baz":
  44. processBaz(s); //没有break,继续往下
  45. default:
  46. processDefault(s);
  47. break;
  48. }
  49. String s = ...
  50. switch(s) {
  51. case "quux":
  52. processQuux(s); //没有break,继续往下
  53. case "foo":
  54. case "bar":
  55. processFooOrBar(s);
  56. break;
  57. case "baz":
  58. processBaz(s); //没有break,继续往下
  59. default:
  60. processDefault(s);
  61. break;
  62. }
  63. 4,支持二进制语法和单位级别的数字表示方式
  64. // 8位byte
  65. byte aByte = (byte)0b00100001;
  66. // 16位short
  67. short aShort = (short)0b1010000101000101;
  68. // 32位int
  69. int anInt1 = 0b10100001010001011010000101000101;
  70. // 8位byte
  71. byte aByte = (byte)0b00100001;
  72. // 16位short
  73. short aShort = (short)0b1010000101000101;
  74. // 32位int
  75. int anInt1 = 0b10100001010001011010000101000101;
  76. 支持单位级别的数字,提高可读性
  77. long underScores = 9_223_372_036_854_775_807L; // 每三位加一下划线,等同于 9,223,372,036,854,775,807
  78. long underScores = 9_223_372_036_854_775_807L; // 每三位加一下划线,等同于 9,223,372,036,854,775,807
  79. 5,从语法层面上支持集合,不再是数组的专利。
  80. final List<Integer> piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];
  81. final Set<Integer> primes = { 2, 7, 31, 127, 8191, 131071, 524287 };
  82. final Map<Integer, String> platonicSolids = { 4 : "tetrahedron",
  83. 6 : "cube", 8 : "octahedron", 12 : "dodecahedron", 20 : "icosahedron"
  84. };
  85. final List<Integer> piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];
  86. final Set<Integer> primes = { 2, 7, 31, 127, 8191, 131071, 524287 };
  87. final Map<Integer, String> platonicSolids = { 4 : "tetrahedron",
  88. 6 : "cube", 8 : "octahedron", 12 : "dodecahedron", 20 : "icosahedron"
  89. };
  90. 6,JSR 292 动态类型语言支持
  91. Dynamic x = (动态语言脚本);
  92. Object y = x.foo("ABC").bar(42).baz();
  93. Dynamic x = (动态语言脚本);
  94. Object y = x.foo("ABC").bar(42).baz();
  95. 7,动态资源管理
  96. 在目前版本的java中,当你操作流时,一定会加try..finally以保证出现异常时,流能被正确关闭。
  97. BufferedReader br = new BufferedReader(new FileReader(path));
  98. try {
  99. return br.readLine();
  100. } finally {
  101. br.close();
  102. }
  103. BufferedReader br = new BufferedReader(new FileReader(path));
  104. try {
  105. return br.readLine();
  106. } finally {
  107. br.close();
  108. }
  109. 在JDK7里,你只需要将资源定义在try()里,Java7就会在readLine抛异常时,自动关闭资源。另外,资源类必须实现 Disposable<?> 接口。支持管理多个资源
  110. try (BufferedReader br = new BufferedReader(new FileReader(path)) {
  111. return br.readLine();
  112. }
分享到:
评论

相关推荐

    JAVA 7新特性1

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

    Java7新特性中文介绍

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

    java7新特性与java高级编程

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

    java7新特性功能表

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

    JAVA7新特性透明窗体代码

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

    JAVA7新特性介绍(官方公布)中文版[参照].pdf

    Java 7是Java平台标准版的一个重要更新,它引入了一系列的新特性和改进,旨在提高开发者的效率、增强程序性能以及扩展平台的可用性。以下是Java 7的一些关键新特性: 1. **Nimbus Look & Feel**: Java 7引入了...

    Java7的新特性

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

    完整版 Java开发实训课程系列-Java高级应用编程 第6章 Java7新特性(共16页).ppt

    Java 7是一个重要的Java开发版本,它引入了许多新特性,以提高开发效率和代码的可读性。在本章中,我们将重点讨论以下几个关键特性: 1. **数值常量对下划线支持**:Java 7允许在数值常量中使用下划线`_`来分隔数字...

    深入理解JVM内幕:从基本结构到Java 7新特性

    本文将深入探讨JVM的基本结构、执行流程,以及Java 7的新特性。 首先,JVM由Java API和JRE组成,其中JVM的主要职责是通过类加载器(Class Loader)加载Java程序,并根据Java API来执行这些程序。JVM的设计是基于栈...

    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引入了...

    java 7 jre windows

    以下是一些主要的Java 7新特性: 1. **多语言支持(钻石操作符)**:Java 7引入了类型推断,使得创建带泛型的匿名内部类或使用构造函数时,可以省略类型参数,如`List&lt;String&gt; list = new ArrayList();` 2. **尝试...

    JAVA8新特性讲解

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

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

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

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

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

    java9新特性大全详解

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

Global site tag (gtag.js) - Google Analytics