您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

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

时间:2020-09-04 10:36:32  来源:  作者:
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 {}


Tags:Java   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  Tags: Java  点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Tags: Java  点击:(5)  评论:(0)  加入收藏
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === &#39;a&#39;) { b = true} else { b = false}// goodb = a === &#39;a&#39;2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Tags: Java  点击:(5)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  Tags: Java  点击:(10)  评论:(0)  加入收藏
传统游戏项目一般使用TCP协议进行通信,得益于它的稳定和可靠,不过在网络不稳定的情况下,会出现丢包严重。不过近期有不少基于UDP的应用层协议,声称对UDP的不可靠进行了改造,这意...【详细内容】
2021-12-23  Tags: Java  点击:(12)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  Tags: Java  点击:(11)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  Tags: Java  点击:(10)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  Tags: Java  点击:(14)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  Tags: Java  点击:(17)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  Tags: Java  点击:(19)  评论:(0)  加入收藏
▌简易百科推荐
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  CF07    Tags:Java   点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Java架构师之路    Tags:JAVA   点击:(5)  评论:(0)  加入收藏
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大 Java内存模型 垃圾回收机制 各种工具使用 ...【详细内容】
2021-12-23  小码匠和老码农    Tags:JVM调优   点击:(11)  评论:(0)  加入收藏
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  dingle    Tags:JDBC   点击:(12)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  JAVA小白    Tags:Java   点击:(10)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  小西学JAVA    Tags:JAVA并发   点击:(10)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  唯一浩哥    Tags:Java基础   点击:(14)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  软件老王    Tags:logback   点击:(17)  评论:(0)  加入收藏
本篇文章我们以AtomicInteger为例子,主要讲解下CAS(Compare And Swap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe对象。我们先从一个例子开始吧。假设现在我们...【详细内容】
2021-12-14  小西学JAVA    Tags:JAVA   点击:(21)  评论:(0)  加入收藏
一、概述观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察...【详细内容】
2021-12-13  唯一浩哥    Tags:Java   点击:(16)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条