之前做项目的时候多少接触了这个问题。只是一直没用到这个类型,写的项目都是一些很小的,数据量很少。今天给项目大框架的时候发现,数据库(Oracle)里面Number类型的长度为10以下的时候,如果使用myEclipse自动生成实体类的,这时候你会发现:number(10)和number(9),他们生成的java实体类里面的属性的类型分别是Long和BigDecimal。
通过多方面查资料,得知一下内容。
Long是long的包装类,顾名思义Long继承long,而Long又和java基本数据类型int类似。
Long是长整型,这又和数据库中的varchar2类似,兼备varchar2很多的特性。
java API中这样说:
long 可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
其数据范围:-9223372036854775808 ~ +9223372036854775807 (8 Bytes)
int的长度范围:-2147483648 ~ +2147483647 (4 Bytes)
java 1.5 之前 Long num =10L;和Long num = new Long(10);的意思一样。
之后出了个
自动拆箱装箱功能
就不行了,变了。前者变成Long类型变量的声明方式,后者是实例化对象。