Java 8 的主要新特性

1. Lambda 表达式

Lambda 允许把函数作为一个方法的参数传递进方法中。

作用:解决 Java 被诟病的匿名内部类的问题。

2. 接口中可增加了默认方法

作用:在接口中也可以有实现方法了。

3. HashMap 底层数据结构的变化

java 8 之前,HashMap 底层的数据结构是数组+链表实现的, Java 8 之后是数组+链表+红黑树实现的,当链表的长度超过 8 之后,会转换成红黑树。

作用:解决因哈希冲突导致的链表过长,查询效率低的问题。

4. Stream API

新添加 Stream API (java.util.stream),把真正函数式编程的风格引入 Java。

5. 提供一个新的 JavaScript 引擎

Java 8 提供了一个新的 Nashorn JavaScript 引擎,它允许在 JVM 上运行特定的 JavaScript 应用。

作用:解决日益增长的 Java 跟 JS 交互混合的需求。

Java 9 新特性

1. 模块系统

模块是一个包的容器,Java 9 最大的变化之一是引入模块系统。(Jigsaw 项目)

作用:解决大型项目模块化开发的需求。

2. 支持 HTTP/2 标准

HTTP/2 标准是 HTTP 协议的最新版本,新的 HTTPClient API 支持 Websocket 和 HTTP2 流以及服务器推送特性。

3. 提供创建不可变集合的静态工厂方法

List、Set、Map 接口中,提供新的静态工厂方法直接创建不可变的集合实例。

作用:创建不可变集合更方便,一行代码就搞定,节省了开销。

4. 私有接口方法

在接口中也允许编写 private 修饰的私有方法了。

作用:增强了接口的功能,提高了可扩展性。

5. 轻量级的 JSON API

内置了一个轻量级的 JSON API。

6. 引入响应式流 API

Java 9 引入了新的响应式流 API。

作用:支持响应式编程的需求。

Java8 和 Java9 的主要新特性相关推荐

  1. 聊聊 Java8 以后各个版本的新特性

    [这是 ZY 第 11 篇原创技术文章] 某天在网上闲逛,突然看到有篇介绍 Java 11 新特性的文章,顿时心里一惊,毕竟我对于 Java 的版本认识还停留在 Java 8 上,而日常使用的语法和 ...

  2. java9特性_96.java基础10(java9/10/11新特性)

    126.java 9 新特性1(模块化功能): 1.java模块化 2.java 交互式环境jshell 3.泛型 package com.atguigu.java; import org.junit ...

  3. java8 stream 做累加_Java8新特性之Stream(上)|乐字节

    上次给大家介绍了Java8新特性之方法引用,大家可以点击回顾下.接下来小乐继续给大家带来Java8新特性之Stream ,流是Java8最重要的内容,小乐准备分上下两部分介绍,今天是上部. 5.1.什 ...

  4. java8 lambda map排序_Java8新特性第3章(Stream API)

    转载请注明出处:https://zhuanlan.zhihu.com/p/20540202 Stream作为Java8的新特性之一,他与Java IO包中的InputStream和OutputStre ...

  5. java8,java9和java11的特性和区别!

    java 8的主要特性 1. Lambda 表达式 Lambda 允许把函数作为一个方法的参数传递进方法中. 作用:解决 Java 被诟病的匿名内部类的问题. 2. 接口中可增加了默认方法 作用:在接 ...

  6. 干货 | Java8的几个实用新特性教程分享给你

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看 文章来 ...

  7. java8 collect 类型转换_Java 8 新特性 Stream类的collect方法

    1.Collectors.toList():转换成List集合./ Collectors.toSet():转换成set集合. System.out.println(Stream.of("a& ...

  8. 【16章Java 9 10 11新特性】Java9 Java10 Java11新特性

    ❤写在前面 ❤博客主页:努力的小鳴人 ❤系列专栏:JavaSE超详总结

  9. Java8 ~ Java17 新特性

    Java 8 主要特性: Lambda, 函数式接口,方法引用,Optional, Stream的引入 接口默认方法,重复注解,日期API, Base64支持 Lambda和函数式接口 函数式接口就是 ...

最新文章

  1. Python + wordcloud + jieba 十分钟学会生成中文词云
  2. SAP Spartacus 产品明细页面的 url 设计和数据源
  3. 去水印+外卖cps小程序源码+视频搭建教程
  4. 改善深层神经网络:超参数调整、正则化以及优化——2.2 理解Mini-batch梯度下降法
  5. TensorFlow入门--实现多层感知机
  6. 蓝桥杯 单点最短路径问题
  7. 彪悍语录系列(摘于网络)
  8. iproute2 对决 net-tools
  9. Spring Roo 之 Mysql 连接
  10. gcc编译器参数使用及解决
  11. python模拟超市抹零_Python基础练习二超市存包柜模拟
  12. 更新cuda驱动10.0==>11.2
  13. 摄像头相关控制器集合
  14. c语言代码怎样制作成一个游戏?
  15. SQL中将年月日, DATE_FORMAT()格式转换指定格式
  16. 物联网通信技术原理第3章 近距离无线通信技术
  17. JavaSE_笔试题_判断题1
  18. Unity笔记——FairyGUI
  19. C# winfrom中Flash播放使用axShockwaveFlash控件设置透明XP出现白色背景解决办法,仿QQ魔法表情效果...
  20. 计算机股票分析报告,投资者分析股票市场报告和财务仪表板与商业智能 (Bi), 与关键绩效指标 (Kpi). 生意人手在大屏幕计算机上处理财务计划....

热门文章

  1. 放开那个水果!让我来!使用飞桨高层API轻松实现智能果蔬分类系统
  2. Drupal 7.32 “Drupalgeddon” SQL注入漏洞(CVE-2014-3704)
  3. 使用element-plus插件icon组件SVG 图标不显示解决方案
  4. Jmeter接口自动化总结
  5. Oracle 10g rac + ASM数据迁移(替换ASM中的磁盘,用新存储替换旧存储)
  6. git: refusing to delete the current branch
  7. 6s模型c语言,6S模型.doc
  8. es6的bable安装
  9. C++ STL编译报错:error: error passing 'const' as 'this' argument
  10. Gin验证请求参数-自定义验证规则