首页 > 其他分享 >==与equals的区别

==与equals的区别

时间:2023-09-24 23:03:01浏览次数:30  
标签:区别 System 基本型 equals Integer true out



Integer i = 42;

Long l = 42l;

Double d = 42.0;


下面为true的是

A(i == l)

B(i == d)

C(l == d)

Di.equals(d)

Ed.equals(l)

Fi.equals(l)

Gl.equals(42L)


答案是 G


1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true;

int a = 220;
Integer b = 220;  
System.out.println(a==b);//true

2、两个Integer类型进行“==”比较, 如果其值在-128至127  ,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。

Integer c=3; 
Integer h=3; 
Integer e=321; 
Integer f=321; 
System.out.println(c==h);//true 
System.out.println(e==f);//false

3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true。

Integer a=1;
Integer b=2; 
Integer c=3; 
 System.out.println(c.equals(a+b));//true

4、基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。 

int i=1; 
int j = 2; 
Integer c=3; 
System.out.println(c.equals(i+j));//true

equals方法源码:

public boolean equals(Object obj) { 
         if (obj instanceof Integer) {
             return value == ((Integer)obj).intValue();
         }
         return false;
     }



标签:区别,System,基本型,equals,Integer,true,out
From: https://blog.51cto.com/AmbitionGarden/7589344

相关文章

  • Java LinkedList与ArrayList源码解析:根本区别和表面区别的详解
    在Java中,LinkedList和ArrayList是两个常见的集合类。它们都实现了List接口,但它们在实现方式上有很大的区别。本篇博客将详细解析LinkedList和ArrayList的源码,解释它们的根本区别和表面区别,并提供详细的代码解释。LinkedList与ArrayList的根本区别:数据结构:LinkedList是基于链表......
  • linux教程:cd $_与cd -有什么区别
    cd$_和cd-都是用于在命令行中切换工作目录的命令,但它们之间有一些区别。cd$_:$_是一个特殊变量,表示上一个执行命令的参数。在这种情况下,$_表示上一个命令的参数,即上一个cd命令所切换到的目录。因此,cd$_将切换到上一个命令所切换的目录。cd-:-(短横线)是一个特殊的目录名,表示前一个......
  • 字符设备和块设备的区别
    字符设备字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单......
  • Cookie和Session的区别
    在工作中,我们经常会遇到Cookie和Session这两个概念。对于它们的区别,也是面试中被问到的高频题目。因此,在本文中将简要介绍一下Cookie和Session之间的区别。 存储位置:Cookie存储在客户端(浏览器),而Session存储在服务器端。 安全性:cookie不是很安全,别人可以分析存放在本地的cook......
  • Linux是什么?它与Windows有什么区别?
    前言本文将讲解Linux是什么、它的应用领域、未来、优缺点以及它与Windows的区别。一、Linux是什么?Linux是一种自由的、开放源码的类Unix操作系统。目前存在着许多不同的Linux系统,但它们都使用了Linux内核。Linux可安装在各种计算机设备中,从手机、平板电脑、路由器和视频游戏控制台,......
  • 栈和堆的区别、FreeRTOS 中的任务栈
    栈和堆的区别、FreeRTOS中的任务栈01 堆和栈的概念堆功能堆是一块用于动态分配内存的区域,用于存储程序运行时动态创建的对象。堆的大小可以在程序运行时动态调整。特点堆的分配和释放是由程序员手动控制的。堆的分配和释放顺序的任意的,不需要遵循先进先出的原则......
  • 微信小程序 catch:tap bind:tap 的区别
    这二个都是点击事件,一个是阻止冒泡:catch:tap,bind:tap会向上冒泡。一般场景: 一个列表:1、点击行,会弹出相关详情信息,2、点击行中的按钮会执行相关的操作。 点按钮会出来二个窗口,按钮向上冒泡了,二个事件都被执行,所以会执行二次。......
  • MTK联发科MTK6795/MT6795T/MT6795M核心板参数区别对比介绍
    联发科MT6795处理器是专门为高端智能手机打造的SoC,也是联发科首款支持2K屏幕的64位真八核4GLTE解决方案。它采用了ARM的八核Cortex-A53架构,主频最高达2.2GHz,支持2100万摄像头,支持LTECat.4网络,采用28nm制程。GPU方面:MT6795搭载PowerVR的G6200系列;内存支持方面:MT6795支持双通道LPDD......
  • 说说Hashtable 与 HashMap 的区别
    1.出生的版本不一样,Hashtable出生于Java发布的第一版本JDK1.0,HashMap出生于JDK1.2。2.都实现了Map、Cloneable、Serializable(当前JDK版本1.8)。3.HashMap继承的是AbstractMap,并且AbstractMap也实现了Map接口。Hashtable继承Dictionary。4.Hashtable中大部......
  • [Java]BigDecimal与Double的区别和使用场景
    BigDecimal与Double的区别和使用场景背景在项目中发现开发小组成员在写程序时,对于Oracle数据类型为Number的字段(经纬度),实体映射类型有的人用Double有的人用BigDecimal,没有一个统一规范,为此我在这里总结记录一下。一般说到BigDecimal与Double,绕不开的就是金融或电商行业,毕竟涉及......