Integer应该用==还是equals】的更多相关文章

问题引出:“Integer应该用==还是equals” 讨论这个问题之前我们先放一段代码 public static void main(String[] args) { Integer a1 = 2; Integer a2 = 2; System.out.println(a1==a2); //true System.out.println(a1.equals(a2)); //true Integer a3 = 127; Integer a4 = 127; System.out.println(…
== 与 equals()的联系: ==: 我们都知道Java中 == 对用于基础数据类型(byte, short, int, long, float, double, boolean, char)判断时, 是直接对变量值的比较. 而对于引用类型变量则是对变量地址的比较. equals(): 我们可以通过查阅源码看到Object类中equals()方法依然是直接对地址的比较 当然, 常见的Java类都重写了equals方法, 如封装类, Date等. 这里我们只说下Integer和String重…
来自 http://blog.csdn.net/w112736112736/article/details/77986283…
PS:最近读Java编程思想的时候发现了一些小问题.就是equals方法和==,感觉自己是真正掌握了,其实并没有.简单的记录一下. 学习内容: 1.equals 和 == 的区别  equals和==想必大家都很熟悉,但是是否真正的掌握了呢?还真就不好说.这个东西没有什么过多好讲的.我们通过例子来分析一下问题. 1. 基本数据类型  先来个简单的.基本数据类型的比较. package com.equal.test; public class Equal { public static void…
/** * Object类的equals()的声明规则: * public Boolean equals(Object obj) * * Object类的equals()方法比较规则: * 当参数obj引用的对象与当前对象为同一对象时,返回true,否则范围false */ Animal animal1 = new Dog(); Animal animal2 = new Cat(); Animal animal3 = animal1; System.out.println(animal1==an…
对于Java初学者而言,可能会对这两个比较方法比较模糊,有的人可能会觉得两个的方法使用起来结果是一样的等.如果你有这样的想法,我建议你来看看这边博客,让你充分了解这两个比较的异同,以及他们底层是如何比较的等.阅读这篇文章之前,我希望你是对Integer和String这两个类是有所了解的,否则可以参考一下博客以加深你对这两个类的理解: 1.jdk源码阅读笔记-String 2.jdk源码阅读笔记-Integer 那么,下面我将使用一些例子来引入本篇博客的主题,看看你能做对多少个题吧! public…
关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系.——摘自<Java编程思想> 多读几遍之后你会发现——这不就是句废话么233333.(开个玩笑不要打我) 先说 == (等于关系操作符) 当你在使用这个关系操作符的时候要注意等号的两边分别是什么 1.同种基本数据类型的比较: 这个相信大家都知道,就是值的比较,相等就true,不等就false 2.同种类型对象与对象之间比较 Integer a =new Integer(100);  Integer b =new Int…
基础很重要,基础很重要,基础很重要.重要的事情说三遍,. 今天聊一聊Java的数据比较,这个范围比较大,基础类型的比较.引用类型的比较. 前提: 1.Java和c#都提供自动装箱和自动拆箱操作,何为自动装箱,简单点说就是将值类型转换成为引用类型,自动拆箱就是将引用类型转换成为值类型.并且我们还经常被教导,要避免自动的装箱和拆箱操作,因为这个会影响性能. 2.比较常用的运算符是==,equals. 下面分几类来说明数据的比较, 引用类型之间的比较:Integer与Integer之间的比较.Bool…
==一般用于比较内存地址,equals()用于比较Object的值,注意int用equals()是会报错的.Integer i=1Integer k=1i.equals(k)=truei==k=truei.intValue()==k.intValue()=true Integer l=129Integer p=129l.equals(p)=truel==p=falsel.intValue()==p.intValue()=true 综上所属Integer在栈中的值-128到127是成立的 int…
今天在一家公司做了个面试题:运行下列代码,输出结果是什么 Integer a=new Integer("12");  Integer b=new Integer("12");    if (a.equals(b))  {   System.out.println(true);  }  else  {   System.out.println(false);  }    if (a==b)  {   System.out.println(true);  }  else…