1. 数据类型定义 在Java中,long是一种基本数据类型,而Integer是一种包装类(Wrapper Class)。基本数据类型相对占用内存较小,表现更为高效,而包装类则提供了一种将基本数据类型转换为对象的方式。 long是64位的有符号整数,范围从 -2^63 到 2^63-1。 Integer是32位的有符号整数,范围从 -2^31 到 2^31-1。
在Java中,Integer是一个32位带符号整数,而Long是一个64位带符号整数。因此,Long可以表示的数值范围要比Integer更大。在进行比较操作时,我们需要注意类型转换的问题,以避免产生不可预见的结果。 1.1 类型自动转换 Java会在数字运算时自动进行类型转换。例如,当你试图比较一个Long和一个Integer时,Java会将Integer自动提...
return LongCache.cache[(int)l + offset]; } return new Long(l); } 一目了然,会先判断基本类型的值如果在-128~127之间,就会直接从LongCache里面取出缓存的对象返回,否则就new一个新的Long对象返回 。 现在就不难理解Test05程序执行得到的结果了,因为a与b等于5,在-127~128之内,所以都是直接从LongCache...
cache[i] = new Integer(i - 128); } 很明显这个静态块已经默认认创建出了-128~127 的 Integer 数据,因此Integer在创建对象时,若值在(-128到127)范围内,则直接从缓冲区中取,若超过该范围则创建新对象,因此在-128到127范围内Integer对象值相同时,对象==返回true Long对象同理。 注:内容结合了网络的一些...
long是Java中的基本数据类型,表示64位的长整型数据,取值范围为-2^63到2^63-1。 Integer是Java中的包装类,用于封装基本数据类型int的值,int是32位整型数据,取值范围为-2^31到2^31-1。Integer对象除了可以存储整数值外,还可以为null。 2. 明确Java中不同类型数值比较的规则 在Java中,不能直接比较基本数据类型...
Byte;Short;Integer;Long;AtomicInteger;AtomicLong;Float;Double;BigInteger;和 BigDecimal. 可能您代码可靠 compareTo() 为一系列的如果不下放的方法假如语句吗?Number 实例只能有六种方法向他们提供: 代码语言:javascript 复制 byteValue();shortValue();intValue();longValue();floatValue();和doubleValue(). ...
Long 类型指的是 java.util.Lang 对象,而不是基本类型 long (注意大小写) Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象是否是同一个对象 如果比较两个Long对象值是否相等,则不可以使用双等号进行比较,可以采用如下方式: ...
今天有同事问我,两个Integer类型的数值进行比较的时候,为什么老是不相等,之前也接触过,只是记得不太清楚了,好像是包装类型缓存了一个字节的数值吧,然后直接让他换成compareTo进行比较,闲下来,自己又翻了下api,直接贴一下源码了 Integer和Long的包装类型,自己
publicintcompareTo(LonganotherLong){returncompare(this.value,anotherLong.value);} 但是,仍然局限在Long类型之间比较。就是说,下面的代码 Error:(53, 33) 依然编译不通过 Integerc=Integer.valueOf(128);Longd=Long.valueOf(128);//System.out.println(c == d);//Error:(49, 30) java: incomparable ty...
相同点: Ingeter和Long都是包装类,初值为null; 通过equals比较变量是否相同,==在一定的范围内可以使用(在以下享元模式中解释); 区别:Integer是int的封装类型是整数范围-2^31到2^31-1,long 的整数范围:-2^63 ~ 2^63 -1 long是长整型; 三.源代码中的享元模式 ...