博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你知道long和Long有什么区别吗?
阅读量:5291 次
发布时间:2019-06-14

本文共 1323 字,大约阅读时间需要 4 分钟。

Java中数据类型分两种:

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

 

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

什么是包装类?

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

比如我们可以定义一个类:

 

[java] 
 
  1. public class Long {  
  2.     int i=0;  
  3.     public Long (int i){  
  4.         this.i=i;  
  5.     }  
  6. }  

 

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

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

看下面的小程序:

 

[java] 
 
  1. long l = 1;  
  2. Long l1 = new Long(1);   
  3. Long l2 = new Long(1);   
  4.   
  5. if (l == l1){   
  6.     System.out.println("=====l与l1相等=====");  
  7.  }   
  8.   
  9. if(l == l2){   
  10.     System.out.println("=====l与l2相等=====");  
  11. }  
  12.   
  13. if(l1 == l2){  
  14.     System.out.println("=====l1与l2相等=====");  
  15.  }         

 

输出:

 

[plain] 
 
  1. =====l与l1相等=====  
  2. =====l与l2相等=====  

如果将第三个if语句的条件换成"l1.equals(l2)",那么输出结果就会变成:

 

 

[plain] 
 
  1. =====l与l1相等=====  
  2. =====l与l2相等=====  
  3. =====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。

 

http://blog.csdn.net/liushuijinger/article/details/30726433

转载于:https://www.cnblogs.com/cmblogs/p/4348304.html

你可能感兴趣的文章
Spark基础脚本入门实践3:Pair RDD开发
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
python使用easyinstall安装xlrd、xlwt、pandas等功能模块的方法
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
统计单词,字符,和行
查看>>
jQuery垂直滑动切换焦点图
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
模运算
查看>>
python多线程的使用
查看>>
团队编程项目作业1-成员简介及分工
查看>>
使用Chrome(PC)调试移动设备上的网页
查看>>