Java零基础入门-java8新特性(完结篇)

一、概述

       ​上几期,我们是完整的学完了java异常类的学习及实战演示、以及学习了线程进程等基础概念,而这一期,我们要来玩点好的东西,那就是java8,我们都知道java8是自2004年发布java5之后最重要且一次重大的版本更新,虽然我们的JDK环境 也升级到了java1.8,但是在日常的开发过程中,使用最多的编程风格还是停留在 JDK1.7版本。

那对于java1.8,你们有了解多少它相关的新特性呢?至于java8,于2013年9月正式发布,距离至今已快十年载了,想必大家对它的新特性大大小小也耳濡目染了些吧?那么趁着今天这个空闲日子,我就跟大家一起来聊聊它-java8之新特性。

二、本期教学目标

  • java8有哪些新特性
  • 什么是函数式接口
  • 什么是Lambda表达式
  • 掌握Stream Api
  • Stream和Collect集合区别
  • Stream创建方式
  • Stream操作三步骤
  • 接口的默认方法与静态方法
  • 新时间日期API

三、正文

1️⃣java8新特性

2️⃣什么是Lambda表达式

       1️⃣可选类型声明

       2️⃣可选的参数圆括号

       3️⃣可选的大括号

       4️⃣可选的返回关键字

... ...

       以上第1、2点内容,我是总结到了该篇《java零基础入门-java8新特性(上篇)》,需要的小伙伴可以去传送门直接去。

3️⃣什么是函数式接口

        总而言之:函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。

4️⃣掌握Stream Api

        总而言之,何为Stream流,Stream是Java8中处理集合的关键抽象概念,它可以指定你对集合进行一些处理操作,比如对集合进行非常复杂的查找、过滤和映射数据等操作。

... ...

       以上第3、4点内容,我是总结到了该篇《java零基础入门-java8新特性(中篇)》。需要的小伙伴可以去传送门直接去。

5️⃣Stream和Collections区别

... ...

6️⃣Stream创建方式

... ...

       以上第5、6点内容,我是总结到了该篇《java零基础入门-java8新特性(下篇)》。需要的小伙伴可以去传送门直接去。

7️⃣接口的默认方法与静态方法

        上述已经讲了java8新特性的其中三种,具体如下:

  • stream api
  • lambda表达式
  • 函数式接口

        接下来我还要给大家讲解两种,也是java8新特性中比较主要的,这些都是需要大家掌握并且能讲得出,特别是能在实战中用起来不费劲,你接触过,你才能懂,要不然真的会遭鄙视的,相信我,这些虽然在老项目中,很多大佬都不咋用,但是对于目前的新项目,开篇可能都是运用的java8的新特性。

        所以我这期还得给你们讲完,接口的默认方法与静态方法,及新时间日期api这两点,对于java8的新特性,就差不多讲完全了。

        说起java8之接口默认方法与静态方法,这究竟是怎么一回事呢?我们都知道,在java8之前啊,我们定义一个接口,比如我们要给一个接口添加新的方法,我们就得在接口上新增,然后这时如果有已经实现该接口的类,都要一一实现该新增的方法,就非常的不灵活。而java8的出现就改变了这一点,在给接口定义新方法的同时就不影响到已经实现的类,它不强制实现类去重写接口的所有方法。

        所以好处就是大程度的解决了这种接口修改与已有实现类不兼容的问题。比如我在已有接口中添加一个新方法,默认修饰符用default关键字来修饰。

        比如如下我在UserService中添加一个printStr()方法。

        而我在实现类中,完全不需要去重写该printStr()方法,我可以直接通过该接口类.super.方法()即可。

        而对于java8中提到的静态方法,其实在写法上就是将默认方法的default关键字换成static关键字即可。

比如我如下我定义一个静态方法。

    static void printStr1(){
        System.out.println("我是bug菌2!");
    }

然后要调用的就是直接用类名点方法即可。 

         总而言之,对于默认方法的使用相对还是比较简单的,比较实用。

8️⃣新时间日期API

        接下来就是对于java8提供的新时间日期api,看过我文章的小伙伴都知道,我在早起是有教学过这些时间日期日历相关的api类的,比如Date类、Format类、SimpleDateFormat类、Calendar类。这些都是处理时间日期的一些类。

        但是今天我要教的是java8新提供的api,那到底有哪些呢?LocalDate、 LocalTime、 LocalDateTime,这些,是我总结出来的比较重要的类,其中它们的实例都是不可变的对象。;别表示使用 ISO-8601日历系统的日期、时间、日期和时间。对于这三个类,它们提供了简单的本地日期或时间。

如下是具体的总结:

  • LocalDate:代表IOS时间格式(yyyy-MM-dd),可以存储出生日期、纪念日等日期。
  • LocalTime:表示一个时间(而不是日期)。
  • LocalDateTime:是用来表示日期和时间的, 这是一个最常用的类之一。

接下来,我就具体给大家使用演示一下吧。这样结合实例你们能看的更明白些;

LocalDate类

        表示的是一个yyyy-MM-dd 时间格式的时间。

演示代码如下:

    @Test
    public void testLocalDate(){

        LocalDate now = LocalDate.now();

        System.out.println(now);
    }

运行结果截图如下:

 LocalTime类

        LocalTime类是表示一个时间。

演示代码如下: 

    @Test
    public void testLocalTime(){

        LocalTime now = LocalTime.now();

        System.out.println(now);
    }

运行结果截图如下:

 LocalDateTime类

        表示的是日期和时间结合的时间。

演示代码如下: 

    @Test
    public void testLocalDateTime(){

        LocalDateTime now = LocalDateTime.now();

        System.out.println(now);
    }

运行结果截图如下:

         这下你们大家就看明白了嘛,我接下来再将三类获取当前时间分别进行输出,给大家演示一下,其实都是很简单时间类,可能用的比较多的就是LocalDateTime类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/517565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【通信原理笔记】【三】模拟信号调制——3.2 双边带抑制载波调制(DSB-SC)

文章目录 前言一、DSB-SC的数学表示二、DSB-SC的相干解调三、DSB-SC的性能评价总结 前言 从这一篇开始我们依次介绍几种模拟信号调制的方法,包括其数学表达式,系统框图、解调方式、性能评价等。 一、DSB-SC的数学表示 将 m ( t ) m(t) m(t)作为已调信号…

《机器学习算法面试宝典》正式发布!

大家好,历时半年的梳理和修改,《机器学习算法面试宝典》(以下简称《算法面试宝典》)终于可以跟大家见面了。 近年来,很多理科专业学生也纷纷转入算法赛道,特别是最近 ChatGPT 的爆火,推动了AI …

单片机之LED与按键

目录 LED LED灯亮的原理图 LED灯光闪烁 电路设计 keil文件 LED流水灯的实现 keil文件 单片机之按键 键盘的结构 按键消抖 软件消抖 硬件消抖 键盘的分类 独立式键盘 行列式键盘 键盘的识别 独立按键案例 电路图 keil文件 行列式键盘案例 电路图 对应按键…

蓝桥杯:七步诗 ← bfs

【题目来源】https://www.lanqiao.cn/problems/3447/learning/【题目描述】 煮豆燃豆苴,豆在釜中泣。本是同根生,相煎何太急?---曹植 所以,这道题目关乎豆子! 话说赤壁之战结束后,曹操的船舰被刘备烧了,引领军队从华容…

PAC性能开销权衡及优化措施

PAC性能开销?如何进行优化?本博客探讨这些问题。

11.python的字典dict(下) 遍历字典,结构优化

11.python的字典dict(下) 遍历所有的键值对 items()方法是字典的一个内置方法,用于返回字典中所有键值对的视图(view)。它返回一个可迭代的对象,每个元素都是一个包含键和对应值的元组。 下面用一个例子来说明items()方法的用法…

蓝桥杯单片机速成8-NE555频率测量

一、原理图 NOTE:使用NE555测量频率之前,需要将J3-15(SIGNAL)与J3-16(P34短接) 在使用矩阵键盘的时候也记得把跳冒拔下,因为有公共引脚P34 又是因为他的输出引脚是P34,所以只能用定时器0来作为计数器进行频率测量了 二、代码实现 …

Swing中的FlowLayout/WrapLayout在打横排列时候如何做到置顶对齐

前言 最近在开发swing客户端时候碰到一个棘手的问题: Swing中的FlowLayout/WrapLayout在打横排列时候如何做到置顶对齐如果是vue或者react,一搜百度什么都出来了,swing的话,嗯。。。资料有点少而且大部分是stack overflow上面的…

NASA数据集——1980 年至 2020 年北美 3km分辨率气温(摄氏度)、相对湿度(%)、风速(米/秒)、风向(真北偏角)、总降水量(雨+雪)等数据集

Daily SnowModel Outputs Covering the ABoVE Core Domain, 3-km Resolution, 1980-2020 简介 文件修订日期:2023-01-27 数据集版本: 1 摘要 该数据集提供了 1980 年 9 月 1 日至 2020 年 8 月 31 日期间 3 千米网格上的 SnowModel 每日模拟输出,涵…

AFCI 应用笔记二之数据采集

1. 简介 基于监督学习的神经网络算法需要大量数据作为输入,模型完全由数据驱动,其数据质量是算法有效的必要条件,所以如何高效的采集到数据,以及正确的标注或分析是极其重要的,如果第一步有问题,后续的所有…

反转链表 - LeetCode 热题 23

大家好!我是曾续缘💗 今天是《LeetCode 热题 100》系列 发车第 23 天 链表第 2 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1&#…

STM32串口 DMA 接收不定长数据的一种方法

1.前言 使用串口接收不定长数据时,可以有多种方法,比如最常见的有额外使能一个定时器,在超过定时范围未收到后续的字节时,认为此帧结束;或者利用IDLE中断,当数据空闲时,自动产生中断&#xff1…

一文了解:工业互联网的技术构成,代表性平台。

一、什么是工业互联网 工业互联网是指将传统工业领域与互联网技术相结合,实现设备、系统和人员之间的信息传递和协同工作,以提高生产效率、降低成本和改善产品质量。 二、工业互联网构成 它的构成主要包括以下几个方面: 传感器和物联网设备…

【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}

文章目录 1.网络常识1.0DHCP协议1. 1IP地址/MAC地址/ARP协议是什么?IP/MACARP:IP ⇒ MAC 1.2手机连接wifi的原理 SSID与BSSID手机连接wifiSSID与BSSID 1.3手机如何通过“数据/流量”上网?1.4电脑连接wifi的原理?电脑通过热点上网…

npm install node-sass报错

前言 在使用 node-sass 时,你可能会遇到安装 node-sass 时出现各种错误的情况。在本文中,我们将探讨一些常见的 node-sass 安装错误,以及如何解决它们。 无论你是初学者还是有经验的开发者,本文都将为你提供有用的信息和技巧&…

基于DSP28335的直流伺服电机转速控制

目录 一、设计任务 1.1、任务 1.2系统参数 二、总体设计思路 2.1硬件结构 三、转速或位置测量的计算方法 3.1转速测量方法 3.2具体参数计算 控制算法的选择 4.1PID算法(位置式与增量式) 4.1.1位置式PID算法 4.1.2增量式PID算法 4.2专家PID算法 五、系统工…

一站式知识库服务平台真的有那么好用吗?看完你就懂了

在快速发展的信息化社会,我们经常会听到“知识就是力量”的这句话,而一个一站式的知识库服务平台就是这样一把“开启力量之门”的钥匙。那么,这把钥匙真的有那么好用吗?让我们一起探讨一下。 首先,“一站式”可能已经解…

计算机服务器中了helper勒索病毒怎么办,helper勒索病毒解密流程步骤

随着网络技术在企业中的不断应用,越来越多的企业离不开网络,网络为企业提供了极大便利,大大提升了生产运营效率,由此而产生的网络数据安全问题也成为了企业关心的主要话题。近期,云天数据恢复中心接到多家企业的求助&a…

Github 2024-04-05Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-04-05统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9TypeScript项目1OpenAPI 生成器:基于规范自动生成API工具 创建周期:2155 天开发语言:Java协议类型:Apache License 2.0Star数量:1…

Kafka参数介绍

官网参数介绍:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/documentation/#configuration