目录

java8引入了哪些新特性1.Lamada表达式

1.Lamada表达式

2.接口默认方法和静态方法

3.引入了流Stream

4.可以重复注解

5.集合引入了很多parallel开头的并行操作的方法


简单记录一下java8有哪些新特性,这个是去年年末到短信子弹头面试的时候被问到过的,当时不会回答,这也算是一个考点。

java8引入了哪些新特性
1.Lamada表达式

2.接口默认方法和静态方法

3.引入了流Stream

4.可以重复注解

5.对方法的引用使用了::

6.支持并行(parallel)数组

7.使用Base64

1.Lamada表达式

lamada表达式用于替代匿名类的使用,这种匿名类一定要是那种实现接口对接口方法重新,这种接口只有一个方法的这种,这种接口也被称为函数接口,一般用()->{}  来代替匿名内部类。

public class LamadaStudy {@Testpublic void testLamada(){//普通写法new Thread(new Runnable() {@Overridepublic void run() {System.out.println("普通写法-------开启java8新特性的学习");}}).start();//lamada写法,带有打括号的new Thread(()->{System.out.println("lamada写法-------开启java8新特性的学习");}).start();//不带多括号的new Thread(()->System.out.println("去掉打括号-------开启java8新特性的学习")  //打括号只有一行代码的时候去掉大括号).start();//带有返回值的普通写法Integer[] intArr = {2,5,3,1,6,4,8};List<Integer> list = Arrays.asList(intArr);Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println("带有返回值的普通写法---------"+list.toString());//带扣返回值的lamada写法Collections.sort(list,(int1,int2)->{return int1-int2;});System.out.println("带带扣返回值的lamada写法---------"+list.toString());//自己写一个函数接口  普通写法String meassage = LamadaStudy.goodgoodStudy("今天星期日,加油",new ISundayStudy(){@Overridepublic String lamadaStudy(String message){return message;}});System.out.println("字节手写普通的函数接口--------"+meassage);//lamada写法String messageTwo = LamadaStudy.goodgoodStudy("今天将java8的新特性学完",(message)->{return "加油"+message;});System.out.println("字节手写lamada表达式接口--------"+messageTwo);}
}
@FunctionalInterface
interface ISundayStudy{String lamadaStudy(String message);
}

2.接口默认方法和静态方法

interface IDefaultFunction{default void study(){System.out.println("什么时候能找到工作");}static void finJob(){System.out.println("开始找工作");}
}class DefaultFunction implements IDefaultFunction{}

Java 8用默认方法与静态方法这两个新概念来扩展接口的声明。默认方法与抽象方法不同之处在于抽象方法必须要求实现,但是默认方法则没有这个要求,就是接口可以有实现方法,而且不需要实现类去实现其方法。我们只需在方法名前面加个default关键字即可实现默认方法。为什么要有这个特性?以前当需要修改接口的时候,需要修改全部实现该接口的类。而引进的默认方法的目的是为了解决接口的修改与现有的实现不兼容的问题。

3.引入了流Stream

Stream可以链式书写代码,需要几行搞定的代码,Stream可以一行搞定,Stream是使用内部迭代,而且Stream支持并行操作

@Testpublic void streamTest(){List<Integer>list = new ArrayList<>();list.add(2);list.add(4);list.add(5);list.forEach(integer -> {System.out.println(integer);});System.out.println("=======分割线=========");List<Integer> list2 = list.stream().filter((i)-> i>2).collect(Collectors.toList());list2.forEach(i-> System.out.println(i));}

输出

2
4
5
=======分割线=========
4
5

filter:接受lamada表达式,从中截取一符合条件的元素
limit:截流limit(5),表示截取五个元素
skip(n):跳过元素,返回一个扔掉了前n个元素的流,若流中元素不足n个,则返回一个空流,与limit(n)互补
distinct:筛选,通过流所生成元素的hashCode()和equals()去除重复元素
map--接收Lambda,将元素转换成其他形式或提取信息

4.可以重复注解

@Repeatable注解

5.集合引入了很多parallel开头的并行操作的方法

特别是parallelSort,这个将排序拆分很多小的集合,运用多线程进行排序,最后合并,得到最终想要的结果。

参考文:

https://www.cnblogs.com/wuhenzhidu/p/10740091.html

https://blog.csdn.net/javazyw/article/details/82733459

https://blog.csdn.net/ZytheMoon/article/details/89715618

今天星期日在宿舍坐了一天,只有吃饭的时候才出去了一下,虽然现在周末和工作日对我来说没区别,但是对我以前是有区别的,想想当初有工作的时候,周末是怎么过的,现在的周末是怎么过的,当初工作也不是很忙,周末大把的时间,当极少拿来学习的,我想到了其中有很大一部分程序员他们平时周末就应该像我这样过的,我现在只是在追赶他们罢了,不是本来就知道的少,而是平时没有花时间去学,其实一个小的知识点花一天时间来学习就已经足够了,但是浪费了太多的光阴。
只能告诉自己:悟以往之不谏    知来者之可追

面试准备之java8的新特性相关推荐

  1. 学习笔记之-java8的新特性-函数式接口,lambda表达式,方法引用,Stream API,Optional类

    1.Lambda表达式 用匿名内部类的方法去创建多线程1.new Thread2.参数传递new Runnable3.重写run方法4.在run方法中去设置线程任务5.调用start问题:我们最终目标 ...

  2. java8的新特性_Java8的

    java8的新特性 Java8没有安排释放,直到2014年3月,但早期发行版本已经可用了一段时间. 一些最有趣的新功能是: 流 功能接口 默认方法 Lambdas Java时间 流 新的java.ut ...

  3. JAVA8的新特性之Stream

    JAVA8的新特性之Stream 1.概述: 在jdk1.8中,提供了一个Stream,可以对数据进行过滤 2.好处: 比不断自定义循环,要简单很多 Stream类型数据的获取 1.Collectio ...

  4. JAVA8的新特性之函数式接口

    JAVA8的新特性之函数式接口 1.Lambda表达式使用的前提,就是接口必须是一个函数式接口 2.定义 在接口中,只有一个抽象方法 3.检查是否是函数式接口用的注解 @FunctionalInter ...

  5. java8:新特性及Lamber表达式语法及四大函数接口

    java8:新特性及Lamber表达式 如果左侧只有一个参数可以省略括号,如果右侧只有一个表达式可以省略括号 如果左侧有一个参数也可以添加括号,可以不写参数类型,有类型推断 如果右侧有返回值,一个表达 ...

  6. 对于Java8的新特性,应该了解(掌握)的哪些

    Java8的新特性 一.Lambda表达式 基本的使用方式 Lambda表达式的使用:6种情况 语法格式一:无参,无返回值 语法格式二:Lambda表达式需要一个参数,但是没有返回值 语法格式三:数据 ...

  7. 深圳Java培训学习:Java8.0新特性之Lambda表达式--【千锋】

    深圳Java培训学习:Java8.0新特性之Lambda表达式–[千锋] 前言 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.本篇文章,主要给大家介绍的是lambda表 ...

  8. Java8部分新特性介绍

    研究过一些技术论坛,总结出来Java8的一些新的特性,其中我印象最深的就是 lambda表达式,让我们代码变得简洁,可读性高. 一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现, ...

  9. 春招面试阿里,面试官让我说说Java8的新特性

    文章目录 一.Lambda表达式和函数式接口 二.接口的默认方法和静态方法 三.方法引用 四.重复注解 五.更好的类型推断 六.拓宽注解的应用场景 七.Optional 八.Streams 九.Dat ...

  10. 面试总结之[JDK1.8新特性]

    这几天面试中,问到JDK的基本都会问到有关JDK1.8的新特性,基于这点,自己简单总结了下; 看到网上有个人总结了这样一句话,感觉比较通俗易懂; 速度更快 – 红黑树 代码更少 – Lambda 强大 ...

最新文章

  1. IPCC气候变暖最新报告:不要眼见,要“远见”
  2. 正则替换文章图片路径,并跳过远程连接的图片
  3. CRM呼叫中心异步搜索实现的调试截图
  4. Silverlight Blend动画设计系列
  5. java 1.8.0 安全_RedHat安全更新修复OpenJDK1.8.0版本漏洞
  6. 个人品牌遇到危机怎么办?
  7. 阿里云php-7.2.12 安装
  8. 基础训练(六~十)题解
  9. Introduction to Latent Dirichlet Allocation
  10. 邹检验 matlab,科学网—Matlab中一个很有用的函数:regionprops - 邹兴文的博文
  11. tablelayout高度问题
  12. javafx button按钮分组突出选中按钮(ToggleButton)
  13. html盒子颜色代码,css盒子(示例代码)
  14. S2B2C模式有何优势?S2B2C电商系统赋能皮革企业渠道,提升供应链管理效率
  15. 从 Flask-RESTful 到 Flask-RESTPlus 再到 Flask-RESTX
  16. 网页设计的步骤和标准都有哪些?
  17. 高德离线数据api_高德地图Android API发布V1.0.4版本,增加离线地图功能
  18. think.php教程,Thinkphp_thinkphp教程_自学php网
  19. linux压缩包解压
  20. 打印水果价格表(python)

热门文章

  1. uni-swipe-action失效?
  2. 带看门狗的PMOS缓启电路
  3. python导出excel文件数字签名_如何使用带有etoken(笔驱动器)的Python对PDF文档进行数字签名?...
  4. DeFi 2.0的LaaS协议,重振DeFi赛道发展的关键
  5. TOP100summit2017:微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增
  6. Activiti 设置工作代理人
  7. 华为实验-关于不同vlan之间的互通 混合实验
  8. vPro平台再进化:专为商务而生,助力企业数字化大时代
  9. 操作系统-文件读写过程
  10. Java大学生特训营 疫情地图项目实战课