Java中==和equals的区别(2022.4.29)

面向对象高级

(一.)String类

  • String是字符串的意思,它是一种引用数据类型,同时它也是一个类(class);它和常用的基本类型不同。

1、String有两种创建字符串的方式如:

    // 第一种方式是:直接赋值(变量)
    String str = "Hello"; 
    // 第二种方式是:构造方法创建(对象)
    String str1 = new String("hello");

2、== 和 equals 有何区别?

区别:

  1. 首先 == 是一个操作符,而 equals() 是 Object 类中的一个方法;只能用来比较字符串是否相等;
  2. 当使用 == 比较基本数据类型的时候,== 比较的数值;当比较字符串的时候 == 比较的时候堆内存中的内存地址;
  3. 当使用 equals() 方法比较字符串的时候它比较的字符串的具体内容;
  4. equals() 不能比较数据类型。

注意:equals() 在比较时会区分大小写的,如果大小写不一致是不会相等的。

练习:

    package zhai.string;
    /*
        String类的创建方式
     */
    public class StringDemo1 {
        public static void main(String[] args) {
            int a = 10;
            int b = 10;
            String s = "s:hello";
            String s1 = new String("s1:hello");
            System.out.println(s);
            System.out.println(s1);
            System.out.println("使用 == 比较字符串 ==============================");
            // == 比较堆内存的地址
            if (s==s1){
                System.out.println("s==s1");
            }else {
                System.out.println("s!=s1");
            }
            System.out.println("使用 equals 比较字符串 ============================");
            // equals 比较的是字符串内容
            if (s.equals(s1)){
                System.out.println("s==s1");
            }else {
                System.out.println("s!=s1");
            }
            System.out.println("使用 == 比较数据类型 ==============================");
            // 使用 == 比较基本数据类型
            if (a == b){
                System.out.println("a==b");
            }else {
                System.out.println("a!=b");
            }
        }
    }
    输出:
    	s:hello
    	s1:hello
        ==============================================
        s!=s1   // 注意:两个字符串的内容完全相等,所以肯定它比较的是内存地址
        使用 == 比较字符串 ==============================
        s==s1  // 这个比较的是字符串内容
        使用 equals 比较字符串 ============================
        a==b  // 这个比较的是数值
        使用 == 比较数据类型 ==============================

equals() 比较的时候会区分大小写,通过 equalsIgnoreCase() 可以无视大小写,比较字符串内容是否相等.

package zhai.string;
public class StringDemo2 {
    public static void main(String[] args) {
        String a = "a";
        String b = "A";
        System.out.println(a.equals(b));  // 这里是区分大小写的
        // 使用 equalsIgnoreCase 可以无视大小写,指比较内容是否相等
        System.out.println(a.equalsIgnoreCase(b));
    }
}
输出:
    false   // equals() 会区分大小写的
    true   // equalsIgnoreCase() 这个方法不会区分大小写,指比较字符串内容~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值