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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hlll 中级黑马   /  2016-12-3 21:15  /  1468 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

整数数据类型中默认的数据类型是int类型,那为什么byte,short类型赋值后不用加标识符,而long类型需要;
___初学小白请教/谢谢

15 个回复

倒序浏览
因为long类型是特别的类型,就如double里的一样,java就这样规定的,记住就好了,别专牛角尖
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
这是规定,没有为什么啊!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
你看他的取 值范围就知道,太大了就必须加以区分,可以这样理解吧
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
伯乐何在 发表于 2016-12-3 21:32
你看他的取 值范围就知道,太大了就必须加以区分,可以这样理解吧

也就是说默认类型是int 所以只有大于int类型时才需要 加标识符区分是吧?
回复 使用道具 举报
回复 使用道具 举报
可以这么理解吧,不过大于long类型的很少
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
数据的值很大时你很难区分是int型还是Long型的.加个L便于你区别而已.数据类型一般都用int,很少会用到byte和short.你可以先记着,学到后面慢慢知道这不是什么重要的事.
回复 使用道具 举报
hlll 中级黑马 2016-12-3 22:15:44
9#
面向JAVA 发表于 2016-12-3 22:07
数据的值很大时你很难区分是int型还是Long型的.加个L便于你区别而已.数据类型一般都用int,很少会用到byte和 ...

大于int类型的值不加L就会报错;我好像我明白了,小于int时会自动补足前面的24个零,而大于就会砍掉(损失精度),所以报错;
谢谢
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
hlll 发表于 2016-12-3 22:15
大于int类型的值不加L就会报错;我好像我明白了,小于int时会自动补足前面的24个零,而大于就会砍掉(损 ...

这样理解也很不错
回复 使用道具 举报
hlll 中级黑马 2016-12-31 13:30:17
11#
风云1989 发表于 2016-12-3 21:32
这是规定,没有为什么啊!

规定也要有依据吧,莫名其妙的规定一些(难道依据是---你开心就好?)
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
慢慢的就会理解了,往后学习
回复 使用道具 举报
Java代码中直接书写的数字是int类型的,所以 long l1 = a ;    a 在 -2^31 到 2^31 - 1 这个范围之中不会报错,超过这个范围就会报错,这时需要在a 后面加L转换
回复 使用道具 举报
回复 使用道具 举报
因为byte.short赋值时,符合隐式类型转换条件(即1.两种数据类型兼容;2.目标数据类型大于原数据类型),不需要特殊处理。而long数据类型,不符合条件2,需要强转,需要特殊处理
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
我们老师说的,有些东西记住就行了,别问为什么,就这么规定的,再问就没意思了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马