【JVM】自动内存管理-String test1=”mytest“和String test2=new String(“mytest“)的区别

虚拟机栈 中存放了局部变量,基本数据类型boolean、byte、char、short、int、float、double、long、对象引用(不是对象本身)
堆 中存放了对象实例

==比较的是对象内存地址 String类中的equals()比较的是对象的内容

public void testString() {
		String test1 = "mytest";
		String test2 = "mytest";
		String test3 = new String("mytest");
		String test4 = new String("mytest");
		String test5 = "mytes";
		test5 = test5 + "t";
		String test6 = "mytes" + "t";
		
		assertEquals(test1, test3);		
		**assertFalse(test1 == test3);**
		assertTrue(test1 == test2);		
		**assertFalse(test3 == test4);		
		assertFalse(test1 == test5);**		
		assertTrue(test1 == test6);
	}

参考资料:
https://www.cnblogs.com/wskb/p/10970787.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值