<返回更多

Java5,6,7,8的主要新特性归纳

2020-09-04    
加入收藏
Java5,6,7,8的主要新特性归纳

 

 

1.JAVA5新特性


1.1泛型Generics

//设置集合的传入传出类型,装入集合后会擦除类型,传入或传出不同类型会报错,保证数据类型的安全
List<Integer> nums = new ArrayList<Integer>();


1.2枚举类型
1.3自动装箱拆箱

例:
Integer i = 1;  //装箱,基本数据类型自动包装类型
int j = i;   //拆箱 ,包装类型自动转基本数据类型


1.4可变参数

例:
public void add(int... nums){ //3个点表示一种类型的数组
        int sum = 0;
        for (int i : nums){
            sum+=i;
        }
        System.out.println("总数 = " + sum);
 }


1.5Annotations
1.6加强for循环

例:List<User> users = new ArrayList<User>
for(User user :  Users){
  //遍历
}


1.7静态导入

import static java.lang.System.out;
public class Test {
    public static void main(String[] args) {
      //静态导入后,直接使用类的静态成员
        out.println("hello world");
    }
}


1.8JUC

2.Java6新特性


2.1JDBC4.0
变化不明显

3.Java7新特性


3.1 switch中可以使用字串了
3.2 泛型实例化类型自动推断

例:
List<String> tempList = new ArrayList<>(); 

3.3Try-with-resource语句

例:
try (BufferedReader br = new BufferedReader(new FileReader(path)) 
{      //实现资源的自动关闭
      return br.readLine();
}

3.4数字字面量下划线支持

例:int one_million = 1_000_000;

3.5 新增一些取环境信息的工具方法

例:
File System.getJavaIoTempDir() // IO临时文件夹 
File System.getJavaHomeDir() // JRE的安装目录 
File System.getUserHomeDir() // 当前用户目录 
File System.getUserDir() // 启动java进程时所在的目录

3.6 使用一个catch语言来处理多种异常类型

例:
public static void main (String[] args) throws Exception {
try {
...//用|分割
} catch (IOException | SQLException ex) {
throw ex;
}
}

3.7 支持将整数类型用二进制来表示,用0b开头。

例:
byte aByte = (byte) 0b00100001;
int anInt1 = 0b10100001010001011010000101000101;

 

4.1 接口的默认方法,只需要使用 default关键字即可

例子:
interface Formula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}}Formula formula = new Formula() {
@Override
public double calculate(int a) {
return sqrt(a * 100);
}};

4.2Lambda 表达式

例:
Collections.sort(names, (String a, Stringb) -> {
return b.compareTo(a);
});

4.3函数式接口

例:
//函数式接口
@FunctionalInterfaceinterface Converter<F, T> {Tconvert(F from);
}//定义具体实现
Converter<String, Integer> converter= (from) -> Integer.valueOf(from);
Integer converted =converter.convert("123");
System.out.println(converted);

4.4方法与构造函数引用

例:
//通过::来进行访问具体的方法
Converter<String, Integer> converter= Integer::valueOf;Integer converted =converter.convert("123");
System.out.println(converted); 

4.5全新Date API

例:
  // 当前日期yyyy-MM-dd
  LocalDate localDate = LocalDate.now();
 //当前时间
 LocalTime localTime = LocalTime.now();
// 当前日期时间
LocalDateTime localDateTime = LocalDateTime.now();

4.6多重Annotation 注解

例:
@interface Hints {Hint[] value();}//嵌套使用@Repeatable(Hints.class)@interface Hint {String value();}//具体使用@Hint("hint1")
@Hint("hint2")
class Person {}
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>