温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
那么这个练一就说到这儿啊,一完了以后呢,再来个二啊,这个彻底呢,把大家呢整迷糊,或者呢把大家整清楚啊好看一下,那么这里边儿的话呢,你看注意我是这样写的,然后呢,也可能是这样写的,看大家能不能发现它这里边的一个区别。啊,那这两个里边呢,实际上呢,又要引入到咱们那会呢,给大家讲了一个问题,就是说我这个new string这个写法跟这个写法的一个区别了。对吧,那这个写法的话呢,我们说在这个常量池当中会存在一个AB,而我们这样的写法呢,注意它在常量池里边呢,是没有生成AB的,哎,就是我们说的这样的一个情况,那基于这个的话呢,咱们就能够看这道问题了,这个问题的话呢,咱就直接在这个JD8当中去跑了,行吧,在GD8中去跑,那我们先来看这个情况,由于呢,这个时候常量池里边没有放AB啊,那这块呢,就指向了你这个S1,那这个时候呢,其实大家这个S这个和这个S2它俩呢,是不是在我们这个八当中,是不是就是一个处啊。理解吧,哎,在GD8当中,这是个处。
01:03
那这个呢,说我这个版本呢不太一致啊,这个呢,主要是因为我这块呢,得稍微的调一下啊。针对于咱们这个练习二,看这我写的是个六啊,把它改成是个八。那相当于什么意思啊,这个大家能理解我们这个异常的原因吧,咱们编译的版本呢,是在1.8,然后呢,你在这个低版本的这个嗯,GRE当中去跑肯定不行,咱们说的是高版本去兼容低版本,但是你低版本不能兼容高版本啊。对吧,啊这样就我们这里边列的这个52呢,其实就是我们JDK8的一个版本,你在JDK这个六的里边去跑,跑不了是吧?行,在这个八里边呢,我们一运行这个结果呢,它就是一个出。嗯,这个咱们刚才已经说过了啊,我就不在这多去解释了,嗯,然后现在呢,我们想演示的不是说JDK不同版本,而是说呢,我把这个操作呢,给它注入掉,我现在呢把它换成是这个操作。这个呢,还是有区别的。啊,也就是说这个面试题当中呢,咱们是这样写的,那如果说给你改成这样,很多同学也直接呢说哎呀这个题我见过是吧?啊咔咔一顿写,结果呢,发现又整错了啊,因为这俩呢还是有区别的,区别在哪呢?就是我们这个操作啊,这个执行完以后。
02:04
哎,在这个常量池中字符串。哎,常量制动。哎,是不是会哎生成哎是不是AB啊。这是它,而我们下边这一行操作。他呢,在执行完以后呢,是不是不会再。那这个会。不会在这个自照常量值当中生成这个AB啊,这呢还是有很大区别的,这个区别呢,就像我们刚才这个练习一里边,你前面是不是有有没有这个AB的问题了,那这行代码我想把它放在这儿,或者是放在这,大家能理解是不是都一一个道理啊,关键呢,就是你调这个in inter的时候呢,之前有没有过AB避对吧。啊,你像这两行代码呢,要是合在一起。是不是就类似于我刚才这里边儿的这一行操作了。有同学呢,就彻底懵了是吧?哎,这个懵了呢,我觉得也是个好事啊,彻底懵了以后,你才有可能彻底的懂,就跟说你这个谈恋爱一样啊,这个彻底的受伤了,那以后呢,你才能够让自己呢,可能不受伤啊,伤的不彻底,那下的还得上是吧。
03:08
嗯,这个我就先放上边了啊行,然后我们看这个情况,我现在呢,执行完以后,在常量池里边会生成一个AB,这个AB,注意实打实的那个AB啊,也就是说呢,我们这是一个对空间啊,这是我们new的一个对象啊,然后这是我们常量池里边,常量里边这就放了一个AB了啊,然后这是一个地址,哎,这呢是一个地址啊,这是两个不同的地址了,那S1.in特呢,这个去常量池里找一找,是不是有啊。那有AB的话呢,你想想我这块就就什么呀,我就用这个AB呗。啊,那就用AB,那我这个S2呢,这是个AB,那S2跟S1的地址能一样吗?是不是显然不一样。Force是吧,诶这个呢,大家理解啊,就是万变不离其宗啊,只有你真正的把这个底层呢,给它弄清楚了,这个时候呢,我们才不会把它呢,哎,当变形的时候呢,不会做。行,那说到这大家呢,下来去体会一下关于in的一个使用。
我来说两句