String创建方式及其区别

1.直接赋值法:String name1 = "jie";

这种方法值并不会出现在堆中,而是直接出现在常量池中,而且在再进行直接赋值时String name2 = "jie";会先在常量池中寻找所赋的值是否已经存在,若存在则使变量指向值的地址,则name1于name2的地址会相同,若值不存在,则会在常量池中开辟新的空间。例:

public class Test {

	public static void main(String[] args) {
		
	
		String name1 = "jie";
		String name2 = "jie";//直接赋值:先在常量池中寻找所赋的值是否存在,存在则将其地址赋给变量。
		System.out.println(name1==name2);//在引用类型中,“==”用于比较地址是否相同。相同输出为ture,否则输出为false.此处输出为ture.
        }
}

2.构造方法式:String name3 = new String("qiao");

这种方法是每创建一个对象就会在堆中直接创建一个空间,并将其地址赋给变量。即使所赋的值相同,

其地址也不相同。例:

public class Test {

	public static void main(String[] args) {
		
		
		String name3 = new String("qiao");
		
		String name4 = new String("qiao");//构造方法式:每创建一个对象就会在堆中直接创建一个空间,并将其地址赋给变量。
		System.out.println(name3==name4);//此处输出为false。
        }
}    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值