54.字符串类的介绍;如何比较两个字符串?

本文介绍了Java中的字符串String的重要性和使用细节。String是不可变的引用数据类型,存储分为堆和常量池两种情况。通过实例展示了==和equals()方法在字符串比较中的区别,强调了equals()方法在String类中被重写以比较字符串内容。
摘要由CSDN通过智能技术生成

字符串类的介绍

<1>字符串基本上时数据保存,传输,处理非常重要的一种手段;
<2>String解析过程繁琐,需要掌握熟记很多方法;同时需要有一定的技巧和灵性;
<3>String字符串类型是java中引用数据类型,并且String类型是使用final修饰没有自己的子类

<4>字符串存储是一个非常个性的事,分两种情况;

在内存的数据区
在内存的堆区

<5>字符串是一个常量,字符串确定后无法修改;

如何比较两个字符串?

class Member {
    public static void main(String[] args) {
        String xiaoName = new String("小哈");
        String haName = xiaoName;
        //打印结果 true 【原因】== 用来比较的是两个变量的值;
        // 在这里变量xiaoName,haName都是存储的空间首地址,这个时候其实他们的首地址相同;
        //所以为true
        System.out.println(xiaoName==haName);
        String xiaoName2 = new String("小哈");
        //打印结果 false 【原因】 在这里String 的value值相同,但是因为是引用型数据
        //所以 他们是两个不同的对象,也是两个不同的空间首地址
        //所以 他们两个变量的值不相等,所以返回false
        System.out.println(xiaoName == xiaoName2);
        //所以使用 == 用来比较字符串是不可以的 ,那么该如何进行比较呢???
        //java中规定使用equals来比较字符串
        //【问题】但是这里equals也是用来比较引用型数据变量的空间首地址的,这里为什么也可以进行比较String 的value
        //【原因】String 的equals方法也进行了之前的equals()方法重写,可以用来比较value;
        //打印结果 true
        System.out.println(xiaoName.equals(xiaoName2));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值