00:00
行,那咱们呢,复习一下这个咱们每天有个考试,这个呢,呃,大家现在肯定考的话呢,还是有点痛苦的,其实呢,就是让你每天痛苦一下是吧?啊就是有的时候呢,你就让自己痛苦着,其实你才能够发现自己的有变化,有成长,人生不也这样吗?老是想着成长,怎么叫成长呢?就是你得经历过这些磨难啊,你看着这个就是不会做啊,逼得不行了,痛苦的很不行,这个时候呢,你才会有所变化啊,你要说都特别幸福,特别嗨的,然后呢,这个这个走还特别好,那太顺了啊行,咱们来看一下这个复习的内容,咱们呢,通过这个JDK8之前的API开始的,呃,上来呢先这个咱们昨天呢是先讲一下这个论里边的常用的几个算法题,这个我想了想,昨天呢,呃,咱们讲了几个,今天呢,我就没有考了啊,因为呢,你光写这个题,有时候一想就花的五分钟十分钟就出去了啊啊这里边呢,大家把咱们昨天讲的那几个小算法题呢下来呢,再去写一写啊就OK了啊你要说顺便呢,还想再。
01:00
看一看这个发的章章节目是不是还有呃一些题目,包括呢,去网上还可以找,哎,都可以做,哎其实呢,没有必要了啊,哎,这个大家就往后学,后边呢,我们涉及到一些呃,具体的逻辑的时候还会有关于string的操作的啊好,从这个复习的内容呢,咱们首先来说一下这个simple data formit啊关于它的一个说明,这呢,咱们刚才复习呢,呃,考试的时候呢,也考到了,找到咱们data time,这个我是从上往下写的了,诶关于这个类的使用,哎,只要看到这个类,大家就知道这个类呢是干什么用的,这个呢非常重要啊,CTRLC。诶,它呢就是对我们日期date类进行格式化和解析的,咱们呢讲到这个JDK8的时候呢,还确实把它当成是一个弊端了,说你这个simple data form me呢,是对data呢进行格式化解析,而data呢,你又告诉我很多操作呢被depared了啊,又建议我用calendar,所以这呢也算是一种矛盾哈,它呢只能是操作data,不能操作calendar啊格式化解析这呢就涉及到咱们刚才提到的两个概念啊,以及呢这个你这方法去调的时候呢,得先实例化,哎,所以这又涉及到这个实例化,这个实例化呢,就是咱们用的最常用的一种方式啊new加哎构到七大家以后啊,你用到一些新的API啊,就是开发当中,那不能说咱们这个现在讲五个月涉及到内容,大家呢,这辈子都够用,这个有点太高瞻远瞩了是吧,哎,这个呢,咱们讲这个技术呢,保证大家比如说两三年之内,这个技术呢,完全不过时。这一。
02:37
假问题没有,但是不排除后边呢还有很多新的技术啊出现,那你像一些新的API的话呢,在Java当中,我们说面向对象的,通过对象呢去调这些功能主体就是方法,那你最简单的一个造对象的事儿啊,先去看一下有哪些构造器,我去拗,那构造器呢,要是呃私有化了,那这块你就去想看看有没有哪些静态方法,哎,那通过静态方法去实例化啊行这呢是这个问题,然后具体这个代码的话呢,下边这个都有写啊,这个代码里边呢,大家需要关注的一个就是这里边这个写法,诶我把这个呢拿过来了啊,就是咱们在开发的时候呢,用基本上都是自定义的这种方式了,诶所以说我们这呢,我就写了一个标准的这个方式,诶然后呢,这块涉及到叫格式化,这个呢叫解析,诶大家呢,把这段代码呢掌握住就OK了,呃,这个呢,其实我应该是写到这儿啊,上面这个代码,下边这个小练习呢,就刚才考的大家这个事儿。
03:34
嗯,考虑这个事,包括呢,我们还说了一个三天打鱼,两天晒网啊,大家呢,就是在做,在自习的时候,有时间你把这个题目呢,也可以去实现一下啊,那这个呢,我就统一的就粘过来了,那大家呢,先来看一看这个问题啊,这个练一呢,就是咱们刚才考的这个问题,答案呢就在这儿啊过了再下边一个呢,叫calendar calendar的话呢,首先啊,它叫日历类,其次呢,它是一个什么类呢?
04:04
是一个抽象类,哎,这个有点特点啊,它是个抽象类,它还不是说直接能够造对象去调方法,咱们调的这个方法造的对象都是它的子类的啊嗯,那这里边呢,还是啊,里边呢有很多功能啊,但这些功能你知道还是这个抽象的了哈,我们用的话呢,其实呢,就是当然这个方法有些也是它可以提供方法体的抽象类,也不是说全是抽象方法了啊嗯,只是我们实例化的时候呢,只能是造它的子类对象啊,所以这里涉及到问题,第一个实例化啊,直接呢造子类对象,或者呢是调getting intense行,下边这些操作的话呢,这个大家熟悉一下啊,就是涉及到第一个获取一些相关的一些属性啊,然后给家设置,还可以在原有基础上添加啊,还可以减减的话呢,就是写负号就行,哎,然后涉及到calend和日期这个date的一个转换啊这样的问题。
05:02
行这个代码呢,我就哎粘过来了啊,大家可以看一下,哎,这个我就不要它了,行,那么在这里边呢,我们又体会了一下,就是这个JDK8之前API的一个不好的方面哈,就是它的这种可变性,这个可变性呢,我们认为它是一个不好的方面啊,在咱们讲string的时候呢,这个反而相当于是个好的方面啊。哎,你可变,所以呢,这个效率会高一些啊,但是在我们这个时间API这块呢,我们说尽可能的得不可变,对你对这个呢,设置了一个值,你返回的这个呢,是你设置的这个呢,本身不要变,那万一要有些正常一些,正常的一些位置还是用的这个值,那你要是设置完改了以后,导致那些正常的位置也就变了,不太合适啊,所以呢,我们在日期这块API的时候呢,尽可能的应该不可变,但是这个事儿呢,在以前做不到。啊行,那基于这样的一些问题呢,咱们提到了GP8当中新的日期时间的一篇。
06:00
啊,新的日期时间A篇这块呢,我们对日期时间一篇呢,进行了一个这个迭代的划分哈,第一代呢,就是在这个JDK,呃,1.0的时候呢,他提到了一个data类啊,然后紧接着在JDK1.1的时候呢,就提到了这个calendar,哎,使用这个calendar类呢,一定程度上哎,一定程度上哎我们去替换这个date类中的相关的功能,你可以理解为呢,就是一开始设计的时候呢,没想好是吧,呃,很快你发现1.0之后,1.1呢就做了一个迭代了,这个calendar你在我们这里边ctrl shift t,哎,Calendar你看它这个1.1的时候就有了,嗯,然后呢,我们在ctrl shift t看了一个date的时候。那data的时候呢,我们知道它有很多depar的这个结构,那这里边都写着说replaced by说呢,你这个别用它了啊,说这个建议呢,你去替换成calendar这样方式去用,呃,就是很快呢,相当于这个data呢就被deparated了,就不建议去使用啊,这是我们说的这个第二代啊,那么这个calendar的话呢,后续咱们用刚才也提到一些问题呢,也不是特别方便,所以后来呢,出来一个第三方的一个炸包啊,这个炸包大家也不用去记哈,叫周大time啊几合类啊。
07:35
嗯,这个是他的,然后在这儿是吧。呃,提到一个这个叫嗯呃周大time诶你可以用这样的一个炸包,也就是说呢,大家在开发中,如果呢,你想用这个我们JDK8中的这API,但是你现在装的就是JDK7怎么办呢?诶你可以去到我们这个炸包,这个呢用ma的这个方式呢,去配一下啊做一个下载就OK了,这个后边呢,咱们会讲这个ma的一个配置情况啊,暂时呢就先不多说了,这个开发的时候呢,之前大家肯定就都讲过了啊啊这呢提到一个就第三方的人家这样的一个一个一个炸包了啊那么这个炸包呢,提供的功能呢比较好,后来呢,这个诶我们还叫S公司吧,呃,S公司或者叫现在叫Oracle了啊,它在JAVA8当中呢,就把这个里边的API呢,就给集成到我们JDK当中了啊,这呢就提到了一个新的改变,所以说呢,呃,这个第三代啊,就是我们JDK8的时候。
08:27
GV8或者叫我叫1.8吧,哎,在这个当中呢,我们呃这个提出了,呃,新的这个一套API啊,那应该说呢,这套API提出以后呢,在相当长的一段时间之内,基本上我们就不用再去换了啊,那这呢也是作为我们目前来看是一个最终版的日期时间相关的API,好这个大家呢,有这样个印象就行,那么大家去开发的时候呢,你会发现很多公司的项目呢,可能还在用一些旧的API啊,但是慢慢的你去习惯一下这个新的啊,这呢也是一个未来的趋势啊,肯定要用这个新的API了,好那么对于前两代我们说存在这一个问题,咱们这块呢,举了几个点啊,这几个点呢,大家了解一下就行。
09:09
啊,不用去背了,这也没人去面试问你这个事儿啊,但你知道呢,我们为什么要换可变性的问题,偏移性的问题,格式化,这个行政不安全,这个咱们讲的时候呢,都说过了,这就就不多讲了好过了,那么JDK8或者这1.8当中提出来的一套新的API,涉及到API呢,其实呃,挺多的啊,这呢有好几个包啊,呃,总共呢,大概只有68个公开的类型,咱们呢,其实也用不着这么多,其实只是其中的一份,一些这个核心的呢,我们才会用得到啊,但是大家呢,也稍微关注一下这些API呢,都在哪些包下。哎,主要呢,就在这一包下,那咱们关注的话呢,像这个time,这属于一个比较基础的一些包了,这个format呢,涉及到一些格式化的一些包啊等等啊,其他有时区的呀,等等,包括一些adjust,哎,这个调整啊是吧?哎,一些其他的一些类啊,哎,关注一下这两个包就行啊。
10:09
诶CTRL一下就可以了,好这呢咱们就整体做了一个概述,那么接下来呢,就涉及到吧,里边有哪些API,这呢首先提到了这三个类,诶那一开始就关于这三个类的一个说明啊,首先在我们这个PPT里边解释了一下,说呢这个这三个类呢,分别表示这是咱们的一种国际的一种规范了啊,表示日期时间的一个规范,它呢三个分别表示按照这种标准的日期时间和呃呃相关的这些结构了,提供了简单的本地的日期时间啊,不包含这个信息啊CTRLC啊这是我们这个层面的一个呃介绍了。哎,这一个它啊,那另外呢,在咱们这个代码当中也稍微提了一下。嗯,这个啊,就是local data time,相较于这个local data和time使用频率稍微高一点啊,另外呢,它类似于这个calendar啊,这个大家呢,也稍微的记录一下。
11:07
哎,这是第二个点,哎,第三个点啊,这哪写的叫类似,你别把它就看成是完全对等的啊。行,这呢是咱们说的这个123啊这三个点,这颜色有点不太一致了啊,这换成这个黑体吧,那这呢是关于它的一个说明,那接下来呢,关于它的这个常用方法,咱们在代码里边呢进行了测试了,这个稍微有点多,这呢我就直接呢把这个涉及到的API呢,咱们把这个呢粘一下啊这里边呢,我通过这个颜色呢做这个区分,这个颜色相同呢,就是呃这个同一个功能的一个方法,黄色呢叫实例化,这个橙色呢涉及到我们去get相关的一些结构啊属性,这呢是去做一个设置啊,这块体现了这个不可变形了,下边就是加减啊,加减几天啊几周啊等等这样的功能啊好这就过了,就这块呢,大家即使你要不熟的话呢,在开发里边你用到了,你去找一下API是吧,看一看就可以了啊,这个你就知道该怎么做了,下一个呢叫instant,哎instant呢,我们翻译成叫瞬时点啊,或者叫瞬时也行。
12:18
时间线上的一个顺时点,它呢,嗯,你注意一下咱们从哪个接哪一段啊,就就是就它吧,时间上的一个顺时点啊,就是主要呢,咱们记录了一下,就是一个那个在咱们Java当中,其实是一个好秒述了啊,这个我们这样粘一下,首先是它CTRLC,嗯,这是一个顺时点,嗯,然后呢,它呢,在我们Java当中,这个从1970年开始以毫秒为单位,这样说吧。那这样的一个毫秒数啊。
13:00
行,这个呢,跟咱们这D个七呃八之前的,哎也是一样的,大家都是从这个1970年的1月1号开始去计算的啊这个没有问题,嗯,这个啊行一块儿整理调一下这个字体啊嗯,这是关于它的这个说明,然后另外的话呢,我们就提到了它呢,诶类似于。哎,咱们这个前面的这个date类,那这个大家也关注一下这个事情。嗯,好,这个呢就过了啊,下面呢,涉及到它的一些常用方法,那无外乎呢,就是一些实例化,还有长调的这个方法啊,这个咱们还是把这个呢直接拿过来就可以了。行,这块呢,咱们提到这个时间戳在前面,其实讲这个呃,System的current time minutes的时候也说过这个事了啊,这个时间戳的这个问题啊,哎,这个是一个一个词,一个概念,哎,这个知道啊,那下边呢,涉及到这个格式化和解析啊,咱们刚才也考了啊,Data time form,首先关于这个类的一个说明,这个直接来看咱们这个代码啊,主要呢,就是用来格式化或解析日期时间的啊,类似于simple data format啊这是两个事情,第一个。
14:16
OK,第二个行不多说了,这个很清楚,涉及到这个常用方法,咱们PPT里边呢,这块呢比较浓缩了,直接呢就写到这了,哎,这个涉及到三种格式化方式,其实这块呢,涉及到我们怎么去给他去造对象了,其实啊呃,第一种的话呢,我们直接呢,就是通过哎datatime form的这样的一个算是属性了,其实是个常量哈,哎直接呢,我们调返回的就是它当前类的对象,这是一种预定义的格式,还有叫诶所谓的本地化的这个格式,哎,咱们开发中用的呢,其实都习惯了是自定义的这种格式啊,其实这块呢,给出来这三种呢,算是它的实例化的方式。啊,常用方法这个呢,在这写一下啊,呃,第一个,呃,第一个是实例化的这个呃,方式有这三种啊,第二个呢,是这个常用的方法。
15:11
嗯,常用方法呢,涉及到我们其实就是格式化解析呗。诶,CTRLV行,这呢就是我们说的这个,哎两波啊实例化下一波啊,这个造方法,哎,这个调方法啊,这是两个事情,然后在这里边呢,关于这个预定义和这个本地化呢,咱们上课呢都给大家演示了啊,代码里边也都有啊,可以看一看,我们主要关注的就是这个自定义啊,所以特别的呢,把这个自定义呢,我们提出来说呢,我们如果想进行格式化解析,那这块呢,呃,把这个代码大家下来呢,去关注一下,我呢写到这了。你看写了个这个重点啊,CTRLC这个代码呢,大家去写一写这个方式。
16:00
诶,我发现这个bug还真是啊,一个呢是右边的括号没有,再一个就是这个三没有啊。三这个事儿很敏感吗?是吧?没有啊,来补上,哎,当然这个我我就不加三了,这个咱们这这个前面没写一跟二啊行嗯,这里呢,就需要大家关注的就是这样子啊诶自定义的这种格式里边,我们涉及到呢,去格式化去解析,哎这个代码呢,大家去关注一下,写一写好这呢就过了啊然后呢,除了这几个API之外呢,还有很多其他API,这呢我们就不一个去讲了,这要讲起来这个时间呢就长了啊呃,涉及到呢,大家跟时区相关,跟时区相关的一些日期和时间呀,包括这个时区都有哪些呀,这些ID呀,这个代码呢,我都提前呢给粘到咱们的这个diary当中了,大家下来呢,你可以看看啊,这OK了,就不用先去深究了,回头开发中用到的话呢,你再过来去看就行啊,那么这个就过了。
我来说两句