A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 第一印象 中级黑马   /  2013-8-27 00:18  /  1027 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 第一印象 于 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位?求解

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 热烈欢迎多来论坛发帖交流

查看全部评分

3 个回复

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