「已注销」 2019-10-14 17:33 采纳率: 36.4%
浏览 228

java字符串常量池 与 堆内存 混淆

图片说明输出语句中的"abc"和输入的str 都存在什么位置?

  • 写回答

2条回答

  • Deters 2019-10-14 17:50
    关注

    "abc"存在于字符串常量池,str存在于堆内存
    当你用input.next()输入一个字符串时,JVM会先看看字符串常量池中,有没有"abc",
    1.没有,会将"abc"放入字符串常量池中,然后把"abc"的引用地址赋值给str
    2.有,则直接将"abc"的引用地址赋值给str
    而str是String类型,String是一个对象,对象需要在堆内存中开辟空间

    希望对你有所帮助

    评论

报告相同问题?

悬赏问题

  • ¥15 vc6.0中想运行代码的时候总是提示无法打开文件是怎么回事
  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题