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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 完美恋爱 高级黑马   /  2013-11-6 07:54  /  1209 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

long a = 200;这里的a到底是int类型还是long类型啊?

11 个回复

倒序浏览
a应该是long类型,因为long是64位的整数,而200本来是int型是32位的整数,JVM是将一个32位的数放到了64位的内存中。(这也是我昨天刚学习到的,不知道对你有没有帮助)
回复 使用道具 举报
看看这个视频里面有讲解同类型的,我昨天就是看的这个视频教程。
回复 使用道具 举报
http://pan.baidu.com/s/19qZyQ
回复 使用道具 举报
你自己都定义了类型了,定义什么类型就是什么类型啊
回复 使用道具 举报
照你这样写,a为long类型,因为你自己定义的就是long a
回复 使用道具 举报
当然是long啦。。
回复 使用道具 举报
我的理解是 a是long型   后面的200是int型,在赋值的时候进行了自动类型的提升也就是 long a = (long)200

如果我的理解有错误 希望能指正
回复 使用道具 举报
Gump 中级黑马 2013-11-6 11:14:33
9#
整数的默认数据类型是  int型的,long a = 200,这里的a是long类型的,因为你将a自定义为long型,出于内存空间的考虑,200没必要放在long型中,比较浪费空间。
回复 使用道具 举报
看了二进制没有?
二进制来说的话就相当于给 a 传入一个 int, 32位的值,
200 就是:0000-0000 0000-0000 0000-0000 1100-1000
然后在前面补32个0, 存入的就是:
0000-0000 0000-0000 0000-0000 0000-0000 0000-0000 0000-0000 0000-0000 1100-1000
是 long 型的
回复 使用道具 举报
黄炳期 发表于 2013-11-6 08:24
你自己都定义了类型了,定义什么类型就是什么类型啊

但是不是说如果不是long a = 200L或者200l的时候不久默认为整形吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马