【问题标题】:Number of string objects created in program [duplicate]程序中创建的字符串对象的数量[重复]
【发布时间】:2017-03-20 12:32:20
【问题描述】:
String s1="abc";                  //line 1
String s2 = new String ("abc");   //line 2
String s3 = "abc";                //line 3
String s4 = s1+s2+s3;             //line 4

我需要知道总共创建了多少个对象。(堆和 SCP 区域)。

在第 1 行,SCP 中的一个对象“abc”

在第 2 行,堆中的一个对象“abc”

在第 3 行,s3 指向 SCP 中已经存在的对象“abc”

到目前为止,有 2 个对象。我无法准确计算出第 4 行之后有多少。有没有办法找出在这些情况下使用 java 程序创建了多少对象?

【问题讨论】:

  • 你读过编译器是如何处理字符串连接的吗?

标签: java string


【解决方案1】:

我认为您无法检查使用 java 代码创建的对象数量。 执行第 4 行后,将创建总共 4 个对象。

  1. “abc”(堆内存)
  2. “abc”(SCP)
  3. “abcabc”(SCP)
  4. “abcabcabc”(SCP)。

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 2012-12-20
    • 2011-02-26
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多