在java中已经规定数据类型是长整形为什么数字后面还要加一个"l"啊?前面不是有long吗?

如题所述

说到这就不得不谈java的内存体制,建议你好好研究下这个。
example:
long l1 = 10000000000L;
实际上内存中l1只是一个long类型的变量,它存在于向stack(栈)中,数值并不在其中存放,它指向heap(堆)中另一块真正存放数值的内存,加L的目的就是为了让heap中也创建一块long类型所需要的内存,用来来放数值。
所以说=前后两者其实是在不同的两块内存,只不过有个无形的指针将两者连接起来了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-17
前面是声明部分 后面是实际值
编译时要检查 实际的值能不能赋给声明的变量 不能赋值则报错
第2个回答  2011-04-17
赋值匹配。