Long和long的区别

来源:互联网 发布:开淘宝商城要多少钱 编辑:程序博客网 时间:2024/04/29 05:04

Long和long的区别:

问题产生原因:使用greendao的过程中,

               @Id(autoincrement =true) 

               privateLongId;

               对于自增id设置中一直强调是Long型,这样穿null就可以实现自增;我当时就在疑惑long怎么可以在构造函数中传null?直到后来才发现是

               Long。特此记录,并将网上搜到的一些知识一起记录(我记录下面的这些主要是为了记住最后一段各个整数所占字节)

Java的数据类型分两种:

1.基本类型:long,int,byte,float,double,char
2. 对象类型(类): Long,Integer,Byte,Float,Double,Char,String,其它一切java提供的,或者你自己创建的类。

其中Long又叫 long的包装类。而Byte和Float也类似,一般包装类的名字首写是数值名的大写开头。

 

什么叫包装类
在java中有时候的运算必须是两个类对象之间进行的,不充许对象与数字之间进行运算。所以需要有一个对象,这个对象把数字进行了一下包装,这样这个对象就可以和另一个对象进行运算了。
比如我们也可以定义一个类:
class Long {
int i=0;
public Long (int i){
this.i=i;
}
}

这样这个Integer就是一个包装类,他包装了一个整数值,然后可以在里面写一些运算符重载的方法使它支持某些运算。这个时候可以赋值: 
Long it=new Long(10);
现在变量it就是一个对象,不是一个数字。

 

long 是长整型,在怎么长本身也是整型,12.10的整形部分是12,当然结果是12,

byte: 八位整数 -128——127,可用来节省内存的使用。
short: 16位整数 -32768——32,767,也比较省内存。
int: 32位整数 -2,147,483,648——2,147,483,647,一般来说整数都够用了
long: 64位整数 -9,223,372,036,854,775,808—— 9,223,372,036,854,775,807,一般不需要用
float: 32位浮点,如果浮点需要节省内存用这个。
Double: 64位浮点,一般非整数浮点可用这个。

但是要记住float和double都不是精确的,如果要储存钱一类的必须精确的,用java.math.BigDecimal

0 0
原创粉丝点击