黑马程序员技术交流社区

标题: 关于类型转换的疑惑 [打印本页]

作者: 第一印象    时间: 2013-8-27 00:18
标题: 关于类型转换的疑惑
本帖最后由 第一印象 于 2013-8-27 09:35 编辑

老毕的课程里,有一个地方提到,short x = 1; 其实实际上这个看上去是将1赋值给x了,但是,底层却进行了一个强转,将
int类型的1强转成了short类型,砍掉了两个字节了,我这里想问的是,是不是在java里面,没有真正意义上的byte和short类型,
之所以有byte类型和short类型,都是int类型的值在赋给byte和short类型的时候,java底层进行了强转呢?也没有真正意义上的
long类型,而是数据在赋值给long类型的变量的时候,底层将数据自动补0,一直补到8位?求解

作者: straw    时间: 2013-8-27 01:15
不是很理解你的意思,但感觉还是需要跟你掰点什么....下面是我个人的看发:
不仅仅是java所有的计算机语言都有short int long byte,同样都是由0到9来组成,那为什么还要将他们分得那么细呢?原因是我们必须对数据进行细分使得资源能够更加充分被利用,而不会造成浪费.
short只能存储短小的数据,long可以存储放大型的数据,int就适中了.而byte类型数是用来描述字节流的,所以它的取值范围是-128到+128.由于他们这些特定的性质在不同场合中的应用也是不同的.
所以对于你的问题,我认为short long byte并不是不存在的意义上的类型.而实际存在的必要存在的类型.
假如没有short 那么我们在描述一个很小的数据时都只能用long来实现.这就是资源浪费的表现了.
作者: 黄文伯    时间: 2013-8-27 08:43
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
作者: 第一印象    时间: 2013-8-27 09:35
谢谢,了解了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2