问题·:.String str = new String("abc")创建了多少个对象?

  这个问题在很多书籍上都有说到比如《Java程序员面试宝典》,包括很多国内大公司笔试面试题都会遇到,

大部分网上流传的以及一些面试书籍上都说是2个对象,这种说法是片面的。

 
而这道题目让人混淆的地方就是这里,这段代码在运行期间确实只创建了一个对象,即在堆上创建了"abc"对象。
而为什么大家都在说是2个对象呢,这里面要澄清一个概念 该段代码执行过程和类的加载过程是有区别的。
在类加载的过程中,确实在运行时常量池中创建了一个"abc"对象,而在代码执行过程中确实只创建了一个String对象。   因此,这个问题如果换成 String str = new String("abc")涉及到几个String对象?合理的解释是2个。   个人觉得在面试的时候如果遇到这个问题,可以向面试官询问清楚”是这段代码执行过程中创建了多少个对象
还是涉及到多少个对象“再根据具体的来进行回答。

最新文章

  1. php内核分析(八)-zend_compile
  2. iOS中的各种id
  3. Android系列:res之shape制作
  4. web系统测试 - 理解网络协议1 - 互联网历史沿革
  5. JavaWeb出现404一个很隐蔽的原因
  6. Vue 模板
  7. zw版【转发·台湾nvp系列Delphi例程】HALCON DirectShow
  8. 【转】IOS静态库a文件制作流程
  9. Linux 下 Lua 与 LuaSQL 模块安装
  10. DOS通讯录
  11. 简单的单页c#生成静态页源码
  12. 2014-08-05 pig
  13. DEV GridControl 鼠标单击事件
  14. java_maven_linux_windows下项目运行jar
  15. PopupWindow组件的使用问题
  16. self、parent和$this关键字
  17. 一步一步从原理跟我学邮件收取及发送 4.不同平台下的socket
  18. Cesium 实现粒子效果贴地(伪)
  19. Linux shell编程-退出的状态码
  20. BZOJ.3566.[SHOI2014]概率充电器(概率DP 树形DP)

热门文章

  1. spring中abstract bean的使用方法
  2. springmvc and maven
  3. 学习 java netty (一) -- java nio
  4. ubuntu16.04安装chrome谷歌浏览器
  5. Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
  6. 字符流、字节流、二进制及其在HTTP协议传输
  7. Keras简单使用
  8. Python3没有dict.has_key方法
  9. RAR 5.50 控制台使用记录
  10. docker应用栈实践-nginx处理静态文件