Java的int与long

今天在写时间戳的转换的程序的时候发现怎么也写不对,才发现了原来

long a1 = 10;

这样的代码并不会直接把10转型成long,分配的内存还是int的长度

需要这样写 long a1 = 10L;

在写代码的时候非常容易出现的错误是:

 long a3 = 1422206881*1000;

这个时候1422206881*1000显然已经溢出int型长度(32位)了,但是编译器并没有提示错误,在内存中a3还是个int型,存储的只有32位而已。

那么接下来a3的取值就明显错误了。

 System.out.println(a3);的结果显示为:572706024

正确的写法是在初始化long型的变量写一定要在数字后加L!

原文地址:https://www.cnblogs.com/ivywenyuan/p/4330341.html