00:00
嗯,好了,同学们啊,咱们开始上课啊,开始上课,那么首先的话,我觉得还是先进行第一个环节,就是先回顾一下我们昨天的内容,或者上节课的内容,好吧。来,我们来看一下上节课的内容啊,这个内容回顾的话,我们就直接打开一个笔记了。那是这样啊,我们这个上节课呀,呃是实际上整个啊,就是从这个数据类型这块开始学习的,那么数据类型这一块的话,咱们呃要知道啊,它包括什么呢?字符型,然后整数型,然后浮点型和布尔型,那么字符型这一块的话就是差啊,差呢它是占用两个字节啊,然后整数型这块是short啊,这是124字节对不对?那浮点型float和double,这是单精度,精度要低一些,这个double是双精度,精度要高一些,但是我说了,做财务软件的话,我们呃,这两个都不会用啊,我们会用一个big decim啊big decim那么再往下呢,就是一个不玩类型啊,不尔类型在我们Java语言当中啊,它只有两个值,一个是true,一个是false,没有别的值啊,那关于数据类型这块细致的一个内容,我就不再回顾了啊,就不再回顾了。
01:08
下去之后呢,大家呢,还是得系统性的回顾一下,因为这个比较零碎啊,比较琐碎,比如说我们数据类型这块讲到一个叫字符编码对吧,按字符编码,然后呢,呃,还说了一些别的啊,尤比较这个,呃,天向地计算机底层原理的二进制,十进制是吧,还有这个互相转换啊,以及源码反码补码这些东西啊,当然当然源码反码补码不是特别重要啊,不是特别重要在这个数据类型这块的话,我们嗯嗯,每一个类型在讲解的时候都有一些比较固定的这个语法规则啊,你比如说整数型这一块,它有什么语法规则呀,对不对啊,比如说没有超出bad类型取值范围的可以直接赋值,没有超过short类型范围也可以直接赋值,没有超过char类型取值范围,也可以直接赋值,没有任何问题是不是?嗯,当然这个规则就是在下边啊,第二大点就是综合看一下在类型转换的时候需要遵循哪些规则,一共是六条规则啊,希望大家能够把六条规则能够背下来啊,第一条我再强调一下。
02:08
其实除了波尔类型之外,剩下七个类型都能转换啊。第二条是什么呢?就是没有超出这个BAT啊,Short和int范啊,没有超出BAT short和char的范围,可以直接怎么着啊,哎,可以直接付给这个BAT short叉类型的变量。第三条是自动类型转换,自动类型转换的前提是小容量转换成大容量啊,小容量转换成大容量啊,小容量将大容量这个过程是bit short in long float double,其中差和short它的容量实际上相同,但差可以表示更大的正整数啊,因为差它是文字,没有正负之分。那么第四条呢,是大容量向小容量转换,可能会损失精度,但这个呢,你要直接转,转不了啊,大容量转成小容量,你在代码级别上必须加强制类型转换服,加上去之后编译器诶就通过了,但是呢,运行的时候可能会损失精度啊。
03:00
如果你不加强制类型转换符的话,这个你编译都过不去啊,这是第四条,然后第五条是当你be上的差做混合运算的时候,各自先转换成int类型再做运算,要把第五条记住,第六条是多种数据类型做混合运算的时候,哎,各自先转换成最大的内容再做运算啊,最大内容再做运算,这个呢,呃,规则大家能够背会的话,我觉得将来遇到类似的这个题目啊,就不会不会出问题了啊,就不会出问题了,那么咱们上节课呢,诶,除了这两大点之外呢,我们还学了一个东西叫做运算符,那么运算符这块啊,其实还挺多啊,我们把它列一下啊,比如说第一个是算术运算符。算术运算符是不是啊,然后呢,还有什么呀,关系运算符吧,啊还有什么呀,逻辑运算符吧。哎,逻辑运算符还有什么呀,叫做三目运算符吧。哎,还有什么呀,字符串连接运算符吧,哎,字符串连接运算符啊。
04:00
嗯。嗯,我们来看一下啊,那当然还有一些别的运算符对吧?哎,别的运算符,但别的运算我们可能没有讲啊,没有讲来算术运算符,关系运符,逻辑运算符啊,还有一个值运算符,未运算当时没讲啊,然后呢,还有一个其他运算符这块我们也没讲啊。呃,那么这块还有一个负值运算符来我们这儿呢,就写到这儿吧,哎,叫负值运算符啊,那么这块呢,算术运算图包括什么呀?包括比如说加呀,减呀,乘啊,除啊,求余数啊,然后还有这个加加呀,对不对,还要减减是不是,然后还有这个关系运算符对不对,还有。还有这个关系运算符啊,这个关系运算符呢,它包括什么呀?比如大于啊,大于等于啊,小于啊,小于等于啊,哎,等于等于还有什么呀,不等于是不是,那么逻辑运算符包括什么呀?逻辑语呀,逻辑像这个货呀,逻辑非呀,哎,然后呢,还有这个,嗯。
05:01
其实还有啊逻辑抑惑啊逻抑或,但这个呢,用的不多啊,就不用再看了啊,不用再看了,逻辑与逻辑或和逻辑非还有短路语是不是哎,短路与和短路或然后复值类的运算符像基本的对吧,扩展的加等减等等等除等求余数等是不是哎,三步运算符的话像不玩表达式,然后问号来一个表达式一冒号再来个什么呀,表达式二啊。字符串连接符,那就加号呗,是不是,哎加号,那么这块这个运算符呢,大家呃,掌握的怎么样呢。啊,我看大家这个群里边一顿讨论这个加加啊,尤其那个I等于I加加,一直在讨论那个,那没没有意义,你讨论干干啥,是不是有谁会那么写代码,I等于I加加,I加加之后还付给I,其实这些问题啊,其实你研究也意义不大,为什么我先说一下啊,因为它的运行结果跟C加加不一样,这个东西啊,跟其实跟底层的这个他他们这个这个团队的这个这个核心人员有关系啊,跟核心人员有关系,这些核心人员呢,他就他就让他等于这个对不对啊,他想尽一办法,一切办法就让它等于这个值啊,然后但是C加加的执行,你你如果你要会C加加的话,你写同样一个程序在C加加里边运行啊,结果是不一样的,哎,所以说这个东西呢,怎么说呢,跟编译的编译器,跟开发编译器的这个人有关系,是谁写的编译器,我们就应该好好找找他,问问你为什么要这么干,是不是一会儿我可以给大家说一说Java中为什么是啊,这样一个结果啊,这样一个结果,一会儿咱们再看啊,呃,这块的话,咱们现在啊,还是一个回顾啊,这个加。
06:42
那就是求和了,那求和到底是求和还是字符串连接,那要看你这个加号两边,呃,这个加号两边这个这个是一个什么数据对不对啊,如果是一个字符串的话,那一定会做字符串拼接,如果你是数字的话,就一定会求和,那么这个是相减啊,这是乘积,这是商啊商的话,你比如十除以三等于三这个事大家要知道啊,十除以三并不是等于3.333啊,十是整数int,然后除以什么呀?哎,我们刚才所说的啊,三三是int,那int除以int最后还是int啊,那么当时呢,我没有问大家10.0除以三是多少啊,哎,这个呢,你你你你将来算一下啊,10.0除以三,那我们有一个运算规则,这个规运算规则是什么呀?就是我们诶先转换成哎类型,这个最大的内容再做运算啊,因为10.0它是个double对不对,哎,除以三的时候,这个三呀,一次动西先变成先变成什么呀,3.0,那么10.0除以3.0呢,再然3.333对不对,那至于说3.3333最后那个数是啥,那就跟底层的变异这个加法虚拟积就有关系了啊,那么再往后呢,这是求余数的各位啊,佳佳呢,要记。
07:42
他一定会让自己这个自身加一啊,减减一定会让自身减一啊,自身减一,那么这个关系运算符呢,它有个特点,什么特点,我不知道大家还记不记得啊。这个关系运算符啊,它的这个运算结果是不玩类型,就是说就是这几个运算符用起来,不管是哪一个运算符,最终的一个运算结果,它不是true,它就是false啊,没有别的值,这就是关系运算符的特点,那逻辑运算符呢?逻辑运算符的特点就是说这个符号两边这个位置,还有这个位置都得是什么呀?哎,不玩类型,这个位置不玩类型对不对,那你前面那个也是什么呀?哎,也是一个不玩类型的表达式,然后你整体执行结束之后,诶,它的结果呀,还是一个什么呀?哎,不玩类型,这就是我们的一个啊逻辑运算符它的特点,所有的逻辑运算符都有这样的特点啊,左右两边它都是不玩类型,最终的结果还是一个不玩类型啊。
08:33
那么这个就是逻辑运算符,逻辑运算逻辑与什么呀?两边同时为真,结果为真,我我我说你去想啊,两边同时为真啊,同时为真,结果为真,或呢或就是说只要一边是真,只要一边是真的,那么结果就是真的,那么这个叹号的意思干啥?是取反,你比如说你是,那么接下来取个反,那就是false,如果你是false取个反那就是true呗,对不对?哎,这个叹号就可以翻译成不。对吧,啊就这意思啊,No啊这意思,那么这个是短和短,大家注意啊,这个短和这个运算结果一模一样啊,这个短路货呀,和这个逻辑货呀,它的运算结果都是一模一样的,只不过后两者呢,它存在一种现象叫做短路现象啊,我不知道大家还记不记得这个短路雨,什么时候情况下,什么情况下会发生短路雨。
09:23
就什么叫短路现象,就是你右边的表达式不执行就叫短路现象,右边表达式不执行了,就只执行左边表达式,就已经确定出最后的结果了,这个现象我们叫做什么呀?短路现象,那么逻辑这个短路与呢,什么时候发生短路呢?就是哎,当你左边这个表达式为false的时候。那整个就没必要再运算了,因为这个与符号两边都为真才为真,左边这个已经是false了,最后结果肯定是false啊是不是,哎,那短路或呢,短路或就是说只要有一方你看就有一方为出,你看左边啊,左边这个表达式如果为处的话啊,那右边表达式自然就没要没必要去执行了啊,所以说大家针对于这个运算符呢,能够说出来什么情况下会发生短路,什么情况会发生短路啊,然后呢,大家一定要记住啊,千万别说啊,这个符号用的多,以后这个不用。
10:10
那我觉得呀,你这块啊,就有点偏见了啊,呃呃,以后都用这个符号对吧?哎,这个符号不用,那你这块我还是那句话,你就偏见了,因为它各有各的用途啊,存在即合理啊,存在即合理行吧,看什么情况啊,如果说这个我们右边表达式没必要去执行,那么这个时候我们就用短路的方式啊,如果右边表达式有必要执行,不管你第一个表式是啥,对吧,有必要执行你就用这两个啊,赋值运算符这块也有一个规则,我不知道家还记不记得像后面的这个扩展赋值运算的规则是什么呀。扩展赋值运算符它的规则是什么?它的规则是有一个特点,什么特点不改变运算结果类型,比如说BAT类型X等于什么呀?哎,100对不对,然后呢,X加等什么呀,哎,比如说加等1000大家都知道啊,这个肯定超范围了对不对?肯定啊,超出范围了。
11:01
啊,但是X的类型还是BY,精度会损失啊,精度会损失的啊,你起出X变量的类型是Beta,那么诶,那你这个。X变量使用扩展的这个负值运算符,就是后面这些运算符的时候,那么它不会改变运算结果类型,原先呢,它是X是BAT,你加等完之后它还是BAT啊,那三目运算符这一块呢,大家注意不尔表达式的结果很重要,如果为真的话,就会拿到表达式一呢作为我们整个表达式的结果,如果不尔表达式结果为false的话,就会拿着表达式二呢作为我们整个表达式的一个结果。那么再往下呢,关于字符串连接运算符,我不知道大家这个掌握没有啊,这个加号这个东西啊,以后啊开发我们天天用啊天天用,所以在这里呢,我们要把它重点的强调一下,加号两边如果都是数字对吧?哎,数字,那么这个加号做求和,只但凡是说你这个加号两边有一边,只要你是有一边,你比如这边啊,它是一个什么呀,它是一个字符串。
12:03
对吧,字符串有个特点,用双引号括起来的啊,那么这个时候这个加号必然会做什么呀,字符串拼接的啊,一定是做字符串拼接,而且你这个整体执行结束之后啊,你还是一个什么呀,字符串的结果啊,还是个字符串类类型的结果,还是一个字符串,哎,类型的结果啊,还是这样一个结果。所以这块呢,咱们要把这个东西啊,给他好好的给他掌握了啊,这块呢,我就删掉了啊,我就不留这个了,因为咱们之前讲课的时候,课堂笔记上有啊,我在这里就不写了啊行了,那么运算符呢,我们昨天呢,就说了这么多,行了,那昨天的内容咱们就回顾到这儿吧,各位啊,回顾到这儿。啊,其实比较琐碎啊,比较琐碎,需要背的东西可能也比较多一些,但是不要死记硬背,我建议你干啥呀,能理解尽量去理解啊,但是如果是实在是理解不了,那你该背呢,还得背一下,当然你这个记忆啊,最好是在你敲代码的基础之上去记忆,你敲了这行代码,去测试了一个结果,这个结果是是你亲手测试出来的,哎,那么哎,这个记忆力啊会更好一些啊,如果这个东西你只是上课的时候听一下理论听一听啊,从眼前一过,课下的时候呢,也不去,呃,也不去写代码,去亲身实践,那我觉得这个将来啊你就废了,慢慢慢慢你走到半截的时候,你就会问杜老师,说杜老师啊,我现在很苦恼,嗯,我说你苦恼啥啊,你可能会告诉我说,杜老师,现在我上课听老老明白了,我听的可明白了,但是一让我写东西我就懵,一让我写东西我就不知道该咋写,这部分同学怎么回事,就是因为你没有从开始去一行一行去累积你的代码,没有让你的代码重复的,代码重复重复的。
13:40
结论重复去验证啊,嗯,这些东西啊,需要你慢慢去积累啊,你不可能一口吃个胖子啊,你需要一点一点去来啊,一点一点细嚼慢咽啊行。回顾到这儿。
我来说两句