gpt4 book ai didi

java - 为什么可以声明一个没有初始值的变量?

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

我正在阅读 Gilles Dowek 的 Principles of Programming Languanges:

他说也可以声明一个变量而不给它一个初始值,而且我们必须小心不要使用一个声明没有初始值并且没有被赋值的变量。这会产生错误。

注意:该书的作者提到了在 Java 上声明没有初始值的变量的可能性。

那么,为什么这个变量声明有效?我什么时候使用它?

最佳答案

许多不同的语言有许多不同的原因。

内存
当你声明一个变量时,你需要一些内存来保存变量。这涉及向操作系统的内核请求内存,或者某种跟踪内存的监控程序。简而言之,这可能是一个昂贵的操作。因此,在许多情况下,最好同时分配对象所需的所有内存,然后再分配任何必须分配给它的值。这样,您可以在关键部分提高程序的性能。这个用例很常见,允许在没有初始化的情况下声明的特性是允许的。但是,好的做法断言,在所有其他情况下,您应该在分配时初始化变量。

将内存分配视为一种官僚主义。文书工作太多了。因此,如果您知道稍后将使用大量内存,您可以在单个事务中预先请求大量内存,而不是每次都询问内核。

昂贵的初始化
这一点和上面的一点很相似。假设您有一个 100 万乘以 100 万的数组。初始化这样一个数组是一个昂贵的过程。使用默认值这样做是愚蠢的,因此,这样的功能是分配内存,然后根据需要使用。

在这里,就像您要购买大量乐高积木来构建某些东西,但您想购买默认蜘蛛侠形状的积木。店主或您将不得不格外努力地使它们变成蜘蛛侠的形状,而您以后无论如何都要 reshape 它们。

关于java - 为什么可以声明一个没有初始值的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788067/

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