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!