java面向对象基础 String类

String 类的两种实例化方式

 A.直接赋值

public class Stringlei
{
	public static void main(String args[]){
		String name="张三";
	System.out.println("姓名:"+name);
	}
}

B.通过关键字new

public class Stringlei
{
	public static void main(String args[]){
		String name=new String("张三");
	System.out.println("姓名:"+name);
	}
}

String的内容比较

    1.使用“==”比较

  
public class Stringlei
{
	public static void main(String args[]){
	   String  str1="hello";
	   String str2=new String("hello");
	   String str3=str2;
	   System.out.println("str1==str2?-->"+(str1==str2));//false
	   System.out.println("str1==str3?-->"+(str1==str3));//false
	   System.out.println("str2==str3?-->"+(str2==str3));//true
	}
}

由此可知:"=="判断的是地址空间是否相等判断的是地址,如果想要判断内容,则必须使用String中提供的equals()方法完成:

public class Stringlei
{
	public static void main(String args[]){
	   String  str1="hello";
	   String str2=new String("hello");
	   String str3=str2;
	   System.out.println("str1==str2?-->"+(str1.equals(str2)));//true
	   System.out.println("str1==str3?-->"+(str1.equals(str3)));//true
	   System.out.println("str2==str3?-->"+(str2.equals(str3)));//true
	}
}
两种实例化方式的区别

   在String中可以使用直接赋值和new调用构造方法完成。比较两种方法。

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

public class Stringlei
{
	public static void main(String args[]){
	   String  str1="hello";//实际就是将一个堆内存空间的指向给了栈内存空间
	   String  str2="hello";
	   String  str3="hello";
	   System.out.println("str1==str2?-->"+(str1==str2));//true
	   System.out.println("str1==str3?-->"+(str1==str3));//true
	   System.out.println("str2==str3?-->"+(str2==str3));//true
	}
}



字符串的内容不可改变   

public class Stringlei
{
	public static void main(String args[]){
	   String  str="hello";
	   str=str+" world!";
	   System.out.println("str = " +str);
	}
}

此处并不是简单的改变了str中的内容,具体如下图:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值