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

news2025/1/13 14:04:39

一、概述

       ​上几期,我们是完整的学完了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类。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4月4号总结

java学习 一.接口 1.介绍 定义接口需要使用到关键字interface去定义接口。 格式如下: 类与接口的关系不是继承,而是实现,用关键字 implements ,格式如下: 这个类去实现接口,其中的关系就相当于&#xf…

Hadoop-Yarn

一、Yarn资源调度器 思考: 1)如何管理集群资源? 2)如何给任务合理分配资源? Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台。 而 MapReduce …

『python爬虫』巨量http代理使用 每天白嫖1000ip(保姆级图文)

目录 注册 实名得到API链接和账密 Python3requests调用Scpay总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 注册 实名 注册巨量http 用户概览中领取1000ip,在动态代理中使用.用来测试一下还是不错的 得到AP…

可视化大屏 - 项目1

文章目录 技术栈echarts 可视化需求分析代码实现 技术栈 flexible.js rem 实现不同终端下的响应式布局,根据不同屏幕宽度,自适配布局; html中引入index.js,可以改名为flexible.js;默认划分10份,可以自己修…

蓝桥杯 --- 日期问题模板

目录 1.如何判断闰年 2.如何遍历当前年份的每一天 3.如果想要输出某一年某一天到某一年某一天之间一共有多少天。 4.精确到具体周几到周几的问题分析 5.如何直接通过一层for循环枚举年月日 习题: 蓝桥杯竞赛特别喜欢考日期问题,今天给大家分享一下…

Linux云计算之网络基础8——IPV6和常用网络服务

目录 一、IPV6基础 IPV6详解 IPv6数据报的基本首部 IPv6数据报的扩展首部 IPv6地址的表示方法 IPv6地址分类 网际控制报文协议ICMPv6 二、cisco基于IPV6的配置 cisco基于IPV6的配置步骤 模拟配置 三、HTML基础介绍 文档的结构 动手操作一下 四、常用网络服务介绍…

基于单片机的测时仪系统设计

**单片机设计介绍,基于单片机的测时仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的测时仪系统设计是一个结合了单片机技术与测时技术的综合性项目。该设计的目标是创建一款精度高、稳定性强且…

软考109-上午题-【计算机网络】-网络设备

一、网络设备 1-1、物理层的互联设备 物理层的设备:中继器、集线器 1、中继器 中继器,可以使得两个链路在物理层上互联。 可以使得信号再生,信号增强。因此,中继器使得接受用户,收到衰减很小的原始信号 2、集线器&a…

55555555555555

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

【二】Django小白三板斧

今日内容 静态文件配置 request对象方法初识 pycharm链接数据库(MySQL) django链接数据库(MySQL) Django ORM简介 利用ORM实现数据的增删查改 【一】Django小白三板斧 HttpResponse 返回字符串类型的数据 render 返回HTML文…

2012年认证杯SPSSPRO杯数学建模D题(第一阶段)人机游戏中的数学模型全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 减缓热岛效应 D题 人机游戏中的数学模型 原题再现: 计算机游戏在社会和生活中享有特殊地位。游戏设计者主要考虑易学性、趣味性和界面友好性。趣味性是本质吸引力,使玩游戏者百玩不厌。网络游戏一般考虑如何搭建安全可…

C语言中的结构体:揭秘数据的魔法盒

前言 在C语言的广阔天地中,结构体无疑是一颗璀璨的明珠。它就像是一个魔法盒,能够容纳各种不同类型的数据,并按我们的意愿进行组合和排列。那么,这个魔法盒究竟有何神奇之处呢?让我们一探究竟。 一、结构体的诞生&…

C++指针与二维数组

按行顺序存放所有元素 二维数组与行 a代表二维数组的首地址,也是第0行的首地址; ai代表第i行(个)元素的地址,即&a[i]; ai或&a[i]表示行地址,每次加1会移动一行; *(ai&#…

STM32CubeMX配置步骤详解五 —— 基础配置(2)

接前一篇文章:STM32CubeMX配置步骤详解四 —— 基础配置(1) 本文内容主要参考: STM32CUBEMX配置教程(一)基础配置-CSDN博客 特此致谢! 三、STM32CubeMX基础配置 上一回讲解了STM32CubeMX基础…

ELA:深度卷积神经网络的高效局部注意力机制

文章目录 摘要1、引言2、相关工作3、方法3.1、重新审视坐标注意力3.1.1、坐标注意力3.1.2、坐标注意力的不足 3.2、高效局部注意力3.3、多个ELA版本设置3.4、可视化3.5、实现 4、实验4.1、实验细节4.2、ImageNet上的图像分类4.3、目标检测4.4、语义分割 5、结论 摘要 https://…

【打印SQL执行日志】⭐️Mybatis-Plus通过配置在控制台打印执行日志

目录 前言 一、Mybatis-Plus 开启日志的方式 二、测试 三、日志分析 章末 前言 小伙伴们大家好,相信大家平时在处理问题时都有各自的方式,最常用以及最好用的感觉还是断点调试,但是涉及到操作数据库的执行时,默认的话在控制台…

Linux基础篇:Linux网络yum源——以配置阿里云yum源为例

Linux网络yum源——以阿里云为例 一、网络yum源介绍 Linux中的YUM(Yellowdog Updater, Modified)源是一个软件包管理器,它可以自动处理依赖关系并安装、更新、卸载软件包。YUM源是一个包含软件包的远程仓库,它可以让用户轻松地安…

实验一 Windows 2008虚拟机安装、安装VM Tools、快照和链接克隆、添加硬盘修改格式为GPT

一、安装vmware workstation软件 VMware workstation的安装介质,获取路径: 链接:https://pan.baidu.com/s/1AUAw_--yjZAUPbsR7StOJQ 提取码:umz1 所在目录:\vmware\VMware workstation 15.1.0 1.找到百度网盘中vmwa…

x86汇编写矩阵乘法问题(实现一个3×3矩阵乘法的汇编代码)

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

4核8G服务器性能怎么样?4核8G12M配置可应对哪些场景?

腾讯云4核8G服务器多少钱?腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月,活动页面 txybk.com/go/txy 活动链接打开如下图所示: 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器,详细配置为:轻量4核…