Java中字符串的常量池

计算机存储中存在一个堆区域,堆区域中存在一个常量池,当申请了字符串变量后,会将值放入常量池中,下次申请新的变量时,会优先从常量池中查找,如果常量池中已经存在,则变量会直接指向常量池中的值,从而节省空间(jdk1.8之后的字符串常量池存在于堆中)

	String x1 = "aaa"; // 在常量池中申请空间放入"aaa"
	
	String x2 = "sss";
	
	String x3 = "aaa"; //这里x3和x1就指向常量池中同一个位置
	
	String x4 = new String("aaa"); // 这里表示要重新创建一块新的空间(不在常量池内)(x4的指向),这块空间会指向常量池中"aaa"的位置
	
	String x5 = new String("aaa"); // 同上
	
	String x6 = new String("ccc"); // 创建一块新的空间,同时在常量池创建一个"ccc",并通过新创建的空间引过来
	
	//x1==x3 true; x4==x1 false; 这里双等于号比较的是第一指向,x1,x3的第一指向是常量池中的"aaa",而x4的第一指向是开辟的新空间(新空间中的内容才是指向常量池中的"aaa")

字符串中的常量池

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值