黑马程序员技术交流社区

标题: 数据类型学习 [打印本页]

作者: hlll    时间: 2016-12-3 21:15
标题: 数据类型学习
整数数据类型中默认的数据类型是int类型,那为什么byte,short类型赋值后不用加标识符,而long类型需要;
___初学小白请教/谢谢
作者: 伯乐何在    时间: 2016-12-3 21:31
因为long类型是特别的类型,就如double里的一样,java就这样规定的,记住就好了,别专牛角尖

作者: 风云1989    时间: 2016-12-3 21:32
这是规定,没有为什么啊!

作者: 伯乐何在    时间: 2016-12-3 21:32
你看他的取 值范围就知道,太大了就必须加以区分,可以这样理解吧

作者: hlll    时间: 2016-12-3 21:50
伯乐何在 发表于 2016-12-3 21:32
你看他的取 值范围就知道,太大了就必须加以区分,可以这样理解吧

也就是说默认类型是int 所以只有大于int类型时才需要 加标识符区分是吧?
作者: cumtwjc    时间: 2016-12-3 21:59
甲鱼的臀部

作者: 伯乐何在    时间: 2016-12-3 22:03
可以这么理解吧,不过大于long类型的很少

作者: 面向JAVA    时间: 2016-12-3 22:07
数据的值很大时你很难区分是int型还是Long型的.加个L便于你区别而已.数据类型一般都用int,很少会用到byte和short.你可以先记着,学到后面慢慢知道这不是什么重要的事.
作者: hlll    时间: 2016-12-3 22:15
面向JAVA 发表于 2016-12-3 22:07
数据的值很大时你很难区分是int型还是Long型的.加个L便于你区别而已.数据类型一般都用int,很少会用到byte和 ...

大于int类型的值不加L就会报错;我好像我明白了,小于int时会自动补足前面的24个零,而大于就会砍掉(损失精度),所以报错;
谢谢

作者: 面向JAVA    时间: 2016-12-3 22:52
hlll 发表于 2016-12-3 22:15
大于int类型的值不加L就会报错;我好像我明白了,小于int时会自动补足前面的24个零,而大于就会砍掉(损 ...

这样理解也很不错
作者: hlll    时间: 2016-12-31 13:30
风云1989 发表于 2016-12-3 21:32
这是规定,没有为什么啊!

规定也要有依据吧,莫名其妙的规定一些(难道依据是---你开心就好?)

作者: 带给你一个故事    时间: 2016-12-31 22:41
慢慢的就会理解了,往后学习
作者: 一片叶~    时间: 2016-12-31 23:17
Java代码中直接书写的数字是int类型的,所以 long l1 = a ;    a 在 -2^31 到 2^31 - 1 这个范围之中不会报错,超过这个范围就会报错,这时需要在a 后面加L转换
作者: 袁志娜    时间: 2017-1-3 01:12

作者: gczsjj    时间: 2017-1-3 23:01
因为byte.short赋值时,符合隐式类型转换条件(即1.两种数据类型兼容;2.目标数据类型大于原数据类型),不需要特殊处理。而long数据类型,不符合条件2,需要强转,需要特殊处理

作者: 愤怒的大飞机    时间: 2017-1-7 13:27
我们老师说的,有些东西记住就行了,别问为什么,就这么规定的,再问就没意思了




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