• JDK几个高版本的新特性


    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,暂时不介绍

  • 相关阅读:
    (网页)html中页面传递参数不用cookie不用缓存,js方法搞定
    (网页)table加上分页,优点可随便加样式
    (后端)分页比较好的语句
    (后端)Spring手动回滚事务
    jquery 插件开发
    mysql 触发器
    mysql 存储过程
    YaHoo 前端优化军规
    html5 离线存储
    java 网络编程
  • 原文地址:https://www.cnblogs.com/soficircle/p/6771323.html
Copyright © 2020-2023  润新知