Java :String字符串

今天,我们来学习一下Java里面的String字符串,作者依旧尽量用白话描述,希望能够帮助到大家

Java字符串的本质是在栈中存储指针指向堆里的数组,该数组地址和内容均不可变,若更改字符串的值,其实是将指针修改,在堆中开辟一片新的区域存储更改后的值,然后让指针指向这个区域

将字符串a的值赋予字符串b的本质是将a存储的地址赋予b,两者指向同一组数据

String a="abc";

String c=new String ("abc");

第二句代码的作用是不与字符串a共同指向同一个存储区域,而是单独再开辟出一块区域,存储字符串

虽然 a、c 两个字符串的值相同,但是他们指向的地址不同

接下来我们学习一下比较两个字符串的方法

1、equals方法

public class Test {
	public static void main(String[] args) {
		String a="sds";
		String c=new String ("sds");
		System.out.println(a.equals(c));
	}
}

 equals比较的是两个字符串的值是否相等

ps:equals仅在String类型的比较中比较的是值,在其他数据类型中比较的都是地址

返回布尔类型的值,两个字符串的值相等,所以返回true

2、直接通过双等号比较

public class Test {
	public static void main(String[] args) {
		String a="sds";
		String c=new String ("sds");
		System.out.println(a==c);
	}
}

使用双等号的原理是比较它们指向的地址 

因为a和c并不指向同一个存储区域,因此返回false

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

希望对大家有所帮助,如果有错误,欢迎批评指正。

发布了33 篇原创文章 · 获赞 71 · 访问量 4853

猜你喜欢

转载自blog.csdn.net/weixin_44407699/article/details/96307684