java把内存空间分为栈、堆、池,long是基础类型,放在栈内,Long是引用类型,放在堆内存里面,long的默认值是0,Long的默认值是null,比如有些内容,在数据库中保存时,可以是空,要是用long,在没有赋值的情况下,如果直接存储(比如用后ibernate)那就导致存入0到数据库,这种情况下就可以采用Long,存入数据库的就不是0了,而是null。
在POJO定义时,如果开始定义的是long类型,默认值是0,在引用的地方编译时会编译成Long.valueof();再改为Long类型后,引用的地方也要重新编译下,不然会报找不到方法的错误!!!!