Java基础回顾 : String类的内存分析

String类的内存分析:

        在Java之中有一种称为共享设计模式的概念.在JVM的底层会存在有一个对象池,在对象池之中会保留有已经开辟空间的对象,那么String就是利用了对象池的概念,当利用直接赋值的形式定义一个字符串时,第一次会开辟新的堆内存空间,但是随后会将此对象保存在池之中,如果下次同样使用直接赋值的形式,那么会直接取出对象池中保存的对象继续使用,并且不会开辟新的内存空间. 

	String str1 = "Hello";
	String str2 = "Hello";
	String str3 = "Hello";



String类对象两种实例化的区别?
1.构造方法:会产生两块内存空间,其中一块将成为垃圾,并且不会自动入池保存,用记可以通过intern()方法手工入池;
2.直接赋值:只会产生一块堆内存空间,可以自动入池保存.
	String str = new String("Hello");

★ . 另外需要说明的是,当字符串一旦声明之后,那么字符串的内容是不可能被改变的.当我们使用字符串连接符("+")进行操作时,改变的不是字符串本身,只是对字符串进行了重新组合生成新的字符串,新的字符串内存地址和原来的内存地址不同.改变的只是指向的内存地址.


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值