Java中 equals 和 == 的比较
先来看这样一个题目,假设有以下代码 下列选项中返回false的语句是?
String s = "hello";
String t = "hello";
char c [ ] = {'h','e','l','l','o'};
s.equals (t); //A
t.equals (c); //B
s==t; //C
t.equals (new String ("hello")); //D
在公布答案之前,我们先来这样几个知识点。
1、Java数据类型分为:
- 基本数据类型
- 引用数据类型
2、对于"=="
- 用于基本数据类型相互比较,比较二者的值是否相等。
- 用于引用数据类型相互比较,比较二者地址是否相等。
- 不能用于基本数据类型与引用型比较。
3、对于"equals"
- 不能用于基本数据类型比较(因为这是一个方法, 继承自 Object)。
- 用于进行对象的比较,比较二者的内容是否相同。(为 Number 对象时,若对象不为 Null,且与方法的参数类型与数值都相等返回 True,否则返回 False。)
4、特殊情况
- 数值型基本类型和数值型类会存在自动装箱和自动拆箱。
- 字符串会以常量形式存在, 如果多个字符串变量值相同, 则他们指向同一个地址。
- 数值类型会存在类型自动转换。
到这里,答案就很明了了,选择 B。
作者:耑新新,发布于 博客园
转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com
Java中 equals 和 == 的比较的更多相关文章
- Java中equals与==和comparaTo的区别
一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...
- java中equals和==的区别 (转)
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
- 【转】Java中equals和==的区别
[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...
- 关于java中equals与==的区别的小实验
java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的两个对象在JVM中的地址,是一种操作符. 做了几个小实验比较结果. 实验一: String ...
- java中equals和hashCode方法随笔二
前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...
- 深入探究Java中equals()和==的区别是什么
目录 相等判断符"==" "=="判断基本类型数据 "=="判断引用类型数据 相等判断方法equals() 思考:为什么要设计equals( ...
- java中equals方法和==的用法
java中equals方法的用法以及==的用法(参考一)equals 方法是 java.lang.Object 类的方法.两种用法说明:(1对于字符串变量来说,使用“==”和“equals()”方法比 ...
- Java中equals和hashcode的区别?
Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用 ...
- java中equals和"=="的区别
"=="号,它比较的是一个对象在内存中的地址值, 比如2个字符串对象String s1 = new String("str");String s2 = new ...
- java中.equals和==的区别?
Java中的equals是十分重要的,和= =要区别开来,孙卫琴的JAVA面向对象编程一书对这个做了阐述,现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式 ...
随机推荐
- php 微信公众号上传永久素材
<?php namespace Mob\Controller; use Think\Controller; class WxmaterialController extends Controll ...
- Java学习之静态代码块
一.static(在方法区有一块固定的存储区域,由于优先于对象存在,所以可以被所有对象共享) 在定义方法的时候你写main方法的类加static, 写普通类的写方法的时候就不要加static 1.st ...
- Java 8新特性之Date/Time(八恶人-4)
Mannix‘s Marauders -Chris Mannix 曼尼克斯掠夺者 曼尼克斯·克里斯 “I'm the new sheriff of Red Rock.” “我是红石镇的新任警长” ...
- Mobile Phone Network CodeForces - 1023F(并查集lca+修改环)
题意: 就是有几个点,你掌控了几条路,你的商业对手也掌控了几条路,然后你想让游客都把你的所有路都走完,那么你就有钱了,但你又想挣的钱最多,真是的过分..哈哈 游客肯定要对比一下你的对手的路 看看那个便 ...
- IDEA中新建Module时Module name、Content root、Module file location的含义
如下图测试: 最开始默认情况下,Content root.Module file location两行,最末尾的数据跟Module name是相同的. 现在对三行数据,强制进行不同的命名,Finish ...
- matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正
matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正 2015-04-06 22:45 5407人阅读 评论(2) 收藏 举报 分类: 机器 ...
- Fib的奇怪定理 : gcd(F[n],F[m])=F[gcd(n,m)]
引理1:gcd(F[n],f[n-1])=1 因为 F[n]=f[n-1]+F[n-2] 所以 gcd(F[n],f[n-1]) = gcd(F[n-1]+F[n-2],F[n-1]) gcd的更损相 ...
- java绘图合并图像AlphaComposite模式测试
package com.hdwang.test; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.sw ...
- EasyUI 格式化列
以下实例格式化在 easyui DataGrid 里的列数据,并使用自定义列的 formatter,如果价格小于 20 就将文本变为红色. 为了格式化一个数据网格(DataGrid)列,我们需要设置 ...
- Golang的交互模式进阶-读取用户的输入
Golang的交互模式进阶-读取用户的输入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 读写数据除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出. ...