区别:Integer是int的封装类型是整数范围-2^31到2^31-1,long 的整数范围:-2^63 ~ 2^63 -1 long是长整型; 三.源代码中的享元模式 例子 Integer i=10; Integer j=10; System.out.println(i==j); //这里输出是true Integer a=200; Integer b=200; System.out.println(a==b); //这里输出是false...
Integer的取值范围比Long要小,因为Integer只能保存32位整数,而Long可以保存64位整数。因此,如果需要保存较大的整数值,应该使用Long。 2. 内存占用 由于Integer和Long分别对应int和long类型,所以在内存占用上也有所不同。Integer占用的内存空间比Long小,因为int占用4个字节,而long占用8个字节。 3. 使用场景 通常情况...
long是Java中的基本数据类型,表示64位的长整型数据,取值范围为-2^63到2^63-1。 Integer是Java中的包装类,用于封装基本数据类型int的值,int是32位整型数据,取值范围为-2^31到2^31-1。Integer对象除了可以存储整数值外,还可以为null。 2. 明确Java中不同类型数值比较的规则 在Java中,不能直接比较基本数据类型...
Integer c=Integer.valueOf(128);Long d=Long.valueOf(128);//System.out.println(c == d);//Error:(49, 30) java: incomparable types: java.lang.Integer and java.lang.Longout.println(d.equals(c));out.println(d.compareTo(c));// Error:(53, 33) java: incompatible types: java.lang.Int...
Long 类型指的是 java.util.Lang 对象,而不是基本类型 long (注意大小写) Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象是否是同一个对象 如果比较两个Long对象值是否相等,则不可以使用双等号进行比较,可以采用如下方式: ...
其实确实有一种情况使用==、!=这样来比较也对。 例如我写了一个测试类测试Integer和Long类型对象的比较: public class Test { public static void main(String[] args) { Integer a = new Integer(10); Integer b = new Integer(10); System.out.println("a==b:" + (a==b));//很明显false ...
关于JavaInteger和Long直接比较 关于JavaInteger和Long直接⽐较Integer和Long不能直接equals⽐较会返回False Long.class源码 `public boolean equals(Object obj) { if (obj instanceof Long) { return this.value == (Long)obj;} else { return false;} } `Integer.class源码 `public boolean equals(Object ...
Integer是int的封装类型是 32 位的整数,long 是 64 位的整数,表示范围:-2^63 ~ 2^63 -1 long是长整型
这里有个cache 如果范围是在-128~127之间,是直接从java.lang.Integer类中,直接取cache的地址,这里我们看待Integer i=100时,实际上是执行的Integer i=Integer.valueOf(100);那么可想而知的结果就是指向的是cache数组中值为100的地址,那么直接进行==操作符的比较,是相等的。