java8新特性-总览

2023-11-18

转眼真正工作的时间也一年多了,说实话虽然老板对我是肯定的,但是我对自己还是很不满意所以学习吧骚年们。

Java8新特性

Java8算是java语言的一个大版本还是很有必要学习的,包括函数式编程,新的JavaScript引擎,新的日期API,新的StreamAPI等等。

新特性

  • Lambda表达式 -Lambda允许把函数作为一个方法的参数(函数作为参数传递到方法中)
  • 方法引用-方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
  • 默认方法-默认方法就是在一个接口里面有一个实现了的方法
  • 新的工具-新的编译工具如:Nashorn引擎,类依赖分析器jdeps。
  • Stream API-新添加的Stream API (java.util.stream)把真正的函数式编程引入到java中
  • DateTime API-加强对于日期和时间的管理
  • Optional 类-Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
  • Nashorn, JavaScript 引擎-Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

编程风格

Java8希望有自己的编程风格 ,并与Java7区分开,以下实例展示了java7和8的区别。

package com.company.java8.overview;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Java8 {
    public static void main(String[] args) {

        List<String> webs1 = new ArrayList<>();
        webs1.add("老张");
        webs1.add("老梁");
        webs1.add("老李");
        webs1.add("老刘");
        webs1.add("老王");

        List<String> webs2 = new ArrayList<>();
        webs2.add("老张");
        webs2.add("老梁");
        webs2.add("老李");
        webs2.add("老刘");
        webs2.add("老王");

        Java8 java8 = new Java8();

        System.out.println("java7语法");
        java8.sortUsingJava7(webs1);
        System.out.println(webs1);

        System.out.println("java8语法");
        java8.sortUsingJava8(webs2);
        System.out.println(webs2);



    }

    //使用java7排序
    private void sortUsingJava7(List<String> names){
        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
    }

    private void sortUsingJava8(List<String> names){
        Collections.sort(names,(o1, o2) -> o1.compareTo(o2));
    }

}

运行结果如下图所示:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java8新特性-总览 的相关文章

随机推荐

  • 解决在使用 Ant Design Vue组件库更改Modal对话框样式使用深度作用选择符不生效的问题

    项目场景 在使用 Ant Design Vue组件库更改Modal对话框样式使用深度作用选择符不生效 问题描述 Modal对话框官方样式如下图 现在要修改为下图所示样式 使用深度作用选择符样式没有生效 原因分析 因为modal是直接插入到b
  • 【SQL】10 SQL UPDATE 语句

    UPDATE 语句用于更新表中的记录 SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录 SQL UPDATE 语法 UPDATE table name SET column1 value1 column2 value2
  • Flink消费kafka出现空指针异常

    文章目录 出现场景 表现 问题 解决 tombstone Kafka中提供了一个墓碑消息 tombstone 的概念 如果一条消息的key不为null 但是其value为null 那么此消息就是墓碑消息 出现场景 双流join时 采用的是l
  • 此av非彼"AV"

    作者 王亨 R语言中文社区专栏作者 跟着菜鸟一起一步步学习R语言 争做R语言高手 个人公众号 跟着菜鸟一起学R语言 微信ID learn R 最近发现一个特别有意思的包 av 为什么有意思 首先名字有意思吧 其次这个包可以捕获图像 添加背景
  • 华为OD机试真题(Java),最小步骤数(100%通过+复盘思路)

    一 题目描述 一个正整数数组 设为nums 最大为100个成员 求从第一个成员开始正好走到数组最后一个成员所使用的最小步骤数 要求 第一步 必须从第一元素起 且 1 lt 第一步步长
  • Java企业微信开发_01_接收消息服务器配置

    一 准备阶段 需要准备事项 1 一个能在公网上访问的项目 见 Java微信公众平台开发01本地服务器映射外网 http www cnblogs com shirui p 7308856 html 2 一个企业微信账号 去注册 https w
  • 链式存储结构-----栈

    链式存储结构实现栈 上一节我们说了关于线性表的链式存储结构的实现 今天的栈也是建立在线性表的基础上 栈的特性 先进后出 1 删除时 出栈 我们考虑时间复杂度时发现 删除时的头删的复杂度为O 1 而尾删的时间复杂度为O n 故而我们出栈选择从
  • 【操作系统】键盘敲入字母时,操作系统期间发生了什么?

    操作系统 键盘敲入字母时 操作系统期间发生了什么 参考资料 键盘敲入 A 字母时 操作系统期间发生了什么 操作系统 浅谈 Linux 中的中断机制 文章目录 操作系统 键盘敲入字母时 操作系统期间发生了什么 设备控制器 I O 控制方式 设
  • html 自定义简单的时间轴 timeline 并与 table 图表和 echarts 进度甘特图联动

    1 需求 最近有需求需要实现 table 图表与 eharts 柱状图的联动 完整的效果图如下所示 这里时间轴要实现的效果要基本如下图所示 该时间轴并不是要实现选中单独的某一个月份并查看单月的数据 而是要将当前数据的时间跨度控制在时间轴的跨
  • uniapp 电商app支付倒计时处理

    电商app支付倒计时 所有电商app支付页面都是有倒计时的 一来可以促进消费 二来可以减少恶意减库存的问题发生 因为创建订单的时候 除了预售的商品外 实际销售的商品是需要减库存的 一般的电商app倒计时都是30分钟或者45分钟的 如果在此页
  • 带调速功能的arduino摇头避障小车

    一 材料同上篇文章 二 接线同上篇文章 L298N红板有两个使能端口ENA和ENB 这两个端口默认是有跳线帽的 也就是接5V的 此时输出就是HIGH或者LOW 摘掉跳线帽 将外边端口分别接arduino的PWM接口就好 本文接的是3和11
  • 3.[人脸识别] python-opencv 人脸特征采集与录入

    目录 1 环境 2 描述 3 代码 4 效果 1 环境 1 python 3 6 6 64bit 2 python packages 1 opencv python 3 4 1 15 2 opencv contrib python 4 4
  • 李沐动手学深度学习V2-微调练习

    1 继续提高finetune net的学习率 模型的准确性如何变化 原实验参数 lr 5e 5 batch size 128 num epochs 5 lr 5e 4 lr 5e 6 2 2 在比较实验中进一步调整finetune net和
  • 2018.5.21 . XMLSpy激活的方法

    127 0 0 1 altova com XMLspy 127 0 0 1 www altova com XMLspy 127 0 0 1 link altova com XMLspy 追加加到 C WINDOWS system32 dri
  • Python爬虫

    一 什么是代理 二 代理服务器的作用 可以进行请求的响应和转发 三 在爬虫中为何要使用代理 如果我们使用爬虫对一个网站在一段时间内发起一个高频请求 该网站会检测出这个异常的现象 并将异常的请求 IP 获取 将 IP 加入到黑名单 然后改 I
  • [无线通信基础-14]:图解移动通信技术与应用发展-2-第一代移动模拟通信大哥大

    前言 第一代移动通信主要采用的是模拟通信技术和频分多址 FDMA 技术 模拟通信 analog communication 是利用正弦波的幅度 频率或相位的变化 或者利用脉冲的幅度 宽度或位置变化来模拟原始信号 以达到通信的目的 故称为模拟
  • PyTorch中的符号索引和函数索引用法

    Pytorch中很多函数都采用的是函数式索引的思路 而且使用函数式索引对代码可读性会有很大提升 张量的符号索引 张量也是有序序列 我们可以根据每个元素在系统内的顺序位置 来找出特定的元素 也就是索引 一维张量的索引 一维张量索引与Pytho
  • 基于MATLAB的二进制数字调制与解调信号的仿真——2ASK

    实现二进制数字调制与解调信号的仿真是我的MATLAB课程设计的一部分 我参考了网上的一些资料 并加入了一些自己的想法 代码已在本地MATLAB编译通过且能正常运行 2ASK 二进制振幅键控 i 10 10个码元 j 5000 t linsp
  • java线程分析工具

    下载网站 IBM Thread and Monitor Dump Analyzer for Java TMDA 效果图
  • java8新特性-总览

    转眼真正工作的时间也一年多了 说实话虽然老板对我是肯定的 但是我对自己还是很不满意所以学习吧骚年们 Java8新特性 Java8算是java语言的一个大版本还是很有必要学习的 包括函数式编程 新的JavaScript引擎 新的日期API 新