00:00
行,咱们呢一块来看一下这些五道问题啊,这个呢是咱们昨天讲的这个长类,哎长类的话呢,昨天咱们讲的内容呢,涉及到关于呃日期时间诶相关的这个API这块呢,我们又涉及到JDK8之前的诶我们用的是哪些API和这个JDK8当中有新增加了哪些API,那后边的话呢,我们又涉及到关于这个诶对这个类的对象进行排序,我们呢提到两类叫比较器啊,一类呢需要实现这个comparable接口啊,另外呢是这个comparor这个接口,我们叫做定制排序了,就是根据呢你实际的的问题,我们可以呢,临时的去指定一种排序的方式啊,两种排序方式啊,然后后续的话呢,涉及到system啊,Mass啊,Big integer big decimal,这个呢,大家了解一下就可以了,诶你通过咱们上课讲的这个时间呢,你也能看出来哪些是这个重点,诶哪些呢,就是稍微呢,就不是那么重要了,就啊嗯,昨天呢,这几道问题,这很多同学呢,自己一看呢,就知道是怎么回事儿,但是呢,毕竟讲这个常类呢,咱们不。
01:00
像说讲线程的时候啊,讲线程的时候呢,咱们这个讲了一天多总结一下呢,其实就一个类,就是咱们说的这个thread类,对接口的话呢,主体呢都在用renoable,后来咱们又提到这个columnable是吧?哎,包括后来又提到这个线程池,又涉及到几个API,但是那块呢,相对来讲就是诶,你一看你知道用哪个结构调哪个方法,那就可以了,其实主体呢,我们涉及到API呢,相对于少一些啊,那咱们在这个常用类这块呢,这涉及到这个类啊,方法呀,就稍微多一些了,所以这个呢,大家记起来呢,就稍微有点吃力啊,实际上呢,真正开发当中呢,呃,也用不着大家非得把这些API啊,常用的方法,或者说所有的方法都去记住,这个肯定也不现实,那要记得也太多了啊,那开发的时候呢,对于我们常用的一些结构呢,这个一些方法,那拿起来就能写,那对一些呢,又不是特别熟悉啊,但偶尔呢又能用着。比如说string里边的好多方法,这个大家知道这里边有啊,但是呢,可能具体的话呢,是那个方法怎么调的,方法名是什么,然后参数呢,谁先写谁后写的,有的时候呢,可能记得不是特别清楚啊,那个到时候你再先看一下就行啊,这个呢,咱们昨天出的这五道问题呢,对于大家来讲其实是有一些难度的啊,相当于前天刚讲,然后今天呢,大家就开始去做这个做的话呢,还不让你去借助于这个网络是吧?呃,让你直接呢就献血。
02:23
啊,这个呢,确实是有这个难度啊,在公司里边你去这个笔试的时候,或者让这个面试,在面试的过程当中,有的时候呢,人家就现要求让你去写个代码,这个代码呢,把电脑给你啊,你就写了啊,有的时候呢,说你写能不能给网。有的时候不给你网是吧,你给网的话呢,是不是这个难度就降低好多了啊是这种啊,当然了,真正在开发当中呢,大家很多时候呢,你可以借助于网络啊,这个问题呢,其实都可以考虑去解决的啊,这里边我也反复的提到啊啊大家呢,你会借助于第三方的一些这个工具啊啊百度啊,或者一些这个官方的文档啊,哎,这个呢,其实很多情况下都可以去解决相关的一些问题啊好,那看一下这几道问题哈,第一个说呢,将字符串转换为对应的java.s加data这个类对象,这个咱们讲的时候呢,也说过,说这个操作咱们后边会用哈,呃,所以大家呢,去关注一象咱们呢,呃,可能会在这个Java这个层面,或者从这个页面当中,咱们传过来一个字符串了,现在呢,我们需要呢,把它存到数据库当中,数据库里边呢,咱们识别为circleq下的一个date了。
03:29
哎,数据库那个data跟咱们Java里边是circleq,这个date呢是对应关系啊,那这个事呢,怎么去做?呃,其实呢,大家既可以用JDK8之前的一个类叫什么呀?哎,Simple,哎,对,Date format,用这个类呢是可以的,还可以用咱们JDK8当中提到的这个叫什么呀,Date time,哎,Form me,哎,用这个类呢,也是OK的啊,这两个都行,那如果你要是用上面这个SIM data format,你看咱们讲这个API的使用在面向对象以后啊,呃,讲了这么多章节了,大家其实基本能够总结出来一个套路。
04:08
其实就是呢,说我们要做个什么事。啊,然后这个事呢,怎么去做呢?说好Java呢,给我们提供了一些API,那下一个问题呢,就是你看这API有什么,比如说像这里边有这两个类,这第二个事儿,下个事的话呢,就是诶用这个类可以了,下边呢,就涉及到它里边提供了哪些方法,咱们说一个类的功能呢,主体上是通过这个方法来体现的,啊主体上是通过方法,所以呢,我们就需要看它提供了哪些方法,那我们去用它的方法。那方法的话呢,又分成两种啊,一种呢,就是这些方法呢都是静态的,那这个类呢,其实就类似于一个工具类了,那咱们直接呢,通过这个类点去掉这个方法就OK了,这呢就用不着你去实例化了啊,那大部分啊,或者说这个情况比较多的情况呢,都是我们这个类呢,得先考虑是造对象,呃,因为这个类中的方法呢,都是非静态的了。
05:05
那造对象,这就叫实例化。啊,就要实例化了,实例化呢,到目前呢,大家其实应该是见过几种方式实例化呀。找对象。人他说嗯,这还分好几种吗?是吧?哎,其实咱们现在的主体建造是不是都是new啊,哎,咱们new,然后加上一个,哎构造器这呢就相当于是实例化了,这是最直接的一种方式了啊,但是呢,咱们也见过说呃,我想用这个对象,结果人家构造器私有化了,诶对私有化了,私有化像咱们写过这个单利模式,咱们相当于是拿着这类直接掉它的静态方法,是吧,诶这呢单利模式呢是一种体现,还有呢,咱们昨天也讲到一个结构也如此,Calendar呗,是吧,Calendar呢,这个类我们也是调get instance哎这样的方式呢,咱们获取它它的一个实例。
06:02
当然了,这个实例呢,呃,对于它来讲比较特别啊,因为它这个类本身是一个抽象类了,咱们实际获取的是它的子类的一个对象了啊,当然总之呢,就是我们能看到的就是我们的一种呢,是通过new的方式呢去造对象,那另外一种呢,就是我们通过调这个方法哎去获取对象,包括呢,这个datatime formter啊,你看咱们API,包括咱们昨天讲的时候呢,它其实也是咱们通过这个什么呀,就是调方法的方式是吧?哎,来获取它的一个实例啊行,那么回到这个问题当中,你用这两个哪个类呢,都OK啊,你要是用上面这个呢,它其实用的实例话呢,就是new呗,啊new一个simple,哎,其实我这我就不想写的太详细了啊,咱一会复习的时候再稍微说一下,因为咱们昨天呢,其实都已经讲过了啊,哎,我们new一个simple data form在这个参数位置呢,指明你要格式化呀,或者解析呀,是不这种tython角是吧?哎,模式啊,哎,那咱们这里边呢,是不是就是。
07:03
喂喂喂喂,M大写小写,哎,大写啊,这个小写的成分钟了啊DDOK,这样的话呢,咱们呃,这个我就呃,Simple data form,比如这样起个名字吧,这我就造了个对象了,OK,这呢是咱们第一步啊,你得先有这个实例化了,嗯,这个行就这样写一下,嗯,这是第一步,然后的话,我们这道问题你看我后边我也考这个事了啊,我现在把这个字符串转换成一个SQL下的date,这是格式化还是解析?解析啊,格式化呀,这是解析,诶有的同学呢,我看下边写的时候呢,这个就写错了啊,写成格式化了,哎相当于他自己呢,拿着这个对象呢,直接去调这个format了,这是不是就坏事了,诶format这个单词呢,叫格式化,诶人家是将日析变成字符串的啊,你这是解析,你解析解析呢才是将字符串转化为日期的是吧?诶所以呢,你这块呢,写一个pass啊,接着呢,把你上边这个字符串呢就扔进去呗。
08:13
然后返回的就是一个date对象是吧,是这意思吧。嗯,行,但是这个date对象呢,不是咱们呃要求的这个这个date了,咱这个date呢,是java.YouTube下的data,然后再怎么办啊,哎,该time一下是吧,然后再放到这个构造器里边就OK了。行,具体这个再细节我就不写了啊,这个咱们上课这不都说过了,只是在这呢稍微概述一下,这是一种方式,还可以呢,咱们用这个datatime formter,这是咱们JA28里讲的,呃,昨天呢,之所以说大家感觉有点这个困难,写这个内容就是因为涉及到这个类啊,太多了啊,这个都记不过来了,所以呢,后边呢大家慢慢的去熟悉啊,也没有说要求大家强制的说一天必须呢,得把这些都记得住啊,实际上呢,这个难度上来讲不算太大,就是呢,API有点多,哎,所以呢,大家需要花点时间,那data time form meter对于他来讲呢,我们第一个也得涉及到你得实例化哈,然后呢,你才可以去解析了他的实例化调的什么方法。
09:18
是不是呀,哎,Of pattern是吧,哎,这个方法里边呢,仍然是不是指明这个格式类型。哎,这样,哎,接着呢,就返回它这个类型的一个实例吧。嗯,这个我就比如就叫呃呃这个DTF吧,行,这样的话呢,咱们这不就得到它的一个这样的一个实例了啊,得到这个实例以后,哎,下边的话呢,仍然是调这个对象去这个pass,哎这不就得到它的一个时间日期的API啊,只不过呢,它不是一个date类型的了,哎,这个注意一下就可以了,行这个题目呢就过了啊。
10:01
那这就过了,那这个操作呢,大家诶下来呢,再写一写,行,那当然了,再多说一句啊,就是咱们真正你要是把这个数据往咱们数据库中去塞的时候呢,其实还有一种便捷的方式,这个你要关注的话呢,就是说我们其实直接拿这个字符串呢,也可以去塞进去啊,也可以直接塞到咱们数据库当中啊,就是说诶,这字符串怎么能碎到数据库那个date类型里呢?它里边有一个隐式转换啊,这个咱们讲数据库的时候,再说就是这个字符串格式呢,跟我们这个date类型的格式呢,它从形式上来讲是一样的,哎,然后呢,这个字符串呢,它就自动的帮我们转化成一个date了。啊,就有点像咱们Java里边讲的自动类型提升一样啊,我一个整数上十,你可以把它赋给一个double类型的,要自动的就转换过去了,咱们在这个数据库操作的时候呢,实际上拿着它呢,也可以直接呢就用了。那直接给我们转换了啊,但是呢,大家也要关注一下怎么手动的去实现啊,下一个问题何为编码解码,何为日期时间的格式化和解析,像这些呢,都属于咱们这个专业术语,嗯,大家呢得知道它是什么意思哈,后边呢,你也会去说这些专业术语。
11:13
我看下面有同学写的时候,合约编码呢,就是把。看得懂的转化为看不懂的是吧,这个有点你太太太通俗易懂了啊,这个解释有点稍微low一点是吧,你要是面试,你就是咱自己理解可以啊,你要面试的时候,你说什么叫编码,当然一般他也不会去问哈,啊这个他要问说什么是编码的话呢,你这个呃,从看得懂的装成看不懂的,这个有点不太专业啊呃,面试的时候就是什么场景呢?就是诶你是呢开发过的呃,有经验的人,哎,我呢也是面试官,那我也有经验,咱们俩谈的时候呢,谈点这个高大上的问题是吧,不要说那些特别你学的时候的一些问题,就像跟大家说讲面面向对象的时候,你不能上来,就是说举一个人呢,举一个动物啊,一个猫啊,一个狗啊是吧,不要举这些例子,你刚学的时候呢,方便你去理解形象一点,那现在呢,大家都已经都是有经验的人是吧,这种谈一点这个开发中的一些问题啊,不要说这些常见的这些或者好利益的这些东西了,你说一点这个晦涩难懂的,当然。
12:18
前提是得对是吧?啊,你觉得越难懂啊,这个当然对的前提下,他就觉得技术到位是吧?啊好编码怎么解释。怎么解释啊,哎,大家看啊,你说我现在我这不是在这写了两个这个字母了啊,然后我点一下这个保存,写两个这个字符啊,我点一下保存,这时候你说我做了个什么事,编码还是解码,哎编码哎编码就是现在呢,我们在内存里边呢,我写了两个字符,这呢,其实大家都可以认为这个叫,呃,咱目前呢,你就都叫字符串了,后边呢,咱们讲这个,呃这个流的时候呢,你可以理解成叫文本数据啊,然后这个字符串我们按照某种叫编码集或者叫字数集转化成底层的是不是?嗯二进制数据,或者你叫字节也可以,那咱们二进制数据是不都是最小呃最基本的单位呢,叫字节了,那将字符串呢转化为字节数据啊,这就可以相当于是看得懂的到看不懂的了啊,诶,我们叫做一个编码过程啊,它的一个逆过程啊解码。
13:30
这里边呢,咱们讲的时候呢,要求是什么呀?编码解码这个时候,哎,就是我这呢要有一个字符串,我呢这个存到我的这个硬盘当中了,我把硬盘中这个文件呢,通过网络的方式传给你了,你呢又想打开,相当于是我做了一个编码,你那做了个解码,呃,你想保证你的那块不出乱码,需要编码机跟解码级一定要一致,对吧?诶这个呢非常重要啊,后边呢,咱们在web在开发当中,只要出现乱码了,大家会去去找这个事情啊呃,再接着呢,叫日期时间的格式化,什么叫格式化。
14:07
谁到谁诶日期到字符串,哎这个叫格式化啊,解析呢,就是它的一个逆过程,字符串到这个日期行这两个词呢,你要记住哈,你记住这个呢,你回头你就知道了,我现在呢,呃需要做的是格式化,你就呢去调那个formit form方这个名字就叫格式化啊呃,解析呢叫pass诶就OK了,行不多说了,下面第三题和第四题,这是咱们昨天最后呢讲的涉及到对象的排序啊用到的两个接口,嗯,这个呢大家呃有的,我看写的还不是特别好了啊这个呢,下来需要大家掌握,那需要大家掌握啊在我们Java层面呢,对象原本呢不可以比较大小,但是呢,我们诶让他们通过特定的方式呢,也可以实现,因为呢,咱们开发中确实有这个诉求,那第一种呢,叫自然排序,我们需要让这个你。
15:07
当前这个类排序的对象所属的类去实现。这个怎么写啊,Comparable,对comparable啊,这样写稍微有点长哈,嗯,然后呢,你实验那个接口,自然而然的需要去重写它的抽象方法是吧,它叫public,返回的是int型的,叫compare to,这个方法参数是几个呀,对参数你别跟那个compare那个混了啊,哎,这呢,咱们是object类型的一个obj啊,在这里边呢,我们实现具体的这个排序啊,这个题我就不想在这写的这么细了,嗯,这个排序的话呢,这张是按照姓名。啊接着呢,这个里边其实写法跟我们说的那个ES呢是有点像,哎,只不过E呢返回来是一个波尔形啊这呢咱们是一个int型了,这个里边呢,大家就诶先判断一下那个obj它是不是一个哎,Person,因为咱们现在还没有讲这个泛型啊,没有讲泛型呢,所以我们这呢类型还都是object类型,诶判断一下他是不是一个person,是的话呢,你在强转,强转完以后呢,按姓名,姓名呢是个string,其实上我们在这里边写的时候呢,大家可以就是你别实打实的自己去写个字符串去比较了啊在这里边写的时候,自己是不是要善于去使用一下,哎,词缀里边现成的这个方法呀,Compare,诶,PA。
16:38
Re,是吧,哎,Compare to啊,你这个参数参数呢,比如说你叫S了啊这样,哎借用一下这个我们词string写线程的这两个方法,这呢写的是从小到大,这个string,诶默认呢就是从小到大。哎,所以这块呢,就直接return它就行,那要真呢,从大到小怎么办呀?哎,加个符号就行了,负号呢,这不就正的变负的,负的变正的了啊说你现在有100块钱,我现在呢有1000块钱啊,我比你多,但是呢,前面加了个符号,哎,你比我配的少是吧?哎,就这样子啊好不了,下一个呢,我们需要涉及到叫定时排序,那这个呢,要求大家呢,就是你就直接呢这样去造一个compare对象就可以了,Compar是这样写吧,嗯,然后呢,你直接去new一个compar,嗯,然后呢,在这个后边呢,整个单号是咱们前面讲面向对象的时候说过啊这个方法int类型叫compare,什么compare参数呢?哎,两个OBG1OBG2,就是咱们现在想比的呢,是不是这个参数的。
17:55
这两个对象呀,哎,对的啊,呃,因为呢,咱们这个comp呢,它适合于任何你想比较对象的两个结构了,所以说它这个参数呢,我也不知道你到底想比的是什么,在咱们这道问题呢,咱们比的是person了,所以在这里边你就去判断一下是吧?哎,我们这个OBJ1OBG2是不是都是instance of这个person啊是的话呢,你里边呢,再去按照所谓的这个年龄呢去比较就OK了啊,如果呢,他写的不是person类型,你可以去抛一场啊等等,这个咱们上课都讲过了,我就在这也不详细的去多说了啊诶这两个题大家呢,没写好的,下来呢再写一写,需要大家掌握,后边呢,咱们讲到集合的时候,还会涉及到这个问题啊哎,集合里边我们用到这个tree set tree map,它里边呢要存数据,这个数据呢,就是排序的啊,用的方式呢,也是这两种啊。
18:46
好,再往后,再后呢,这其实是一个描述了啊,说这个K8之前和这个K8当中涉及到的日期,时间,API都有哪些,这个大家呢,就是稍微记一下,毕竟这里边的类呢还挺多的啊,在GD8当中,这个system,这个current minutes我就不说了啊,嗯,那除了它之外呢,涉及到一个叫date date其实有俩是吧。
19:10
你看YouTube下的data,目前呢,咱们用的其实都是它,后边讲数据库的时候呢,咱们才会涉及到这个circle啊,这是它,然后呢,还有simple data form这个稍微大一点。嗯,然后最后还讲了一个calendar这个单词呢,得会写,嗯,行,这是我们JDK8当中,然后呢,咱们,呃,JK8之前的在JDK8当中呢,咱们讲了几个核心的,这几个核心呢,咱们也说了一下,稍微呢,可以看作有一个对应关系啊,比如说呢,像这个date这块我们叫什么呀。Instant顺时点是吧?哎,我们可以通过调no的方式实例化,这个实例化的时候呢,记着是拿人家那个那那叫什么本柱子午线那个时间来算的,就相当于是那个那个呃左左边12个区,右边12个区中间的那个点啊呃,到咱们这儿的话呢,你记得还有一个偏移量,就差上八个小时啊,你也可以呢,呃,去调它的这个呃时间戳是吧,同这个in instant都OK了啊,所以这俩有点像这个s form呢。
20:20
诶date time,诶form,哎跟它呢像啊,它呢都是做这个格式化和解析的,诶这个calendar呢跟谁像,诶local date或者呢,这块我们给的就丰富一些了,Local time,哎,Local,哎,Date,哎,Time。行,就是这样的几个结构,呃,这里边呢,我们可以去get,可以去这个人家要with了啊,在这呢叫set了,那你可以去设置这个时间,还可以加减指定的时间啊,都OK啊行,这呢是咱们涉及到这几个核心的API,其他的一些呢,还有啊,这个时间API呢还挺多的,大家需要用到的话呢,这个可以看一下一个我们PPT当中加了一波,没详细的去说了啊,这个说的话呢,那一会半会也讲不完,呃,开发当中根据实际需要大家呢去用就OK了。
21:17
行,这呢是咱们说的这几道问题啊。
我来说两句