JavaSE入门级-第十二课-jdk8和持久层

JDK8 新特性

jdk1.8 和 1.5一样是一个重大版本更新,推出很多强大的工具包,现在企业中多数以1.8为标准研发版本

lambda表达式

lambda表达式,也可称为闭包,它推动了java8的发布,lambda表达式重点在实现了函数式接口

lambda表达式语法

(parameters) ->{ statements; }

代码实例:有一个接口JavaInterface1

 

 

 

使用lambda表达式快速实现

 

 

 

上图中我们可以看到,lambda表达式能够快速实现接口,但是这个接口必须是函数式接口,即 只能有一个抽象方法,有点像匿名内部类的实现方式

更多种类型实现

 

 

 

l  语法规则

参数部分如果只有一个参数可以不加( ),方法体如果只有一条语句可以不加{ }

方法体中可以使用return 语句

l  小结

lambda表达式免去了匿名内部类实现接口的语法麻烦,只能实现函数式接口,并且可以访问外部文件的常量

练习:

l  将上文写出的函数式接口 使用 lambda表达式实现

 

方法引用::

方法引用::可以使用已经存在的方法或者构造方法,来实现接口,提供了一种引用而不执行的方式

方法引用语法

使用一个类名或者对象名引用它的方法,使用关键字 ::

代码实例:有一个接口JavaInterface11 和 一个类Car

 

 

 

他们并没有存在继承实现关系,但是我们可以使用方法引用

 

 

 

更多方法引用

假设存在两个方法如下:

 

 

 

入参是两个接口,而这两个方法在其他类中已经有实现

 

 

 

在客户端中我们就可以使用方法引用,省去中间实现的部分,将接口实现作为参数

 

 

 

方法引用调用构造器

 

 

 

 

练习:(难)

l  使用方法引用改造工厂方法模式

 

 

 

l  客户端代码:

 

 

 

 

函数式接口编程

Function Interface 其实就是只有一个抽象方法的接口,java8开始接受了函数式接口思想,既是把接口作为方法传参的一部分,java中很多函数式接口已经被定义出来需要查阅相关文档,当然也可以自己独立实现

l  代码实例:

 

 

 

 

接口默认实现

直接看代码:

 

 

 

(注意:default 修饰接口中的方法,可以加方法体)

LocalDate 和 LocalDateTime

在java.util.*中我们已经学习了几乎都是过时的 java.util.Date,也了解java.util.Calendar但是这两个类在研发中心并没有很遍历,JDK重做了日期以及时间的两个类

java.time.LocalDate

日期处理类,更方面的操作日期

java.time.LocalDateTime

代码实例:

 

 

 

练习:

l  探索两个日期类还有没有什么别的好用的方法

java.util.Stream

Stream表示能应用在一组元素上一次执行的操作序列

获得Stream

l  数组获得Stream

 

 

 

l  List获得Stream

 

 

 

Stream提供的foreach遍历函数式接口

 

 

 

 

练习:

l  练习使用Stream和lambda组合快速遍历List

 

 

 

持久层

软件发展史

l  早期软件

第一代软件产品,没有明确的分层,直接讲所有的东西通过最快速的方式展现,例如:计算器,控制台程序

l  软件发展

硬件技术的进步,软件也出现的技术集成规范,研发人员会把软件分成4个层次,每一个层次几种做独立的事件,层次之间相互访问,来提高软件质量

 

 

 

(注意:除分层架构意外,还有 事件驱动架构,分布式架构,微服务架构)

 

层次之间的访问顺序

 

之上而下的访问,不能出现跨域访问

 

 

 

持久层认识

在以往的业务系统中,我们使用对象保证数据的完整性,使用全局变量,集合或者数组来储存数据,但这样的数据是临时的,我们也称为瞬态的,只要服务器重启所有的数据就归0

 

l  持久层是一个使数据永久化的一个层次

持久层使用相对封装完善的业务代码,将瞬态数据变成永久的,我们称为 持久化

 

l  引入数据库

持久层提供了访问数据库的操作,并且能够完成对应的 新增,修改,删除,查询 业务

持久层封装的业务对象称为 DAO (Database Access Object)

posted @ 2021-07-21 10:13  二娃千里眼  阅读(49)  评论(0)    收藏  举报