请选择 进入手机版 | 继续访问电脑版

程序人生

 找回密码
 注册

QQ登录

只需一步,快速开始

程序人生 门户 Java程序员 查看内容

java数据类型long和Long的不同

2016-10-18 13:54| 发布者: sean| 查看: 325| 评论: 0

摘要: java数据类型long和Long的不同java语言的数据类型分为:1.基本类型:long,int,byte,float,double2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你自己创建的类。其中Long叫 long的包装类。Int ...
java数据类型long和Long的不同

java语言的数据类型分为:
1.基本类型:long,int,byte,float,double
2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你自己创建的类。
其中Long叫 long的包装类。Integer、Byte和Float也类似,一般包装类的名字首写是数值名的大写开头

什么是包装类?
在java中有时候的运算必须是两个类对象之间进行的,不充许对象与数字之间进行运算。所以需要有一个对象,这个对象把数字进行了一下包装,这样这个对象就可以和另一个对象进行运算了。

比如我们可以定义一个类:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
public class Long {  
    int i=0;  
    public Long (int i){  
        this.i=i;  
    }  
}  
这个Long 就是一个包装类,它包装了一个整数值,然后可以在里面写一些运算符重载的方法使它支持某些运算。这个时候可以赋值:
Long l = new Long(10);
现在变量 l 就是一个对象,不是一个数字。 

long是原始数据类型,没有属性方法,只能进行数学运算,Long是long相对应的引用数据类型,它有方法和属性,一个没方法属性,一个有方法属性,这就是它们的区别。

看下面的小程序:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
long l = 1;  
Long l1 = new Long(1);   
Long l2 = new Long(1);   
  
if (l == l1){   
    System.out.println("=====l与l1相等=====");  
 }   
  
if(l == l2){   
    System.out.println("=====l与l2相等=====");  
}  
  
if(l1 == l2){  
    System.out.println("=====l1与l2相等=====");  
 }         

输出:
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
=====l与l1相等=====  
=====l与l2相等=====  

如果将第三个if语句的条件换成"l1.equals(l2)",那么输出结果就会变成:
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
=====l与l1相等=====  
=====l与l2相等=====  
=====l1与l2相等=====  
由此也能看出,Long定义的变量为一个Long类型的对象;而long定义的变量为一个长整形数值的数值变量。
 
ID用long还是Long?
 
hibernate、el表达式等都是包装类型,用Long类型可以减少装箱/拆箱;
在hibernate中的自增的hid在实体中的类型要用Long 来定义而不是long。否则在DWR的匹配过程中会出现Marshallingerror:null的错误提示。
 
到底是选择Long 还是long这个还得看具体环境,如果你认为这个属性不能为null,那么就用long,因为它默认初值为0,如果这个字段可以为null,那么就应该选择Long。

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


关于程序人生网|小黑屋|手机版|Archiver|

程序人生 | QQ

粤公网安备 44040202000007号

( 粤ICP备13038131号-5 )

返回顶部