JAVA中Integer类型变量比较问题】的更多相关文章

今天在做实验的时候,发现了一个比较奇怪的问题:两个Integer型变量用==进行比较时,有时候能成功有时候不能成功.举个例子: 代码1: Integer l1 = 122; Integer l2 = 122; if(l1 == l2) System.out.println("Right"); else System.out.println("Wrong"); 运行这段代码时,程序会输出:Right.对于另一个例子: 代码2: Integer l1 = 233; In…
java中Integer比较需要注意的问题 package com.srie.test; import java.util.HashMap; import java.util.Map; public class Test003 { public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put("i1", new I…
java中Integer 和String 之间的转换 将数组转换成字符串:char[] array = {'a','b','c','d','e'};String str = new String(array);System.out.println(str);//abcde…
一.Java中什么叫做引用类型变量?引用:就是按内存地址查询       比如:String s = new String();这个其实是在栈内存里分配一块内存空间为s,在堆内存里new了一个String类型的空间,在运行时是 栈内存里的 s 指向堆内存里的那一块存储空间    基本数据类类型存的是数值本身,而引用类型变量在内存放的是数据的引用,并不是数据的本身,引用类型变量是以间接方式去获取数据.    引用类型变量都属于对象类型,如:数组.类.字符串等都属于引用类型变量.所以,引用类型变量里…
第一节 String类型的方法参数 运行下面这段代码,其结果是什么? package com.test; public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String[] args) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out…
从JDK1.0开始,Integer中就定义了MIN_VALUE和MAX-VALUE两个常量: /** * A constant holding the minimum value an {@code int} can * have, -2<sup>31</sup>. */public static final int MIN_VALUE = 0x80000000; /** * A constant holding the maximum value an {@code int} c…
在开始详细的说明问题之前,我们先看一段代码 public static void compare1(){ Integer i1 = 127, i2 = 127, i3 = 128, i4 = 128; System.out.println(i1 == i2); System.out.println(i1.equals(i2)); System.out.println(i3 == i4); System.out.println(i3.equals(i4)); } 这段代码输出的结果是什么呢? 答案…
  一.开始 public final class Integer extends Number implements Comparable<Integer> 1).由于类修饰符中有关键字final,故该类不能够被继承 2).继承了抽象类Number 3).实现了接口Comparable,即实现了compareTo方法 4).重写了hashCode和equals方法,其中hashCode是value,而equals只是比较同种类型的intValue的值 public int compareTo…
java.lang 类 Integer java.lang.Object java.lang.Number java.lang.Integer 全部已实现的接口: Serializable, Comparable<Integer> public final class Integer extends Number implements Comparable<Integer> Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包括一个 int 类型…
Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float.short.Java作为一种面向对象的编程语言,数据在Java中也是一种对象.我们用基本数据类型创建的对象,如 int x = 0;这里的x只有值这个属性,没有(或者很少)有其他的方法.这在一些需要对数据进行操作时变的很不方便,程序员需要自己编写很多代码去实现一些常用的功能,增加了工作量及程序的大小. 所以,Java中每种基本数据类型都有其对应的引用类,或者叫封装类.如int的引用类为…
“equals”比较:equals(Object obj)方法,在equals(Object obj)方法中,会先判断参数中的对象obj是否是Integer类型的对象,如果是则判断值是否相同,值相同则返回true,值不同则返回false,如果obj不是Integer类的对象,则返回false.需要注意的是:当参数是基本类型int时,编译器会给int自动装箱成Integer类,然后再进行比较. “==”比较:“==”用来比较对象地址是否相同IntegerCache 缓存:JAVA的Integer有…
示例代码: class BoxIntInteger { public static void main(String[] args) { Integer a = new Integer(10111); int b = 10111; boolean equal1 = a == b; boolean equal2 = a.equals(b); System.out.println(equal1); System.out.println(equal2); } } 反编译字节码: public stat…
彩票客户端“忘记密码”功能有bug,今天调试时,发现了原因: 功能模块中有一段: if(userpo.getId()!=Long.valueOf(uid)){ throw new VerifyException("mobile have been binded for uid=" + uid , AppCode.VERIFY_MOBILE_IS_BIND); } 问题就处在两个Long型对象的比较. 情景: userpo.getId()返回一个Long型对象,值是10027: Long…
我们先看一个关于Integer的例子 public static void main(String[] args) { // TeODO Auto-generated method stu Integer i1 = 40; Integer i2 = 40; Integer i3 = 0; Integer i4 = new Integer(40); Integer i5 = new Integer(40); Integer i6 = new Integer(0); System.out.print…
运行下面这段代码: System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); System.out.println(Integer.valueOf("128")==Integer.valueOf("128")); System.out.println(Integer.parseInt("128")==Integer.valueOf…
在Java的Integer类中,有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,他们都能够将字符串转换为整型,他们到底有什么区别呢?今天就来分析下. 本文目录 一.源码分析二.结论三.扩展 一.源码分析 Integer.parseInt(String s)的源码: public static int parseInt(String s) throws NumberFormatException {    return par…
一. Integer 1.引子 在开始之前,我还是需要吐槽下自己,我是真的很菜! 他问:**两个Integer对象==比较是否相等? 我答:对象==比较,是引用比较,不相等! 他问:IntegerCache这个用来干什么? 我答:......,我不是很清楚!!! 从这里可以看出,我是真的很水!! 基于这些原因还有其他的等等,我开始写博文,开始写踩过的坑! 2.IntegerCache 在介绍这个缓存之前,先来认知下Integer.java中,int是基本的数值类型,表示整型:Integer是其对…
基本概念的区分: 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2.Integer 变量必须实例化后才能使用,而int变量不需要 3.Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象:而 int 则是直接存储数据值 4.Integer的默认值是null,int的默认值是0 Integer.new Integer() 和 int 的比较 1.两个 new Integer() 变量比较 ,永远是 false 因为…
如果比较两个数值相等的Integer类型的整数,我们可能会发现,用"=="比较(首先你必须明确"=="比较的是地址),有的时候返回true,而有的时候,返回false.比如: Integer i = 128; Integer j = 128; System.out.println(i == j);//返回false 然而: Integer m = 127; Integer n = 127; System.out.println(m == n);//返回true 为什…
package sfk.bbs.test.springjsbctempletTest; import static org.junit.Assert.*; import org.junit.Test; public class testBase { @Test public void test() { Integer tt2 = -129; Integer tt = new Integer(-129);//等价于Integer tt2 = -129;,因为不在常量池[-128,127]范围内所以…
程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: package com.herman.test; public class IntegerTest { public static void main(String[] args) { System.out.println("Integer中的常量**************************…
先来看段代码 public class IntegerDemo { public static void main(String[] args) { String num = null; System.out.println( Integer.parseInt(num));// Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num));// Exception java.lang.Num…
public void Test1() { int a = 128; Integer b = 128; Integer c = 128; //Integer会自动拆箱成int,所以为ture System.out.println(a==b); System.out.println(a==c); } @Test public void Test2() { Integer a = 127; Integer b = 127; System.out.println(a == b);//此处结果为true…
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象:而int则是直接存储数据值 4.Integer的默认值是null,int的默认值是0 延伸: 关于Integer和int的比较 1.由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变…
一.Integer类的使用方法 Interger:整数类型 1.属性. static int MAX_VALUE:返回最大的整型数: static int MIN_VALUE:返回最小的整型数: static Class TYPE :返回当前类型. 例子: System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE ); 结果为:Integer.MAX_VALUE: 2147483647 2.构造函数. Integer(in…
今日内容介绍 1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 ###01创建引用类型变量公式     * A: 创建引用类型变量公式         * a: 我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型.         * b: 引用数据类型的定义格式             * 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式.             * 数据类型 变量名 =…
今日内容介绍 1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 ###01创建引用类型变量公式     * A: 创建引用类型变量公式         * a: 我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型.         * b: 引用数据类型的定义格式             * 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式.             * 数据类型 变量名 =…
Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层. 而且这里Integer对象也有特殊性.其实现上可能类似 class Integer{ final int value; //一旦赋值,就不能改变. } 这就出现:调用时传的地址值不能改变外层+对象本身又不能改变.导致这个值没法改变 解决方案很多 1.java风格就是,单个值用返回值.return i; 外面再i=foo();赋值:多个值用数组或对象. 2.传递自己的封装类.class Mutab…
Integer与int类型的关系 Integer是int的包装类,int的默认值是0,而Integer的默认值是null(我们经常在代码中使用的Integer.valueOf() 和xx.intValue()就是自动装箱和拆箱的过程 ), 需要注意的是Integer里面默认的缓存数字是-128-127, Integer与Integer相互比较,数据在-128-127范围内,就会从缓存中拿去数据,比较就相等:如果不在这个范围,就会直接新创建一个Integer对象,使用== 判断的是两个内存的应用地…
class Test{ public static void main(String[] args){ //当值在[-128,127]中,不创建新的Integer Integer f1 = 100,f2 = 100,f3 = 150, f4 = 150; System.out.println(f1 == f2); //true System.out.println(f3 == f4); //false } }…