有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    String arr[] = {"Paul", "Steven", "Jennifer", "Bart"};
    for (Object o : arr) {
       System.out.format("%d\n", o.hashCode());
    }
    System.out.format("%d\n", arr);
    

    你应该得到5个不同的哈希代码。强烈建议堆中现在有5个对象

  2. # 2 楼答案

    创建了九个对象

    每个字符串是两个对象。字符串引用和字符串的底层char[]。对于4个字符串,就是8个对象

    然后是String[]本身,总共9个

    当然,这假定JVM尚未对字符串文本进行intern()编辑。如果有,那么它将不会创建String,而是从intern池中提取它,这可能会给您总共1、3、5、7个或最初创建的9个对象,具体取决于String的数量

  3. # 3 楼答案

    创建了五个对象

    如果你正在使用

    int[] i = new int[5];

    然后jvm将在堆上创建一个对象

    但是如果你为数组提供元素,例如

    i[0] = 1;
    i[1] = 2;
    .
    .
    i[4] = 5;
    

    然后jvm将在堆上创建六个包含五个整数和一个数组对象的对象

  4. # 4 楼答案

    根据你怎么看它,你可以说9个物体,也可以说只有一个。如果在调试器中查看此数组,您将能够看到9个对象,即数组、字符串对象和这些字符[]中的字符[]

    但是,字符串文本在一个池中,并且不是每次都创建(只创建一次),因此如果您多次运行这一行,那么每次只创建数组。i、 e.只创建一个附加对象

  5. # 5 楼答案

    1到5之间,具体取决于JVM实现和状态。一个新的字符串数组显然被创建了,字符串——我们不知道

    编辑:正如有人在其他答案中指出的那样。1-9将是更准确的答案。因为在构造字符串时,在字符串中创建了一个char[]

  6. # 6 楼答案

    答案是否定的,因为Array不能创建对象,只有new可以:P