gpt4 book ai didi

Java教科书: "the size of an array must be known at compile time"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:44 25 4
gpt4 key购买 nike

我刚刚浏览了我的一本旧教科书,发现了这段在 Java 中定义数组的文章:

A one-dimensional array is a structured composite data type made up of a finite, fixedsize collection of ordered homogeneous elements to which there is direct access. Finite indicates that there is a last element. Fixed size means that the size of the array must be known at compile time, but it doesn’t mean that all of the slots in the array must contain meaningful values.

我对数组有基本的了解,并且可以在日常任务中轻松使用它们,但是我对数组的大小必须在编译时已知的说法感到非常困惑。

一个非常简单的 Java 程序演示了一个数组可以在运行时以可变大小实例化:

import java.util.Scanner;

public class test
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("Enter a number: ");
int size = scan.nextInt();
int[] array = new int[size];
System.out.println("You just create an array of size " + array.length);
}
}

这样编译,执行,无误地到达终点。

什么给了?

最佳答案

这是一个措辞非常糟糕的段落,但如果你粗略地解释它,它是正确的。

在您的示例中,数组的大小在编译时是已知的。尺寸为 size

您将“在编译时已知”解释为“静态”或“常量”,这是可以理解的。当然,正如我们所知,JVM 根据 size 的值动态分配内存。

作者可能试图区分数组和类似 ArrayList 的东西,后者的维度不必在初始化时指定。

关于Java教科书: "the size of an array must be known at compile time",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207969/

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