new String(“111“)到底会创建几个对象

String对象详解

简单描述

字符串可以说是java中非常常见的一种数据类型了,我们在日常的开发中对其的使用及其的频繁,并且它也是笔试面试中常考的一个知识点,因此我们非常有必要对其做一定了解。今天这篇文章以一个常见的面试题为引子,详细的对String做一个描述。

String入门常识

  1. String对象有两个存储的空间,一个常量池(字符串常量池)(jdk1.7后再堆空间中划出一块作为常量池,1.7之前是在方法区中划一块空间做常量池),另一个就是堆空间。
  2. String之所以有两块存储空间,是因为String在编程中比较常用,为了节省空间,同时也提高了效率(减少了对象的创建)。
  3. String是被final关键字修饰的类,因此它是不可变对象,不能被继承。
  4. String对象的拼接都是通过StringBuilder完成,然后调用起toString()方法创建一个新的String对象。
  5. intern()方法:返回调用者对象在常量池中的对象。比如 “111”.intern(); 如果"111"这个String对象在常量池中已经存在,则该方法的调用只会返回该对象,再不做其他操作,如果"111"这个String对象不在常量池中,该方法会在常量池中创建一个,然后返回。

注: 其实intern()方法是为了让调用者使用它在常量池中的对象,因为,无论是通过字面量的方式使用还是通过new 关键字都会在常量池中创建对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值