String类

本文探讨了Java中String对象的两种赋值方式——直接赋值和使用new关键字,以及它们的区别。通过实例代码展示了"=="和"equals"方法在比较字符串时的不同:"=="比较的是内存地址,而"equals"比较的是内容。此外,还介绍了字符串常量池的概念,强调了字符串作为对象的特性,并通过匿名对象的示例进一步阐述了这一概念。
摘要由CSDN通过智能技术生成

string类的学习01

1.String赋值方式

1.1 直接赋值和使用new关键字赋值

package student;

public class StringDemo1 {
    public static void main(String[] args) {
        String str1="zhuyun";//使用直接赋值的方式
        String str=new String("zhuyunyun");//使用new方式赋值
        System.out.println(str1);
        System.out.println(str);

    }
}

2.==和equals区别

2.1使用==开辟一块内储存空间,比较的时内存地址,必须进行内存的分析

strzhuyn输出的值全部相同共同指向一个字符串“zhuyun”
str1
str2
package student;

public class StringDemo2 {
    public static void main(String[] args) {
        //直接赋值方式比较的是什么?
        String str="zhuyun";
        String str1=new String("zhuyun");
        String str2=str1;
        System.out.println("str==str1么:"+(str==str1));
        System.out.println("str==str2么:"+(str==str2));
        System.out.println("str1==str2么:"+(str1==str2));
    }
}

输出的值为:

str==str1么:false
str==str2么:false
str1==str2么:true

Process finished with exit code 0

2.2string的“equals”,在堆内开辟两块存储,比较的是内容的值是否相同

package student;

public class StringDemo3{
    public static void main(String[] args) {
        //直接赋值方式比较的是什么?
        String str="zhuyun";
        String str1=new String("zhuyun");
        String str2=str1;
        System.out.println("str==str1么:"+(str.equals(str1)));
        System.out.println("str==str2么:"+(str.equals(str2)));
        System.out.println("str1==str2么:"+(str1.equals(str2)));
    }
}
str==str1么:true
str==str2么:true
str1==str2么:true
Disconnected from the target VM, address: '127.0.0.1:55559', transport: 'socket'

Process finished with exit code 0
结论:“==”是比较堆内存地址,需要进行内存分析,equals是比较值是否相同。

2.3 一个字符串就是String的匿名对象

package student;

public class StringDemo4 {
    public static void main(String[] args) {
        System.out.println("zhuyun".equals("zhuyun"));
    }
}

true
Disconnected from the target VM, address: '127.0.0.1:55701', transport: 'socket'

Process finished with exit code 0

结论:字符串能够调用equal方法,说明字符串本身就是对象,而且是匿名的,所以叫做匿名对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值