有 Java 编程相关的问题?

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

java为大小为零的数组对象分配了什么样的内存?

就我所知,对象在很大程度上是任何实体的记忆分配的同义词

String array[]=new String[0];

由于数组的大小是零,并且在数组的情况下不能增加,所以分配给这个零大小数组对象的内存是什么


共 (2) 个答案

  1. # 1 楼答案

    它通常用来表示数组中没有元素。这可以被认为比用null表示“无数据”更“友好”,允许在不引发异常的情况下进行迭代:

    for (int i=0; i<array.length; i++){
        // Do stuff, will not throw NullPointerException
    }
    

    这也允许在需要时转换为List

  2. # 2 楼答案

    内存仍然会被分配,尽管数组中没有值,只有数组头。标头将由特定标志、数组长度以及数组类型(这里是Object)等内容组成。编译器不会忽略这个数组,即使它的长度为零,因为它仍然可以被引用,并且可以用System.arraycopy()等调整大小

    创建数组而不是将其设置为null的优点是,它可以安全地通过for循环进行遍历,而无需抛出NullPointerException