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("这里是方法引用实现方式"); } }
相关推荐
本视频为java8新特性,百度云链接和密码,永久有效,失效联系我
Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...
Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。
在Java 8中,最重要的两个新特性无疑是Lambda表达式和Stream API。这两个特性都与函数式编程思想密切相关,让Java开发者能够更加灵活地处理数据。 ### Lambda表达式 Lambda表达式是Java 8中最显著的新特性之一,它...
根据提供的文件信息,我们可以深入探讨Java 8的新特性。这些特性极大地提高了Java语言的功能性和效率,使得开发人员能够编写更加简洁、高效的代码。 ### Java 8 新特性概述 #### Lambda 表达式 Lambda表达式是Java...
尚硅谷Java视频Java8新特性视频教程尚硅谷Java视频Java8新特性视频教程尚硅谷Java视频Java8新特性视频教程
Java 8是Java语言发展的一个重要里程碑,引入了许多创新特性,极大地提升了开发效率和代码质量。以下是关于Java 8新特性的详细讲解: ...通过观看“Java8 新特性视频教程”,你可以深入理解并熟练运用这些特性。
这个压缩包文件“基于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 ...
java8新特性-1-函数式编程.pptxjava8新特性-1-函数式编程.pptx
但是我们实际开发中真正用到的新特性并不多,大多数人也仅仅用用lambda,而对于其他的特性,比如:多重注解、Date API、函数式接口等等并没有使用起来,本资源包含作者的学习java8新特性的笔记,笔记中有讲解和代码...