00:00
好,那么托肽呢,告一段落了啊,接着的话呢,我们来看这一章呢,还差最后一个知识点,叫做object啊,这呢其实相当于是一个具体的类的使用了啊,所以大家学起来应该会稍微的轻松一点,OK啊,然后这个类的话呢,叫做object啊,为什么要讲它呢?其实大家应该也都猜的差不多了啊,前面呢,我们讲到继承的时候呢,就提到过,说呢,对于一个类来讲啊,如果没有显示的指明它的父类的话。诶,那么默认呢,就继承于啊一个类,这个类呢,叫Java点点object这个类。啊,那这个类的话呢,你想我们说任何一个类呢,没有显示声明,负类是它,那显示声明了呢,那就不是它。啊,比如说这个这个类叫A是吧,它显示生明这个呃类B呢是它的负类,那B类这块呢,可能也显示写这个类叫CC是它的负类,那你总有一个可能没显示的血。啊,没有显示写的话呢,这个就是继承于object了。那换句话说的话呢,我们说对于这个继承数当中的A也好,B也好,C也好,你们的父类呢,其实都有object。
01:03
只不过呢,你是直接付类还是间接负类的问题了。啊,这样既然呢,Object是它的父类,那么这个父类当中声命的结构子类呢,就能拿到,那沿IG呢,Object类当中定义的这些结构啊,就比较具备通用性啊,哎,所以这块呢,我们在讲完这个集征之后啊,最后咱们收割为啊把这个object这个类呢给大家讲一讲啊,因为它内部的结构呢,咱们刚才说了具备通用性啊。好,首先呢,我们来看一下这个课件。啊,过来。这里边就提到了,说Java点包下的object是类层次结构的一个类。啊及所有其他类的一个副类。啊,只不过就看你是直接继承的还是间接继承的了,啊说每一个类呢,都把object呢,作为它的一个负类,或者叫超类,呃,有这样的一个层次的关系。啊,这个应该是非常清晰的啊,所以说呢,从这个呃继承的啊关系上来看,而且呢,是一个呃叫什么类的一个继承关系来看。
02:03
为啥我非得强调是类的继承关系呢?因为后边我们还要讲一个结构呢,叫做接口啊,接口跟接口之间呢,也叫继承。哎,咱们还没有讲接口,现在呢只讲的是类啊,类跟类之间呢,这叫继承,是类的继承数关系。啊,这个竖呢,其实它是一个倒着的数哈。咱们平时看的这个数呢,都是下边这个短。越往上的话呢,这个差越多是吧?哎,咱们说的这种数呢,都是倒着的啊,那么倒着这个数的话呢,它有个根,这个根的话呢,就是唯一的就是object。哎,这个大家注意一下啊。好,刚才也提到说为什么讲它就是因为呢,它是一个呃,所有其他类的福类了,所以它里边的功能呢,就具备这种通用性了啊好,后来稍微的我们这儿写两句啊。哎,这里边儿呢,首先我们去明确啊。因为什么呢?此时的咱们这个object类类啊,我说的是Java点浪包下的object类啊,为什么非得强调这个事儿呢?因为呢,我们自己也可以定一个类,这个类名呢,也叫object。
03:06
当然了,不建议你这样做哈。你看比如说我就在这个下边啊,我们去新建一个类,这个类呢,我就叫做object了,你看也不报错是吧。哎,但是呢,大家不要这样写啊,你要写完之后的话呢,这个就会有歧义啊。那到底我用的话呢,是你自己的还是类的呢?啊不是还是我们这个JDK里边的呢。啊,这个呢,咱们在起名的时候,包括你也不要去造个类叫死盾是吧。这都是没自己没事给自己找麻烦的是吧?OK啊,诶这个我们都得注掉。好,这是我们说先明确一下,是咱们这个JDK的核心的代码里边这个object啊,好,那其次的话呢,我们前面也提到过了,说呃,任何。啊,一个Java类,当然这块我们得先把它本身给除掉啊。哎,除呃债务的这个内外啊,说任个一个Java类呢,都直接啊。直接。
04:00
哎,或间接的。继承于这个咱们object。这是我们比较明确一个点啊,所以呢,我们把这个object类。哎,就称为。哎,说Java类的。啊,一个叫,嗯。Java类的一个叫呃,根复类啊。诶根赋类呢,就是它就个根,这个根上的话呢,就它一个啊,这是它,所以呢,我们重点要强调点呢,说由于呢,任何一个类呢,都直接或间接继承它了,所以呢,这个object类当中啊,声明的结构就具备通用性啊。啊,声明的。这个结构,当然这个结构呢,我们主要指的话就是属性啊方法呀,是吧,等啊就具备。哎,这个等等等我们就写到这儿了啊。啊,就具有这个诶通用性好,那么这块呢,我们提到说这个属性方法了,那么很遗憾这个object在这当中啊。没有属性啊。没有声明属性,所以属性这块你就不用打什么主意了。
05:03
啊,你就不用去研究属性了是吧?呃,那么构造器这块呢,其实也没啥可研究的了,这个V类呢,它就提供了一个空山的构造器。嗯,提供了一个哎空参的构造器啊呃,我寨这个类呢,提供这个空残构造器呢,主要是为了方便咱们作为这种子类,咱们前面也讲过子类对象实例化的全过程了啊,我们造一个子类对象的时候呢,它会直接或间接的调用到父类构造器啊,负类又调负类的,最终呢,它会调用到object这个类的构造器这。我战类这块呢,就给你留着一个就是空餐的过道器,方便呢你去调用的。啊,所以这块呢,也没太多可研究的点啊。呃,那这说的这个构造器了,那除了属性构造器,下边不就是方法了吗。诶,那么对于我们这儿来讲,咱们这一节呢,讲的是它其实主要关心的点呢,就是来看它里边这个方法。啊,所以这块呢,我们重点。啊,关注。
06:00
就是object类中。呃,他呢,声明的这个方法。OK好,那么既然呢,它这里边儿这个方法呢,通过继承的方式呢,就能够被子类呢拿到了,在权限允许的情况下呢,子类呢,就可以直接掉了。啊,那么这时候呢,任何一个对象呢,在权限允许的情况下呢,都能掉,所以它的这个方法呢,就具备通用性了,那既然如此,那我们想关心一下它的方法都有哪些,哎,我们先来看一下这个API,来打开这个index。好,那么打开以后的话呢,诶,我们这块呢,首先得找到这个object,呃,要么呢在这搜啊,或者的话呢,我们在这边去找啊,这边在哪找呢?呃先呢找这个贝斯啊。那这个呢,主要原因是从这个JDK9开始啊,从JDK9开始的话呢,它这块呢,会先有一个modu这样一个概念了,就是咱们说的模块啊,在这个模块里边呢,再放的是包,诶所以呢,我们先得看一下这个贝斯啊,贝斯里边呢去找这个long包。哎,浪下边呢,有我们要找的这个叫object这样一个类。
07:02
哎,他按照abcd的顺序排的啊,哎,找到它这不就它吗。诶,点开进来。点开诶进来了,好这块呢,其实你看它也有说明哈,所以呢,这是我们整个这个类的继承关系里边的这样一个根嘛。来说呢,每一个类呢,都把这个object作为它的一个副类出现的。啊,每一个类是吧,包括谁呢?你看还包括了数组了。啊G呢,就是数组呢,其实哎,我们也可以去调方法啊,调的方法呢,也可以调object当中的方法,说白了就是数组呢,一定程度上也看作是object这种的子类一样。OK啊好,那么这呢,是我们刚才说这个构造器了,过了,然后呢,我们重点关注的,哎,就是它下边声明的这样的一些方法,那么大家稍微数一下看有几个哈。啊,一走。11个。哎,11个这个方法好,那么我们呃要讲的话呢,那其实呢,就是讲这些方法了,诶关于每一个方法的这个权限修饰啊,在这儿呢,看不到了啊,你得具体打开里边呢才能够去看了啊呃,其实呢,重点的这个呢,他也给我们标识出来了,其他的这些呢,没有标识呢,对应的呢,呃,基本上都是public的。
08:14
好,这呢就是这些方法,这些方法呢,就是我们这一节要讲的重点了,把这些方法呢,我分成了三波。诶,第一步呢,就是我们这一节呢,重点要讲的方法有两个啊,一个呢叫做equals方法。哎,另外一个呢,叫做to string这个方法。诶这儿呢,咱们重点讲的其实是这理啊,啊好呃,对应在这里边,你把这个equals和这个to three是吧,就把它标出来了啊,那么需要大家去了解的这个方法是谁呢?啊一个呢叫做这个可啊。CN,诶,翻译过来就是克隆的意思啊。对,大概应该知道什么意思,就是复制啊好,另外一个呢,这个叫finalize是吧。哎,这个方法这个叫finalize啊,就是这这俩啊。
09:00
好,那么除了这俩,除了这俩这一共是四个了,还剩呢七个方法,这七个方法呢,咱们就目前不在这一节里边去讲了。倒不是说他们不重要哈,诶因为这些方法呢,我们放到后续的章节当中,一个个呢去引,比如说按照这个顺序啊,诶到这儿呢,首先就要get class。这个呢,其实咱们前面呢,用过一次啊。哎,不知道大家有没有印象。咱们在讲这个继承的时候,当时呢,咱们不是说过这句话吗。哎,说这句话的时候呢,当然我拿这块呢做的测试,看最后这块写的你看。是吧,诶我拿着这个诶对象这个名去调get class了,诶上来就能调,是因为呢,他们都记成object了,所以呢,他们都拿到了这个方法,这个方法的作用呢,就是找到你这个对象,它所属的这个类是谁。是哪个类造的你这个对象?哎,这个就是get class意思,其实我这块一说呀,大家基本上这个方法呢,什么意思也都很清楚了啊,这个我们后续呢,讲到反射的时候,咱们再把这个方法呢,重点呢再说一下啊。
10:04
好,这个下边呢,叫哈西扣是吧。对,这个方法呢,就是能够获取一个哈希值。什么叫哈希池呢?嗯,这个呢是音译的是吧,所以我们就不太好理解啊,说白了就是你这个对象呢,我给你算个数,这个数呢,就算是你这个标识了。啊,随便一个对象是不是都有这个方法。啊,因为大家不都是继承有干了是吧,哎,大家都有这个方法,那杨IG呢,就是随便一个对象调离方法是不是都能算出来数。这个数呢,咱们就到哈希值,这个呢,就是它的一个标识。就用这个数呢去标识你。但是你注意啊,我没说是唯一标识啊。呃,那意味着就是有可能两个不同的对象啊,他俩算的这个哈希值呢,是一样的是吧。哎,比如说这个回头我们自己把这个方法给重写了以后说呢,这个哈值怎么算的呢?呃,举个例子啊,假设呢,我们有一个对象呢,它有俩属性,一个叫A值,一个叫ID,这呢是个数,这呢也是个数,哎,我这个还一个我咋算呢,我就让这俩值加起来。
11:09
年龄呢是十岁,ID呢叫11001,那假如呢,现在有另一个A,哎,他呢是20岁,他的ID呢。写了20是吧。那我得减一减啊,这个1001减去20是。900。就是我应该减个十,差十是吧,991吧。就这俩加一起,跟这俩加一起应该是一样的。对吧。哎,加起一样就相当于呢,就是诶这两个算了一个值叫一千零啊11作为它那个标识了,这个你要算是不是也是1011啊。哎,这俩标识的这个值呢,可能就相同了。但是我没说是唯一标识啊,我只是说呢,对你是个标识是吧。啊,所以这个呢,就是算一个当前这个对象的一个标识,那大家可能会想说那个标识有啥用呢。呃,这个呢,以后我们讲集合的时候呢,再说它。啊,因为呢,我们有了这个标识以后,咱们要把这个对象啊放到一个,呃,集合这个容器里边,那到底放在哪儿呢?我就要用这个标识了。
12:06
所以暂且呢,咱们先放过他。啊,现在咱们说的话呢,大家也会比较迷糊啊,到后边我们一讲大家就很清楚啊,所以这个呢就也过掉了,诶再往下的话呢,你发现有两个方法叫notify和notify all,哎,这个呢,翻译过来就是唤醒的意思了。Not the fact。哎,Notty five oh,啊,这两个方法包括呢,下边这呢,你看除了two之外呢,还剩仨方法,这一共呢,算是五个哈。这个呢叫wait啊,然后还有这个也叫wait,这呢是有一个参数的是吧,我就简写了啊,然后还有一个wait呢,这是俩参数的。啊这样啊这呢一共是五个方法,这五个方法呢,我们后续讲到多线程的时候。诶会讲这五个方法对应呢,叫线程通信的内容,把它呢给诶这个相当于等待了,然后呢,接着呢再唤醒,体现这种通信的效果,所以暂且呢,我们这也不考虑了。
13:02
好,那这个呢,在反射的时候讲,这个呢,在集合的讲这呢在多线程的时候讲好完事了,那这一共就11个方法。好,那么总结一下的话呢,我们这里呢,要给大家讲的其实就这四个啊。啊,那么这四个里边呢,这两呢,是我们一会儿要重点讲的。那这俩呢,咱们了解一下。注意是了解就行,不要当成重点好,首先呢,看第一个,这个叫克隆哈。诶克隆回到我们这个注释信息这块呢,API这块你点一下哈。哇,好多呀。感觉不想看了是吧。啊,它的作用呢,其实就是这块写的哈,说创建并返回一个当前对象的一个。复制品。哎,复制品是吧,哎这呢,就是我们调这个方法的对象是谁,那就是这个Z了,哎,获取它的一个复制品,注意这个所谓的复制的话呢,比如我拿X啊,我拿它呢,去调的一个方法得到一个复制品,这个复制品跟X。如果用等等去判断是出吗?
14:06
对,那等等去判断是false哈,就是如果要是处了那麻烦了,那你相当于你只是复制一个地址是吧。对,这儿呢,注意复制的不是一个地址,而是呢,真实的在这个堆空间当中,比如说你这是一个X的对象了,我调完这个方法以后呢,是又重新造了一个对象啊。所以他俩的地址一定不一样。哎,对,就这个意思啊,内容是一样的是吧,内容就是我们所谓的属性呗。所以这块呢,大家就简单看一眼就行啊,因为这里边儿还涉及到我们没有讲这个知识点,就关于这个接口的问题了。啊,这个呢,所以说是未知的啊,所以咱们就大概搂一眼啊,哎,这呢,我有个animal没写负类啊。没有写expense,所以它的类就是object。啊,然后呢,有属性构造器啊,这是构造器,然后这块呢,就是关于内幕的这个盖算方法没了,然后这有个可lo方法,这呢其实也没写啥啊,就直接掉了负类这个可lo方法了。这块细节呢,大家不用管。啊,你就当没看到就行,但是我还不能删,我删了就报错了是吧,所以你就就当没有它就行,这个呢,你也目前就当没有它就行啊好这呢就相当于我们animal里边呢,对那方法重写了,其实里边也没做啥啊好关键的就是我们看下上面这块啊。
15:14
这块大家没有见过,没见过你也当这块我就。没有他,没有他哈。对,你就看核心逻辑就行啊。好,我呢,拗了一个animal的对象叫A1啊,起了个名叫花花是吧,这个我叫花花,会被会会被人给投诉啊。啊,小花。好,这呢,就是一个animal了是吧。好,然后的话呢,你看我通过这个ae这个对象呢,我调这个方法,哎方法它返回值呢,是一个object啊,咱们现在是拿着animal的,所以我非常确定它就是个animal了,所以我就强转了哈。好,那么这时候呢,我们先打印一下你原始的这个对象,这不就打他的地址了吗。然后这块呢,我再看看你的名,其实就是小花。然后接着的话呢,我把这个A2就是你这个所谓的复制品,我set your name。
16:03
塞在那个完以后呢,你看一下他的这个对象的地址啊,包括他的名,你会发现呢,这A1和A2呢,它俩不是一个。啊,不是一个,我其实都不用等等了,你看地址也行啊好,我这块呢做一个RA。哎,看效果啊,这个呢,是你原始的对象就是A1,这不是地址在这儿嘛,然后我克隆完一遍以后呢,就是它的地址呢,是在这儿的。所以你用等等判断肯定是false啊,这个呢叫小华,这个叫毛毛是吧。诶,或者的话呢,你说我这么着,我把这俩呢先移到下边。一到。嗯,移到这儿是吧,就是。先做这个事儿啊,这儿呢是做了一个复制品,然后呢设置一下,呃,你想这块呢,设置完以后,你再看一下,说A会不会也叫毛毛也行是吧。你看没啥影响。所以呢,就是纯粹的俩对象,然后呢,各自有一套这个属性。OK啊,这就是我们所谓的叫复制。那么从这个角度来讲的话呢,如果现在问大家说你创建对象有几种方式。
17:00
有几种?对,可以说有两种了是吧,哎,第一种就是new呗,New加构造器搞对象,另外呢,是不是就掉了一个了。哎,这也是一种方式啊,以后我们还会见到有其他的一些方式啊。好,那么这呢是我们说的第一个方法,然后呢,下边这个呢,叫finalize啊,就是这个方法,这个方法呢,你一看到,诶这怎么打了一条线。是吧,这个线呢,注意在我们JDK9及以后就有这根线了,这个线的意思呢,然后点一下哈。点一下点一下这个还那我直接点这吧,哎,看一下我们object里边的啊,这个方法的话呢,它这写个九,前面有一个修饰叫deprecated。这个呢,就是表示过时的意思啊。过时就是大家理解那个过时。对,就是这个方法的话呢,过时的意思就是不建议你去使用了,但是注意没说不能用啊。要不能用的话,直接就删了啊,还留着呢,就说你能用,但是我不建议你去使用了,这就叫过时的意思,从九开始的,所以呢,我们会看到这个位置呢,就给我们打了一根线哈,如果呢,大家使用的是JDK8的话啊,你看回到这儿,咱们原来讲过怎么去改啊,针对于咱们当前这个module,我们现在呢,这个使用的JDK呢,是它是吧,我改成是1.8,然后呢,使用这个语言标准呢,也变成1.8。
18:23
哎,它俩一致哈,然后呢,我点一下OK,这时候呢,你发现呢,就没有了。因为呢,他从九才开始过时的啊。好,虽然这块没有了,跟我现在换成这个17啊。其实不受什么影响啊。因为呢,我刚才说了只是过时而已,没说不让用哈,所以还正常能用。来,那么这个方法的作用是什么呢?啊,这块你看我写的啊,说这个方法调用的时机。什么会掉?当垃圾回收器要回收此对象的时候,我们就会掉这个方法。啊,然后这个方法呢,我们可以这个做一个重写嘛。
19:01
哎,重写的话呢,呃,这个我们比如说就写了一句话啊,方便来看一看是不是掉它了。OK啊好,这个写完之后呢,这就是我们当年这个类呢,然后呢,我就造了个对象,哎,这呢打印这个对象,这都比较简单,哎,关键的就是什么时候会去掉这个方法,刚才说了回收的时候。哎,那怎么就能让它回收呢,所以我这块做了个操作啊。哎,相当于呢,这是占,这是对,这是牛的这个对象啊P呢,一开始呢指向你,现在我把这个地址是不是给抹掉了。抹掉的话呢,你这个对象呢,是不是就目前其实就相当于个垃圾了是吧,然后呢,垃圾回收器呢,如果回收的话呢,一回收它就会掉那个finally的方法。但是注意啊,这个回收的话呢,诶我们说这个GC不是说呢,它一不引用了就马上回收了。哎,我们说呢,得到一定程度,比如说内存不够用了,它才回收是吧,所以这块呢,我调了一个方法啊,这个方法就是强制性的去调一下这个GC。啊,所以就加了个它,但是即使我加上的话呢,也不一定就能出来啊,你看我现在直行是不是就没出来。
20:08
对吧。你看我调它了,是不是也没有看到这句话执行啊。对,这是因为呢,我们确实这个方法呢,就要强制呢,去调用咱们的垃圾回收器了,但是呢,你强制去调出,我这会儿必须要调,但垃圾回收器呢说。你等会儿。就是你现在是确实很着急调它,但是垃圾回收器呢,也不是说你一调它就马上就去执行,他可能还得等一等是吧,但是你一等这个程序就结束了啊,所以就没看到,那怎么办呢?为了能看到呢?呃,稍微的我这块引入一个操作哈。哎,就是sleep啊,让当前咱们这个程序啊,但是没有现成的概念,咱就先说程序吧,让这个程序呢,睡上一秒钟。这个单位是毫秒啊,所以这就是1000毫秒,就是一秒钟啊,然后呢,你再结束这个呢,它有一个这个叫异常了哈,我我还得有这样引入一个未知的知识点,后边我们要讲的异常处理哈,这样先处理一下,然后呢我们再去run一下。
21:04
哎,你看能看到了是吧。就是因为呢,他马上你你给我调JC还没掉呢,结束了,现在我让他等一秒钟,那这时候这个JC呢,在这一秒当中,它就执行了,一执行诶你会发现呢,这个方法就掉了是吧。哎,这不就掉了吗?所以这个方法呢,大家就了解一下它的作用啥呢,就是在你临死之前哈。你有什么遗言没有?啊,有好说一句话是吧。诶,所以这个呢,你注意他干啥的,就是临死之前,最后呢,还想做点啥。做一下是吧。嗯,那么这个方法我们可以重写,你重写就会涉及到我们都干点啥呀。这就涉及到我们重启的目的是啥是吧?诶注意我们冲击的目的呢,一般就是,呃,在最后呢,看一看啊,说你当前这个对象要回收了。呃,你呢,还有没有拿着某些资源没有释放呢?
22:00
你给释放一下是吧,你要不释放的话呢,有可能我们还回收不了了,有点像咱们以前讲的那个scanner。Scanner,咱们说最后是不是得调close?对啊对,你要不close的话,这不就是泄露吗?对,咱们在处理这种对象的时候,有可能现在没有啊,诶咱们后边呢,会讲到一些流,比如说在这里边你用到一些流资源了,结果呢,你这个对象销毁的时候呢,万一这个流你没有关闭呢,所以你临死之前呢,你看一看你关没关啊。就跟大家呢,晚上晚自习结束了,出去了,出去的时候呢,你临临出去之前等一等。翻一下。啊,检查一下教室里边这个灯啊,插排啊是吧?呃,相应的一些这个安全设置窗户啊,是不是都关了啊,关了之后走吧。哎,你把刚才检查窗户插排是电源开关的事儿就可以写到这儿了。啊,这就它的作用啊,那么呃,还有一个什么作用呢?诶,我以这个手机端来给大家去举例哈。呃,比如说就类似的这个场景哈,比如说呢,呃,我们在这个上面写了一个用户名,写个呃密码,或者说呢,你这是个注册,里边有好多信息,写注册吧,写上你的名,写上你的这个。
23:09
设置的密码啊,写上你的这个,比如电话号码这块呢,让你写住址,有时候一写住址哟,这个我应该写住址怎么写呢?有的时候你会翻回去呢,看一看你其他的一些软件当中说这个地址怎么写的,那么这时候呢,注意我们这个界面呢,你还没写完呢哈。现在呢,你就点了一个返回键哈。对吧。这个大家不是常见的一个操作嘛,是吧,诶我一点返回键的时候,你注意这个界面啊,诶如果是安卓程序来写的这个界面呢,其实也是一个对象。啊,这个可以理解成叫activity啊这样一个类的对象。这就是个对象,万事万物皆对象。OK啊好,那我这块我一点返回,意味着这个对象是不是就销毁了。就死了是吧?啊,那么死了之后呢,你这块啊,你回到另外一个软件说法说哎,我是住这个地儿啊,你把这块呢复制了一下,然后回过来,你又打开这个软件,此时你想把这个地址直接粘过来,想上边这个信息的还留着。
24:08
但是你会发现呢,你再点进来的时候呢,因为刚才那个对象已经死了哈,所以你再点进的时候呢,就给你重新创建了一个I类的对象,再问这块这个信息会有吗。上边的。默认就没有了,但是实际上你用这个软件的时候,你发现还有。那是因为呢,在他呃点返回的时候,他不要死了吗?他临死之前说等一等。哎,把这个事儿呢,给我保存一下。是吧,他就给你写到一个文件里。呃,然后呢,你再来的时候呢,其实是个新的一个对象了,这个新的对象一上来的时候,他先去找一下磁盘上文件,说有没有这个文件,有啊,文件里边有没有一些信息,有好你给我显示出来。然后呢,到这块呢,空了,然后你再粘过来,所以你再一进来发现有其实是一个新的对象哈。啊,那你就可以理解成在前个对象临死之前呢,他做了点事儿啊,就是帮你保存到物理磁盘上了,你可以理解类似于呢,就相当于它的功能一样。
25:01
临死之前说等一等啊,把这个数据呢给我保存一下。哎,你可以呢,写到类似于这样的方法当中啊就可以了。好,这个呢,我们就简单做了一个解释啊,诶大家知道他执行的时机是什么时候,就是临死之前啊。诶,那谁掉了他呀。大家说是JC调的,那就不准确了。自己掉的呗。你自己的方法你自己调呗,这次要回收你了,是你自己主动说说,我想再做点事儿是吧。是你自己掉的啊,注意。只不过呢,是JC触发了你自己掉掉了。好,那么掉这里边能干点啥事儿,我也说了,那么下个问题怎么给DEP了呢?怎么过时了呢?不挺好吗?是吧,哎,那么这个之所以过时啊,是因为它可能会导致一个问题啊,这个我就简单在这写一下啊,这个finalize这个方法呢,它可能导致啊,这个叫什么内部呢,出现这个循环引用啊。
26:06
呃,循环引用啊,那一旦出现这种循环引用的时候呢,就会导致这个这这个对象呢,就不能被回收了啊。啊,导致此对象。哎,不能被回收啊。呃,什么意思啊?哎,这个我就简单说一下,我就不写代码了啊,这是一个对象啊,这是个对象,然后呢,他要临死了,是不是要调离方法,他要临死了,他也要调离方法。可能会出现在临死的时候呢,说你等会儿啊,我再调一下你。这哥们本来是个闹是吧,指向是个闹,结果你可好,有人指你了,你那也还没死呢,我也指向你。咱俩都别死了。本来都要回收了,没啥用了,你突然在这里边儿又整了,这一下子整的就很难受是吧。本来就是垃圾了,结果没回收成,所以呢,它可能会导致这个呃对象不能正常的被回收了哈,这个事儿是我们不希望看到的,所以呢,我们就不这样去做了啊,诶你就了解一下,就被诶depated了啊OK啊行,那这哥俩呢,咱们说的其实有点多了啊,也就说到这儿就行,大家作为一个了解啊。
27:10
呃,你要说真是有什么意义呢,这个final还有一个意义,它的意义呢,就是呃,是一个面试题是吧。这面其实还挺无聊的哈,啊,Final。他仨的区别啊,呃,范总还没讲。呢也没讲。这个呢,就现在说的。哎,这个呢,我们下一章讲这个常量的时候呢,会讲它啊,这个呢,讲异常处理的时候会去讲它,这是俩关键字,这哥们儿呢,不是关键字啊。对,它这个方法名。对,他让你说他们仨有什么区别的时候,你就各自把各自说清楚就行,说他的时候呢,你就说我们刚才这个事儿就行。对,呃,这个object中定义的作用呢,是什么时候掉的啊,一般都干什么用啊,现在呢,被代K列了啊,就简单一说就可以了啊好,这不是重点。
28:05
好,那么这个说完之后呢,诶整个呢,我们关于我这块简单介绍呢,就算是告一段落啊,下边我们重点讲这俩方法。
我来说两句