zoukankan      html  css  js  c++  java
  • 菜鸟学Java(二十)——你知道long和Long有什么差别吗?

    Java中数据类型分两种:


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


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


    什么是包装类?


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


    比方我们能够定义一个类:

    public class Long {
    	int i=0;
    	public Long (int i){
    		this.i=i;
    	}
    }


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



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


    看以下的小程序:

    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相等=====");
     }		 


    输出:

    =====l与l1相等=====
    =====l与l2相等=====

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

    =====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。



     
     

  • 相关阅读:
    Maven 在pom.xml的build中配置resources,来防止我们资源导出失败的问题
    JavaWeb
    MySQL
    JavaScript
    Caused by: org.apache.ibatis.exceptions.PersistenceExceptiong 更新IDEA后报错
    Loading class `com.mysql.jdbc.Driver‘. This is deprecated.警告处理,jdbc更新处
    mybatis+oracle添加数据时如果数据存在就更新,如果不存在就插入
    条件查询器Wrapper
    查询和删除
    时间和悲观锁
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5369234.html
Copyright © 2011-2022 走看看