「java后面加l」java前加加和后加加
今天给各位分享java后面加l的知识,其中也会对java前加加和后加加进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java长整型加L与不加的区别
- 2、为什么java语句double数据后可以加L如 double d=33L float f=33L
- 3、java中long=后面为什么还要加个L:: byte b=3 b=b+3 怎么还能报错
- 4、在java中已经规定数据类型是长整形为什么数字后面还要加一个"l"啊?前面不是有long吗?
- 5、java 声明长整型变量 后面为什么加L
java长整型加L与不加的区别
没什么区别的,都可以。
不过小写的l在不少字体里显示的和数字1容易混淆。
声明长整型是推荐使用 像3223L 这种形式的。
为什么java语句double数据后可以加L如 double d=33L float f=33L
因为JAVA的数据类型在有些情况下可以自动转换,转换的优先级从低到高依次是:
(byte,short,char)--int--long--float--double
所以你写的赋值语句虽然右边是long类型数据,但是会自动转为float和double类型的。
java中long=后面为什么还要加个L:: byte b=3 b=b+3 怎么还能报错
整数型有隐式转换机制,浮点型没有。
常量储存,整型默认int,浮点型double。
所以赋值时。
整数型不需要声明就可以把常量赋值给整数型变量,int类型的可以直接赋值给byte,short,long(当值大于int的取值范围才声明,不声明了一样可以,可是会造成损失,为了杜绝所以才加L)
浮点型需要声明才可以把常量赋值给浮点型变量(默认double,赋值给float得加f)。
b=b+3报错,按理说int类型的可以自己强制转换的,但是你这里有个+,+-*/这种一个的都属于简单赋值,+=,=-这种有2个的是复合赋值,简单赋值没有不会强制转换,复合赋值才会自己强制转换!
所以b=b+3,b+=3,都是b变量加3,前者会报错,后者不报错。
也就是你用了+-*/本来会强制的变成了不强制的。
写2个例子
byte a=1;
byte b=1;
byte c=a+b;∥报错,运用了+,计算前需要把a和b取出来,取出来变成了int类型,再加,运用+,完了变成不强制了,就报错了!
float a=3.0F;
float b=3.0F;
floaF c=a+b;∥不报错,计算要把a和b取出来,浮点型不会自动转换,取出来还是float型,加+,运用加变成不强制转换,浮点型本来就不会自己转换,变不变一点关系都没有,所以float类型的a+b可以赋值给float c变量,不报错!
在java中已经规定数据类型是长整形为什么数字后面还要加一个"l"啊?前面不是有long吗?
说到这就不得不谈java的内存体制,建议你好好研究下这个。
example:
long l1 = 10000000000L;
实际上内存中l1只是一个long类型的变量,它存在于向stack(栈)中,数值并不在其中存放,它指向heap(堆)中另一块真正存放数值的内存,加L的目的就是为了让heap中也创建一块long类型所需要的内存,用来来放数值。
所以说=前后两者其实是在不同的两块内存,只不过有个无形的指针将两者连接起来了。
java 声明长整型变量 后面为什么加L
最好习惯加L,不加的话会被编译器误封装成int型到long型里,超过int最大值的话,就会报数值过大的错误。
java后面加l的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java前加加和后加加、java后面加l的信息别忘了在本站进行查找喔。