JDK 高版本的新特性

  1、JDK5的新特性:

    自动拆装箱

      见Integer部分笔记
    泛型
    增强for循环
    静态导入
    可变参数

      见集合部分笔记

    枚举
        是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。
      回想单例设计模式:单例类是一个类只有一个实例
        那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例。这才能是枚举类。
    
    我们自己定义枚举类比较麻烦,所以,java就提供了枚举类供我们使用。

    格式是:只有枚举项的枚举类

        public enum 枚举类名 {
              枚举项1,枚举项2,枚举项3…;
        }

    注意事项:

      定义枚举类要用关键字enum

      所有枚举类都是Enum的子类

      枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,
      这个分号就不能省略。建议不要省略

      枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);

      枚举类也可以有抽象方法,但是枚举项必须重写该方法

      枚举在switch语句中的使用

    常用方法:
          int compareTo(E o)

          String name()

          int ordinal()

          String toString()

          <T> T valueOf(Class<T> type,String name)

          values()
            此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便

2、JDK6的新特性: 比较少见。这里不做笔记。

3、JDK7的新特性:

    1、二进制字面量:

        JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,
        可以使代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B
          举例:
            int x = ob110110

   2、数字字面量可以出现下划线:

        为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样。JDK7提供了_对数据分隔。
          举例:
            int x = 100_1000;
          注意事项:
            不能出现在进制标识和数值之间
            不能出现在数值开头和结尾
            不能出现在小数点旁边

   3、switch 语句可以用字符串

   4、泛型简化

        泛型简化
          在建立新的对象时,右边可以根据左边自行推断泛型类型。
            ListArray<String> la = new ListArray<>();

   5、异常的多个catch合并

        catch(Exception1 | Exception2 .. e): 各个Exception之间必须是平级的。

   6、try-with-resources 语句

        格式:
          try(必须是java.lang.AutoCloseable的子类对象){…}

          小括号中就是需要关闭的对象。

        如:
          try(FileReader fr = new FileReader(a.txt);
            FielWriter fw = new FileWriter(b.txt);)
          {
            char [] buf = new char[1024];
            int i = fr.read(buf);
            fw.write(buf,0,i);
          }

        好处:
            资源自动释放,不需要close()了
            把需要关闭资源的部分都定义在这里就ok了
            主要是流体系的对象是这个接口的子类(看JDK7的API)

JDK8,暂时不介绍

JDK几个高版本的新特性的更多相关文章

  1. JDK各个版本的新特性jdk1.5-jdk8

    JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...

  2. JDK各个版本的新特性jdk1.5-jdk8[转]

    JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...

  3. JDK各个版本的新特性jdk1.5-jdk8(转)

    原文:http://www.cnblogs.com/langtianya/p/3757993.html JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要 ...

  4. atitit.js 各版本 and 新特性跟浏览器支持报告

    atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...

  5. (数据科学学习手札129)geopandas 0.10版本重要新特性一览

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...

  6. (数据科学学习手札139)geopandas 0.11版本重要新特性一览

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,geopandas ...

  7. JDK 1.7版本的 新特性

    摘自: http://yanguz123.iteye.com/blog/1934766 Jdk1.7的新特性: 1,switch中可以使用字串 Java代码: String s = "tes ...

  8. jdk各个版本的新特性(jdk1.7,1.8,1.9)

    用了这么久的jdk,应该会有很多人和我一样,不知道各个版本的jdk的一些新特性,这里简单总结一下.. jdk1.7新特性: 1.在Switch中可以用String字符串 2.对Java集合(Colle ...

  9. JDK各个版本的新特性

    对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JD ...

随机推荐

  1. StringBuilder与String有哪些区别?

    System.String具备不可修改性,在程序中这样的特性容易产生性能上的问题.针对这个问题.NET提供的StringBuilder类可以解决类似的问题. String 和 StringBuilde ...

  2. Lodop打印控件指定打印任务某几页

    使用Lodop打印控件进行打印开发,有时候一个任务里有多页,例如各种合同之类的,客户端用户在使用过程中,可能有某一页打印后发现需要修改,这时候不必再把整个任务重新打印一遍,只需要打印需要修改的那页重新 ...

  3. Windows 访问 CentOS 7 共享文件夹 Samba 配置

    Windows 使用用户名.密码访问 CentOS 7 共享文件夹 执行命令,查看 Windows 工作组:net config workstation 执行命令,安装 Samba:yum insta ...

  4. Spring 使用介绍(六)—— AOP(二)

    一.切入点语法 1)通配符 AOP支持的通配符: *:匹配任何数量字符 ..:匹配任何数量字符的重复,在类型模式中匹配任何数量子包,在方法参数模式中匹配任何数量参数 +:匹配指定类型的子类型,仅能作为 ...

  5. ContOS 常用命令

    文件与目录操作 命令 解析 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在目录 cp file1 file2 将fi ...

  6. HDU4651 Partition 【多项式求逆】

    题目分析: 这题的做法是一个叫做五边形数定理的东西,我不会. 我们不难发现第$n$项的答案其实是: $$\prod_{i=1}^{\infty}\frac{1}{1-x^i}$$ 我们要对底下的东西求 ...

  7. robotframework中RIDE的下载及安装

    1.首先说一下我当前的环境配置 win10系统64位 python3.6.5,已配置环境变量 2.安装RIDE前需要安装的依赖包(使用pip就可以直接安装) 首先必须有robotframework这就 ...

  8. 【XSY2732】Decalcomania 可持久化线段树 分治

    题目描述 有一个陶瓷瓶周围有\(n\)个可以印花的位置.第\(i\)个与第\(i+1\)个位置之间的距离为\(d_i\),在第\(i\)个位置印图案要\(t_i\)秒. 机器刚开始在\(0\)号位置, ...

  9. 【XSY1162】鬼计之夜 最短路

    题目描述 给你一个\(n\)个点\(m\)条边的有向图,有\(k\)个关键点.求一条最短的从一个关键点到另一个关键点的路径. \(n,m,k\leq 100000\) 题解 跑\(k^2\)次最短路显 ...

  10. Leetcode 209.长度最小的子数组 By Python

    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...