gpt4 book ai didi

java - 这个语句在Java中是什么意思?

转载 作者:行者123 更新时间:2023-12-01 17:30:12 29 4
gpt4 key购买 nike

假设有一个数组声明:

int [] a = new int[3]; 

我正在读一本书,书中说我们需要在运行时显式创建数组的原因是因为我们无法知道在编译时为数组保留多少空间。那么,在上面的例子中,我们不知道我们需要保留底层 java 平台 int 大小的 3 倍吗?

最佳答案

So, in this case above don't we know we need to reserve 3 times the size of int of the underlying java platform ?

实际上比这稍微多一点 - 因为数组是具有类引用以及长度的对象。

但是,在这种情况下你碰巧提前知道了尺寸。但 Java 还允许您编写:

int[] a = new int[getLengthFromMethod()];

...在这种情况下,不会,在编译时不会知道内存量。这种灵 active 使得使用数组比在编译时必须知道大小要简单得多。 (例如,想象一下尝试让 ArrayList 以其他方式工作。)

但请记住,一般来说,Java 中的内存分配是非常动态的 - 它实际上只是预先知道的堆栈帧的大小,然后只是相对而言(因为引用的大小在平台之间可能有所不同) )。所有1对象都在堆上分配,并使用引用来跟踪它们。

<小时/>

1 好吧,除了智能 JVM 有时能够在执行逃逸分析后进行内联分配。

关于java - 这个语句在Java中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820862/

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