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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 496073719 中级黑马   /  2016-9-7 00:41  /  8525 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如说long x = 123,
System.out.println(x);
这样写的话,打印出的123是int类型还是long类型?

10 个回复

倒序浏览
如果long x = 123后面不加L的话,打印出来的应该是int类型的,因为系统默认的整数类型为int类型.你可以是测试一下.比如说:long x = 12345678901;不加L与加L会不会报错.希望能帮到你.
回复 使用道具 举报
123默认是证书类型,但是等号左边已经定义为long。所以123会提升为long类型的
结果自然为long类型
回复 使用道具 举报
打印出来 是long型 ,,自动提升类型了int->long
回复 使用道具 举报
int类型的123经过自动类型转换后转换为long类型,赋值给long类型的变量x,打印出来的结果为long类型
回复 使用道具 举报
如果定义的是long类型,最好加上,按照书写规范来
回复 使用道具 举报
肯定要加啊不加默认的是int类型的
回复 使用道具 举报
首先分析一下,long x = 123 ;  右边是一个long类型变量x 左边为一个int类型的123整数; 将int类型的赋值给long类型时,int类型的数值没有超过int类型的范围,编译不会出错,因为会被强制转型为long类型 在赋值给long类型变量.当int类型的数值的范围超出int范围时,编译会出错,这时就需要加L,这个L相当于告诉声明这是一个long类型.
回复 使用道具 举报
直白 发表于 2016-9-7 19:04
首先分析一下,long x = 123 ;  右边是一个long类型变量x 左边为一个int类型的123整数; 将int类型的赋值给lo ...

- -我去 说反了 ,左边是long类型变量 右边是int类型整数.
回复 使用道具 举报
并没有,首先说那是个long类型的数,因为你定义的是long类型的,其次,打印并不是单纯的输出,打印同样是调用了方法,以打印字符串的形式打印出来,所以,打印的结果是字符串类型的,但在程序里应用那个数是long类型的
回复 使用道具 举报
按照你的字面理解,是long类型的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马