00:00
好,咱们接着往下讲啊嗯,咱们前面呢,把这个八种基本数据类型呢就说完了,说完以后的话呢,这个已数类这块咱们得靠后的话,我们再讲啊,像下一章的话,我们再讲数组,然后面向对象呢,我们再讲这个类和接口啊嗯,那咱们接着做个什么事呢?八种基本数据类型讲完以后啊,那这里呢,就涉及到他们之间相互做运算的时候呢,一些规则,哎我们先把这个规则说一说啊啊这呢就是我们要说的提到的两个知识,一个呢叫做哎自动类型转换,哎一个呢叫做强制类型转换,哎这两个问题好,那咱们呢,直接通过代码的方式呢给大家来讲解,嗯,首先呢,我们还是在这个D02下呢,去新建一个Java文件啊哎,我们还叫V,哎,Test前面呢,我们叫TEST1,这个叫TEST2哈。对,还是关于变量使用这一块的一些规则啊,那前面的话呢,我们这个呃,VI test1呢,是讲的这八种基本数类型,那现在呢,我们要讲的是八种基本数据类型之间的运算啊,基本数据啊,类型之间的这个啊运算相当于这个这个一些规则啊好,这个呢,我们主要说的是这个问题啊,首先呢,把它CTRLCCTRLSCTRLV啊保存一下,嗯,那这里边这个规则呢,我们提到两个,这第一个呢,叫做自动类型提升,或者叫自动类型转换,哎,这是第一个规则,然后第二个规则呢,是它的一个逆过程啊,叫做强制类型转换。
01:39
好,这是这两个知识,那首先呢,我们说看第一先看第一个啊,叫自动类型提升,那讲这个自动类型提升呢,我们也是先说一个前提啊,现在呢,咱们讲的叫基本数据类型变量之间的运算啊,啊,那基本数据类型咱都知道有八种,但是现在呢,要明确的是咱们现在讲的这个运算啊,只是其中的七种之间的运算,有一种是不包含的。
02:06
对,这个特别的呢,就是这八个里边的,诶波尔类型对它呢就不包含了啊,那为什么把人家给踢出去呢,他这个值比较特别,它就只能取出和false,而对于我们其他的这些数据类型,整形浮点型这两这两大类呢,首先大家比较清楚了啊,都是数对你既然是数的话呢,就可以直接做运算了啊,那你这个叉型的说差按说你说一个一个A是吧,呃,跟一个数值一按说呢,好像这俩也不该做运算是吧。按说不改啊,因为你说这运算这这等于多少啊啊,但事实上呢,又可以为什么呢?对,因为我们这个小A呢,咱不是讲了字符集的是吧,它是不是会对应着一个数啊对,这个在我们二格码当中,包括在UTF杠八里边都是啊这个小A呢,都是97,对,既然你有一个对应的这个二次玛这个值了,哎,我是不是就可以跟一组运算了,对,就咱们呢,其实也都可以相互之间啊做运算,哎,只有这个布尔形除根false就没法做运算了,对,因为咱们这呢,呃处它就是处,没有说像C语言里边是非零啊false呢就代表零,在咱们这没这个概念,所以这个就不能做运算了啊行,先明确一下这个问题前提啊,这里讨论的啊,只是七种基本数据类型变量之间的运算,哎,变量间的还有这个运算,哎,是不包含。
03:39
哎,我们说的波尔类型的,哎,这个呢,大家要注意啊,好,那关于这七种变量之间做运算的话呢,我们这里提到两个啊,第一个叫自动类提升,第二个叫强制型转化,那我们这呢,先主要的来讲一下自动类型提升这个运算好就是这个意思哈,哎,比如说呢,咱们现在有一个bad型的一个变量啊,这个仍然是,嗯,这是咱们做测试了,所以我这就没有所谓的这个剑明之意这个情况了啊,我就用这个B1B2稍微抽象点来表示,这呢有个值是二,然后我定一个in的形呢,叫I1啊叫12。
04:17
啊,这个具体的运算符呢,咱们也还没有展开来讲,咱们就先以这个加法来说明啊,哎,我现在让这个B1跟这个I1呢做一个和啊,就是一个加法运算了,那我想把这个和呢付给一个新的变量,那么问这个时候新的变量的类型应该是用哪个类型来接收啊,有同学可能说那我用long,咱们先说最小的一个类型是什么对吧?哎,刚才大家有同学提到说我应该用这个in的接收,那先说bad吧,就是你这是一个整形,这个整形我们先考虑,那要是还用整形,我这用个fat接收合适吗?合适。
05:02
合适吧,不合适,嗯,为什么不合适啊,对你说我这个int假设啊,咱们这个int定义的有点小,你如果要让它等于129,你这129显然也超出BY的范围了,你这一加就超了是吧,这肯定不行了啊,哎,其实呢,就相当于咱们在这个内存层面呢,这是一个字节哈,八个bit,然后呢,下边呢,你这个int呢,是有四个字,让它俩呢做一个和这块,你这不是分成四段吗?让他俩做和的时候呢,你想想这个结果啊,那自然而然的是不是你至少也得拿四个这样去接啊,对,你要拿这个,呃,一个字节这样去接,那这块呢,万一要有数据,那你岂不是就丢失了。诶,所以说咱们很自然的想到这个应该用一个in的接收啊,比如我现在用bad接收,看下这个结果啊,正好C看二点知道吧,哎,你看这个报错了,来说这个不兼容的类型啊,第二层哎,阴的型,你现在非要给它改成bad型,这块是不也能看到,实际上我们得到的be加IE结果呢,是一个int。
06:14
好,这呢叫编译不通过啊。哎,不通过,哎,那就意味着我们这个B1,哎我加上这个I1就怎么着,你也得拿一个in的形来接收保存一下,哎,我们呢,也给大家做一个输出。来测试哎编译哎通过了,其实通过以后呢,这说明我们这个语法上就没有问题了啊,然后执行一下131,哎这就是一个正确结果啊行,那就相当于是呢,我们让一个这个,诶我们算是这个它存储数据的范围比较小哈,那这个范围小的跟这个范围大的做运算,诶我们认为说这个结果呢,应该是这个范围大的这个类型,对吧,那问一下我们能不能拿一个这个呃浪型的去接受啊呃B1加上IE是不是肯定可以啊对啊,就相当于是你这是一个呃一个字节的,我这四个字节的啊分成这个字段啊,然后呢,做一个和的时候呢,我们拿一个八个的去接收,那肯定可以,只不过这块呢,就是都是零呗,就给它空出来是吧?哎,所以这肯定可以啊,那要再问一句,你说我们这个结果能不能拿一个float去接收。
07:37
可以呀啊,这时候有的对,有的说可以,有的说不可以,说不可以的,因为什么呀?哎,不可以的话呢,你是担心这个数据传不下还是什么呢?块型的吗?呃,负电型呢,就是他可能要带小数点,你这个就没带小数点是吧?啊对这这算这个理由,应该还算是一个理由是吧?啊但是你要担心说盛不下,这个不用担心,因为咱们说这个long都没有它盛的多是吧?啊那你现在何况是一个in型跟一个bed型加这个float肯定是可以盛得下的啊,但有的担心就是说,那你这个带小数点,这个不带小数点怎么办呢?那我们跑一下看看,诶看到编译过了。
08:25
那其实意味着就是可以的是吧,那我们看这个结果是什么样子的,哎,就是它给你自动的补了一个点零。啊哎,那这块呢,这个问题就都解决了啊,首先可以,然后其次的话呢,如果你要是个整形,我就给你补一个点零啊,这就是一个浮点型的啊,这个float啊。行,那要这样的话呢,我们简单的说明完以后,这时候大家呢,是不是就得想一个事了啊,虽然我们没有把这些数据类型呢都罗列出来去做运算,哎,咱们先考虑一下这个BA short in long,这是整形的这四个啊,然后咱们也说了一下float和double了啊,而且。
09:06
他们存储的范围这四个是依次递增,这两个呢,是这个存储范围依次递增,这两个呢,咱们也说过了,虽然它是占八个字节,但是呢,它的存储范围是不是也没有float多呀,就是表示数的这个范围哈,那是不是说我们就可以大概有一个小的规律,就是如果你这个BA,比如说呃,跟这个就低级的跟高级做运算,是不是按说都应该是往高级这块去靠啊。对吧,哎是这样子啊,哪怕说呢,我们你看你上面我我这再定一个啊,比如少型的S1,哎是一个123,我这定一个double型的,哎,我这呢叫个第一,我让S1。直接付过来,这样行不?可以可以,对这也是可以的啊呃,这呢,我没有让他去做这个加法了,直接呢,我就把这个S1呢付给他了,你要做加法呢,你比如说加个零一样的是吧?哎,我们这就先不加了啊哎,我这是一个少的型,它存储的范围比较小,我付给一个比它范围大的没有任何问题啊,那我要是输出的话呢,能想象到这个结果是多少不?
10:19
应该是123.0,对这个点零呢,就会保留啊,哎编译运行,哎123.0啊行,那就按照我们刚才这个想法的话呢,哎,那就说这个,呃,数据量小的,他给这个容量大的做预算的话呢,按说这个结果就都应该转化成容量大的,哎就是有这样的一个结论了。哎,就有这样的结论啊,那暂时呢,咱们先把这个目前呢,想到的这个结论呢,我们给大家描述一下啊,哎,什么叫自动类型提升呢?我们说当容量小的啊,这个数据类型的变量啊,它呢与容量大的哎数据类型的变量做运算时,注意这时候的运算呢,咱们仅仅是拿这个加法和这个直接赋值来表示了,实际上呢,各种运算都算啊,哎,这个容量小的和容量大的做运算时呢,我们做这个结果呢,是不自动。
11:29
哎哎,自动啊是不是就是呃,相当于是提升为啊哎这个容量大的类型啊哎这个大家要注意,这就我们这个结论啊哎这个结论里边呢,提到一个概念叫做容量小和容量大啊这呢我们特意的说明一下,这个容量小和容量大呢,指的是这个类型表示数的一个容量大和小,而不是说呢,他们占用的内存空间的大和小哈。
12:04
哎,此时的这个容量大小指的是这个表示数的这个范围的这个大和小啊,那这里边就比如说我们这个float啊,它的这个容量呢,要大于对浪的这个容量,哎,这个指的是它表示数的范围,不是说呢,你本身这个内存它占四个字节,它占八个字节,那它大那不对啊,哎,我们这指的是它表示数的范围啊,所以它的容量呢,比它大,EG呢,就是这个浪形呢,哎,实际上它要跟float做运算,结果呢是float。能行吗?哎,好,这是我们说的这个事儿哈。
我来说两句