long 类型
在表示整数时,如果 int 类型的范围不够,可以使用long 型一个 long 型的变量占用 8 个字节( 64 位),最大表示范围为:- 2^63 ~2^63 -1 ,即- 9223372036854775808 一 9223372036854775807 。
一如果要表示long字面值,需要以 L 盛 l 结尾。
long a = 100000000;//会有编译错误
long b = 100000000l;
建议使用大L 因为小l很容易和1分不清
long b = 100000000L;
和长整型进行算术运算 会自动转换为long类型
对于较大的整数运算(超出int的范围),可以使用long类型。
比如 大家看下面的对比
```java
public static void main(String[] args) {
int a = 100;// 默认100就是int类型
//long c = 2147483648;//字面值和存储的变量 类型没有关系
long c = 2147483648L;
int k = 2147483647 + 1;//-2147483648
System.out.println(k);
long k2 = 2147483647 + 1;//-2147483648 因为这两个都是int 所以结果也是int类型 所以就溢出
System.out.println(k2);
long k3 = 2147483647 + 1L;//把其中的一个字面值改为long类型 编译器会自动把另外一个运算值也改为long
System.out.println(k3);
}
```
运算的时候,虽然左边的变量可以存的下,但是因为右边的运算 都是int类型 这时候 得到的结果 在存储给左边的long之前已经溢出了。
所以 我们应该给其中一个数字 增加L 让结果变为long类型。