00:00
那接下来我们看一下后边这个叫string API啊,这个string API的话呢,相当于我们JAVA8里边另外一个非常重要的一个,这个体现了啊,一个呢就是拉曼表达式,一个呢就是string epi,呃,首先关于stringpi的一个理解啊,这呢我们在课件里边呢,呃,写了这样的一句话啊。这个STEMAPI的话呢,它体现的是对数据的一个运算,是和CPU打交道的,结合呢,关注的是数据的一个存储,是与内存打交道的。哎,这是这样的一个点,哎,这将来是第一个这个,呃,一个理解上的一个小事啊,呃,另外一个小事的话呢,哎在用简洁的语言,我们去概括一下,说这个拉曼的表达式到底能干什么啊这个我们说下这个,诶可以大家这样去看啊,说Java呢,或者这个Java吧,啊它呢提供了啊一套API。哎,这套API呢,就是string API啊,那么使用这套API。啊,使用这套A片可以干什么事呢?哎,我们说可以对内存中的这个数据啊进行比如像过滤排序。
01:09
啊,映射。啊,规约等操作。啊,这样啊,类似于后边呢,我们要讲的就是这个SQL语言啊,对数据库中的表的相关操作。诶就跟这个呢是类似的,那后边呢,我们讲这个circleq的时候呢,哎,咱们用circleq呢,其实就来操作数据库里边这个当然也不止表了啊,但主体上是表,以表为例啊,这个表中呢,有很多的数据,我们可以呢写S扣去查询,我去过滤啊,去做一些映射等等啊,做一些排序这样的一些操作,那我们说呢,Circleql中你是操作表中数据,那现在呢,你可以理解为我们词缀PI啊,能做一样类似的这些事儿,只不过此时咱们操作呢,是内存当中,尤其是集合当中的数据。
02:02
因为这个首先你得涉及到很多数据了,否则你排序就一个你排啥呀,是吧,好多数据啊,就像你这个表里边有好多条这个数据一样啊,这样的点啊行这呢是我们说的这样的两个事情啊。诶,这个呢,大家去理解一下啊,这个嗯,我们以前也讲过,说你学个新的东西呢,尽可能从三个W的角度去考虑是吧,说这个东西是什么,这个为什么要有啊,这个怎么用。当然最重要的还是看怎么用这个呢,花的时间精力更多一些,那如果呢,你要是能够把这个知识点精华到一句话能够解决啊,或者说明,那说明你这个知识的把控还是可以的,就像以前说的,要透过现象看本质,是吧?啊,比如说这个GDBC大家也要去学,以前咱们讲GDBC呢,讲这个三天讲四天是讲的还是很丰富的啊,那后来的话呢,这个就咱们把它这个时间就缩减了,因为后边呢,还要讲很多新的一些技术啊呃,但是总共课时的话呢,咱又不希望太长。
03:02
啊,每次出新东西都往下加,那原来五个月,后来大家就得培训成一年了,是吧,这受不了了,就啊这个基本上大家呢,这个经历的极限也就是六个月,哎超过六个月的话呢,其实你身体上啊,精神上都扛不住了,哎这个呢,你就就得就得要就业了,就得是是吧?哎,那这时候呢,新的技术又不能不讲,那我们只能是把前边一些知识点呢做一些整合啊,诶包括以前呢,我们讲trus,讲havebernatet,那现在这个也不讲了,一方面用的也确实少了啊,被这个新的这个呃,SSM啊或者微服务框架呢,做替换了啊有一个技术上的迭代啊,另外一方面的话呢,就是这个,呃,有的一些旧的东西呢,它会在一些新的东西里边去体现啊GDBC的话呢,其实我们讲的一个讲时间比较长,三四天,其实主要目的呢,就是锻炼大家这个一个思维逻辑能力,你自己亲自去写一写,真正开发当中的话呢,都用框架封装了啊,底层呢,都是封装了JDBC的一个使用啊,是这样的啊,所以呢,基本上你能够知道这个JDBC底层。
04:03
是怎么原理的,什么样原理我们自己呢能够去实现,哎知道这个事儿就行,哎后边呢,我们讲更多的新东西啊,那这DBC的话呢,哎,你又用一句话表达,那就是说,哎Java呢,给我们提供了一套API,里边呢有接口,里边有类啊主体企业呢,标准嘛,体现就是接口了啊,那么我们使用它提供的这套API呢,我们就可以去操作数据库。嗯,你像我们讲的话呢,就是用Java代码里边呢,你嵌套的这个circle,诶我们去操作这个数据库了,这就是JDBC啊好,这个我们是叫stringpi啊,就是你能够把一个技术浓缩成一句话啊,那这呢,你要是有这个能力,那说明你对这个东西的掌握还是可以的啊。那下面呢,关于这个注意点。注意点的话呢,我们这儿呢,提到这样的几个事儿啊,CTRLC。说STEM本身它不会存数据,它不会存数据,数据呢还是在这个集合当中的啊,就像你这个,呃,后边讲这个circleq一样,Circleq本身也不存数据啊,还是用数据库啊,用表去存啊,这个stream呢,不会改变原对象啊,它会返回一个持有结果的新的stream,这个咱们讲类似的时候,你调spring方法返回的这个结果,你去排序去什么的,List还是原来list啊,这个呢,你还拿list,它还是从最初的那个list去操作,下边呢,就是操的操作是延迟的,那这个呢,主要就体现到这个流程上了啊,那我们就看一下下边这个流程。
05:31
哎,把这个呢,先CTRLC一下这个STEM要想使用它有这个三步,首先实例化,中间操作,终止操作,这个延迟呢,就是指的就是说如果你要是不写中间终止操作,这个中间操作呢,它也就不会执行。只有呢,你调了终止操作以后,这个中间操作呢才去执行,这呢就叫做延迟的意思,必须要等到需要结果的时候呢才执行,有点还是像那种懒汉式一样啊。这个你你不用的时候呢,我这块我就不调,哎终止操作呢,我这时候就必须要用了,哎,我再去调这个中间操作啊,那这块使用的时候的一些这个注意点,这呢我们写了两个点。
06:12
正好对应的是四说呢,中间操作呢,是可以有多个的,所以这叫一系列的中间操作。啊,对数据员呢,进行相应的一些处理了,那么一旦执行终止操作,这个中间操作呢,就执行了,这就我们所谓的这个延迟,另外的话呢,一旦你执行了这个终止操作了,就不能再被用了。有点像一个流一样,你就把这个流给它close了啊,你再想拿它去read呀write呀就不行了啊,这样包括这个socket,将网络编程,这个socket你也给关了,你还想让他去通过网络传输数据,这就不行了,因为已经关了。哎,这样子啊,就之后呢不能再被用了,那沿IG呢,这个终止操作它不像中间操作一样,你可以先过滤,过滤了又映射啊等等好多操作,那这个呢,就只能执行一个终止操作了啊,因为一执行完这一个它就不能再被用了啊。
07:03
好,那下边的话呢,就针对于咱们上面讲的这这个三个步骤,哎,一个呢叫实例化,然后中间操作终止操作这块呢,我们这个直接呢,咱们就把相应的这些,呃,这个这个第一个可以粘一下这里边的代码,实例化的时候,这不有咱们讲了是四种方式啊,第四种呢,其实用的稍微少一些,你就看具体的实际情境啊,这是要创建这个无限流的方式。那这种方式呢,在我们后续九十十一当中呢,哎,这个又提供它的一些重载的新的方法了,哎,这个我们今天讲的时候呢,也给大家说一下,这呢上面这四种方式,这个方式三啊,一如既往的这个三就没有了啊,来加上啊。行,然后后边的话呢,涉及到这个中间操作,咱们上课呢,这个写了这么多的代码,是中间操作,这个是终止操作,呃,这里边呢,主要是通过我们这个代码呢,大家去熟悉一下里边的这些方法,哎,当然在这个当中呢,我们也看到了关于这个拉曼表达式的一些使用。
08:01
包括这啊都是啊行,那这块我就不粘这个代码了,这块代码量有点大了啊,咱们主要呢,就把这里边儿这个相应的方法呢粘一下啊,诶这呢是关于这个叫筛选和切片的中间操作。诶,然后这个映射相关的。映射里边呢,主要用的就是第一个和最后一个。嗯,然后呢,关于这个叫排序。排序呢,属于中间操作,就排完以后呢,你可能想输出啊,输出呢是一个终止操作。这个终止操作呢,有这样一些。匹配和查找。哎,然后下边这块还有这还是算匹配的。嗯,下边这个叫归约。那规约啊,这个把它粘过来也行,那map reduce这里边呢,规约这个叫reduce。
09:08
嗯,这个叫收集。哎,这样啊,收集呢,这里边儿需要传一个叫collector。你可以理解为叫收集器了,哎,这个or的话呢,我们通常又通过另外一个叫collectors来去给大家做一个实例,那下边呢,又又有这么多丰富的结构,这里边我们主要关注的就是哎,我这样粘一下啊到这哎相对于来讲用的多一些,你是想给它转换成是一个list set,还是一个普通的某一个collection,诶你可以用这里边的这三个方法,当然还有其他的一些,这我就不把那么多都取过来了啊行,那这里边在这补一个这个行参,这个collector,哎,它呢需要使用,呃,我们这个叫COLLECTOR4。和莱特尔斯啊,需要他呢,去实例化啊。提供这个实例,哎,那么这个collectors相应的这个呃方法就在下边列着了啊,诶调离方法它就能够给你返回一个决应的这个需要的collector了啊这样啊行保存一下,这呢是关于这个死STRING1PI啊它的这样个情况啊。
我来说两句