`
wuhoujian322
  • 浏览: 65451 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java8新特性

阅读更多

1、新增接口的默认方法,使用default关键字

接口可以有实现方法,并且不需要实现类去实现其方法。

 

package com.test.java8;

 

public interface Formula {

double calculate(int num);

 

//Java8新增,接口的默认方法

default double sqrt(int num){

return Math.sqrt(num);

}

}

 

package com.test.java8;

 

public class FormulaTest {

public static void main(String[] args){

Formula formula = new Formula() {

 

//仅仅实现接口Formula定义中未实现的接口

@Override

public double calculate(int num) {

//使用default关键字的方法直接使用

return sqrt(num * 100);

}

};

 

System.out.println("The result of calculate is :" + formula.calculate(100));

System.out.println("The result of sqrt is :" + formula.sqrt(25));

}

}

 

2、Lambda表达式

给我的第一感觉是使用了Lambda表达式之后,代码变得更加简洁;另一方面,编码习惯完全被改变。线面看几行简单的代码。

package com.test.java8;

 

import java.util.Arrays;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

 

public class LambdaTest {

public static void main(String[] args){

//老版本Java

List<String> nameList = Arrays.asList("test1","test3","test2");

Collections.sort(nameList, new Comparator<String>() {

 

@Override

public int compare(String obj1, String obj2) {

return obj2.compareTo(obj1);

}

});

 

//新版本Java8更加简洁

Collections.sort(nameList, (String name1,String name2) -> {

return name2.compareTo(name1);

});

Collections.sort(nameList, (String name1,String name2) -> name2.compareTo(name1));

Collections.sort(nameList,(name1,name2) -> name2.compareTo(name1));

 

nameList.forEach((name) -> System.out.println("username:" + name));

}

}

 

3、方法引用

package com.ali.test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
/**
 * Created by hjwue on 2016/11/24.
 */
public class MethodReferenceTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.setVisible(true);
JButton btn1 = new JButton("点我");
JButton btn2 = new JButton("也点我");
frame.getContentPane().add(btn1);
frame.getContentPane().add(btn2);
//使用Lambda表达式方式
btn1.addActionListener(e -> {
            System.out.println("这里是Lambda实现方式");
});
//使用方法引用方法
btn2.addActionListener(MethodReferenceTest::doSomething);
}

    public static void doSomething(ActionEvent e){
        System.out.println("这里是方法引用实现方式");
}
}

 

0
0
分享到:
评论

相关推荐

    java8新特性

    本视频为java8新特性,百度云链接和密码,永久有效,失效联系我

    Java8 新特性

    Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。

    java8新特性-最新

    在Java 8中,最重要的两个新特性无疑是Lambda表达式和Stream API。这两个特性都与函数式编程思想密切相关,让Java开发者能够更加灵活地处理数据。 ### Lambda表达式 Lambda表达式是Java 8中最显著的新特性之一,它...

    尚硅谷Java8新特性下载

    根据提供的文件信息,我们可以深入探讨Java 8的新特性。这些特性极大地提高了Java语言的功能性和效率,使得开发人员能够编写更加简洁、高效的代码。 ### Java 8 新特性概述 #### Lambda 表达式 Lambda表达式是Java...

    尚硅谷Java8新特性视频教程

    尚硅谷Java视频Java8新特性视频教程尚硅谷Java视频Java8新特性视频教程尚硅谷Java视频Java8新特性视频教程

    JAVA8新特性讲解

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新特性,极大地提升了开发效率和代码质量。以下是关于Java 8新特性的详细讲解: ...通过观看“Java8 新特性视频教程”,你可以深入理解并熟练运用这些特性。

    bcompare反编译java8新特性文件插件

    现有becompare3/4对于java8 新特性lamda表达式文件无法反编译进行数据比对,此插件可解决此问题。

    基于java8新特性+反射机制实现list不同实体类互转.zip

    这个压缩包文件“基于java8新特性+反射机制实现list不同实体类互转.zip”提供了一种解决方案,它利用了Java 8的新特性和反射机制来实现这种转换,并将这个功能封装为一个工具类。 首先,Java 8引入了许多新特性,...

    Java 8 新特性 ---- 代码

    Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 ...

    《Java8新特性学习教程》-(Java8指南)带您玩转Java8!!!.zip

    《Java8新特性学习教程》-(Java8指南)带您玩转Java8!!!Java8 新功能教程本教程翻译整理自https://github.com/winterbe/java8-tutorial★★★如果本教程对您有帮助,星一下吧,您还可以访问 《Java8新特性指导...

    java8新特性-1-函数式编程.pptx

    java8新特性-1-函数式编程.pptxjava8新特性-1-函数式编程.pptx

Global site tag (gtag.js) - Google Analytics