Java基础(basis)-----==和equals()的区别

1. equals方法

只能处理引用类型变量,比较两个对象是否相等。会比较两个引用变量的地址值是否相等,如果属于String类,还会比较值是否相同

package com.practice;

public class Practice {
    public static void main(String[] args) {
        String s1 = new String("AA");
        String s2 = new String("AA");
        String s3 = "BB";
        String s4 = "BB";
        String s5 = new String("BB");
        System.out.println(s1.equals(s2)); //返回true
        System.out.println(s3.equals(s4)); //返回true
        System.out.println(s1.equals(s5)); //返回false
        System.out.println(s4.equals(s5)); //返回true
    }
}

2. ==

对于基本数据类型,比较两个值是否相等;对于引用类型变量,比较两个引用变量的地址值是否相等

package com.practice;

public class Practice {
    public static void main(String[] args) {
        String s1 = new String("AA");
        String s2 = new String("AA");
        int m=2;
        int n=2;
        System.out.println(s1==s2); //返回false
        System.out.println(m==n); //返回true
    }
}

原文地址:https://www.cnblogs.com/fengfuwanliu/p/11408999.html

时间: 2024-11-15 00:58:07

Java基础(basis)-----==和equals()的区别的相关文章

java基础学习总结——equals方法

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——equals方法 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public static void main(String[] args) { 5 /** 6 * 这里使用构造方法Cat()在堆内存里面new出了两只猫, 7 * 这两只猫的color,weight,hei

Java杂谈之String----"=="与equals的区别

在程序代码的编写中,经常涉及到两个字符串的比较 这个时候一般困惑我们的是"=="和equals方法的取舍问题,实际上,只要明白了这两者 比较的区别,我们就能够正确的选择出到底采用哪种方式进行字符串的比较了 首先我们定义两个字符串 String s1 = "hello"; String s2 = new String("hello"); 这两个都建立了"hello"的字符串,但到底有什么不同呢 注意,Java中没有指针的概念,这

java中的==和equals的区别

关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指正,谢谢. 在JAVA程序中一般的基本类型(值类型int,double,boolean等)都只能通过 = = 来判断值是否相等. 如:System.out.println(1==1);System.out.println(true==true);√ 不能写成System.out.println(1.

java中,==跟equals的区别

在java中,经常有一些刚入行的新手分不清==跟equals的区别.==操作符是专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或者两个变量是否相等,只能用==操作符.如果一个变量指向的数据是对象类型,这时候就涉及了两块内存,对象本身占用已快内存,变量本身也占用一块内存,例如:Object obj = new Object();中,变量obj是一个内存,new Object();是另一个内存.此时,变量obj所对应的内存中存储的数值

Java基础(basis)-----StringBuffer和StringBuilder的区别

1. StringBuffer和StringBuilder的相同点 都继承AbstractStringBuilder类 StringBuffer和StringBuilder都是内容可变的 StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象 2. StringBuffer和StringBuilder的不同点 StringBuffer是线程安全的,StringBuilder是线程非安全的 StringBuilder的效率高于StringBuf

Java基础(basis)-----关键字break、continue、return的区别

   1.break      break只能用于switch语句和循环语句中,跳出当前循环:但是如果是嵌套循环, 则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环 for (int i = 0; i < 20; i++) { if (i == 10) { break; // 在执行i==6时强制终止循环,i==10不会被执行 } System.out.println(i); }    2.continue      continue 只能用于循环语句中,终止当前循环,但是不跳出循

java中hashcode和equals的区别和联系

HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键. 那么Java运行时环境是如何判断HashSet中相同对象.HashMap中相同键的呢?当存储了“相同的东西”之后Java运行时环境又将如何来维护呢? 在研究这个问题之前,首先说明一下JDK对equals(Object obj)和hashcode()这两个方法的定义和规范: 在Java中任何一个对象都具备equals(Object obj)和hashcode()

java String的“==”和equals的区别 (第一篇博客)

==和equals都是有比较是否相等的作用,但是它们二者有什么区别呢? 废话不多说,直接戳重点 ==比较的是地址,equals比较的是内容 但是要注意的是,在java虚拟机中含有字符串池(直接量在此池内),相同内容的字符串直接量对应为相同的对象...说得是不是有点抽象,举例来说明一下吧 String s1="hello"; String s2=new String ("hello"); s1=="hello";//true ,因为都指向直接量&q

java基础 字符串 “==” 和 “equals” 比较

demo: public class TestStringEquals { public static void main(String[] args) { String a = "test"; String b = "test"; String c = new String("test"); String d = new String("test"); String e = a; String f = new String(