gpt4 book ai didi

java - String args[] 参数是否创建了一个新的 String 实例?

转载 作者:行者123 更新时间:2023-12-04 05:33:32 25 4
gpt4 key购买 nike

是否参数String args[]用于接受 main() 中的命令行参数如果未提供命令行参数,则会产生影响。

是否:

  • 创建一个新的字符串对象?
  • 是否有任何内存分配给它?

  • Java遇到 String args[]怎么办? ?

    更新:
    想问一个相关的问题:如果没有提供cmdline args,String args[] 是空的还是空的?

    最佳答案

    A String[] is an object and an empty one will be about 16 bytes.

    That was helpful. How can I calculate that myself?

    public static long memoryUsed() {
    final Runtime rt = Runtime.getRuntime();
    return rt.totalMemory() - rt.freeMemory();
    }

    public static void main(String... args) {
    long before = memoryUsed();
    String[] arr = { };
    long after = memoryUsed();
    if(before == after) throw new AssertionError("you need to turn off the TLAB with -XX:-UseTLAB");
    System.out.printf("The String[] used %,d bytes of memory%n", (after - before));
    }
    版画
    The String[] used 16 bytes of memory
    注意:这会打印创建对象使用了多少内存。如果创建临时对象,这可能会超过保留的数量。

    关于java - String args[] 参数是否创建了一个新的 String 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276856/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com