Java易混小知识——equals方法和==的区别
一、equals方法和==的区别
1.equals是String对象的方法,可以通过".“调用。
2.== 是一个运算符。
二、常用的比较用法
1、基本数据类型比较。
equals和==都比较两个数值 是否相等。相等即为true,不相等则为false。
2、引用对象的比较。
equals和==都比较栈内存中的地址是否相等。相等即为true,不相等则为false。
三、易错点
1、String是一个特殊的引用类型。对于两个字符串的比较,不管是==还是equals这两者比较的都是字符串是否相同。
2、当创建两个String对象时,内存中的地址是不相同的,你可以赋相同的值。
所以字符串的内容相同。引用的地址不一定相同。
3、基本数据类型比较(String除外)==和equals都是比较数值。
四、例子演示
比较String对象:Ex
public class TestEquals {
public static void main(String args[]){
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println("s1 == s2的结果是:"+(s1 == s2));//false
System.out.println("s1.equals(s2)的结果是:"+s1.equals(s2));//true
}
}
基本数据类型此处省略(两者效果一样)。
Java易混小知识——equals方法和==的区别的更多相关文章
- Java中的“==操作符”和equals方法有什么区别
Java中的"=="和equals方法究竟有什么区别? 1.==操作符 "=="操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的 ...
- [java] 更好的书写equals方法-汇率换算器的实现(4)
[java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]> [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...
- 关于java中的hashcode和equals方法原理
关于java中的hashcode和equals方法原理 1.介绍 java编程思想和很多资料都会对自定义javabean要求必须重写hashcode和equals方法,但并没有清晰给出为何重写此两个方 ...
- equals方法和==的区别
equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = &quo ...
- K:java中的hashCode和equals方法
hashCode和equals方法是Object类的相关方法,而所有的类都是直接或间接的继承于Object类而存在的,为此,所有的类中都存在着hashCode和equals.通过翻看Object类 ...
- Java 基本数据类型 及 == 与 equals 方法的区别
Java数据类型分为基本数据类型与引用数据类型. 1 基本数据类型 byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128~127,默认值0 short:短整型,2个字 ...
- Java 重写hashCode 方法和equals方法
package Container; import java.util.HashSet; import java.util.Iterator; /* Set 元素是无序的(存入和取出的顺序不一定一致) ...
- Java:Object类的equals()方法 如何编写一个完美的equals()方法
一 代码实例: package freewill.objectequals; /** * @author freewill * @see Core Java page161 * @desc get ...
- 简述java中equals()方法和==的区别
==与equals的主要区别是: ==: ==常用于比较原生类型(基本数据类型):byte,short,char,int,long,float,double,boolean,比较的是他们的值. 若用= ...
随机推荐
- jquery入口函数的测试
/*编写一个自定义的jquery框架*/ (function (window,undefined) { var njquery=function (selector ,) { return new j ...
- C++ 编译错误 jump to case label [-fpermissive]
<花的微笑>--- 钢琴曲,石进 今天再用C++写代码时,出现了编译错误 jump to case label [-fpermissive] 原因:使用switch语句时,再case中定义 ...
- centos 防火墙相关命令
防火墙关闭: systemctl stop firewalld systemctl disable firewalld 重启防火墙: systemctl enable firewalld system ...
- WebSocket 中的Netty
测试Channelhandler EmbeddedChannel提供了下面一些方法: writeInbound(Object...),写一个消息到入站通道 writeOutbound(Object ...
- C++操作文件行(读取,删除,修改指定行)
/******************************************************** Copyright (C), 2016-2018, FileName: main A ...
- ARTS第六周打卡
Algorithm : 做一个 leetcode 的算法题 1.合并两个排序链表 2.树的子结构 3.二叉树的镜像 4.包含Min函数的栈 5.栈的压入.弹出 6.二叉搜索树的后序遍历 7.从上往下打 ...
- python学习-50 pickle模块
pickle模块 与json方法是一样的 import pickle dic = {'} print(type(dic)) a = pickle.dumps(dic) print(type(a)) f ...
- Django路由配置
Django路由配置系统.视图函数 1.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是 ...
- PCA降维笔记
PCA降维笔记 一个非监督的机器学习算法 主要用于数据的降维 通过降维, 可以发现更便 于人类理解的特征 其他应用:可视化:去噪 PCA(Principal Component Analysis)是一 ...
- shell习题第22题:
[题目要求] 加入A服务器可直接ssh到B,不用输入密码.A和B都有一个目录是/data/web/这下有很多文件,我们不知道这下面有多少层目录,但是之前的目录结构和文件是一模一样的.但是现在不确定是否 ...