为什么可以在没有初始值的情况下声明变量?

Bil*_*ina 6 java variables declaration

我正在阅读Gilles Dowek的编程原理:

他说,也可以在不给它初始值的情况下声明变量,并且我们必须小心不要使用已经声明没有初始值并且没有赋值的变量.这会产生错误.

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

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

小智 7

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

MEMORY
当你声明一个变量时,你需要一些内存来保存变量.这包括询问操作系统内核的内存,或者某种跟踪内存的监控程序.简而言之,这可能是一项昂贵的操作.因此,在许多情况下,希望同时分配对象所需的所有内存,然后分配以后必须分配给它的任何值.这样,您可以提高关键部件中程序的性能.这个用例很常见,允许在没有初始化的情况下允许声明的功能.但是,良好实践断言,在所有其他情况下,您应该在分配时初始化变量.

将内存分配视为官僚机构.纸上工作太多了.因此,如果您知道以后将要使用大量内存,则需要在单个事务中预先提供大量内存,而不是每次都要求内核.

昂贵的初始化
这一点非常类似于上述观点.假设您拥有100万次100万个阵列.初始化这样的阵列是一个昂贵的过程.使用默认值这样做将是愚蠢的,因此,这样的功能,其中分配内存然后根据需要使用.

在这里,它就像你正在购买大量的乐高积木来构建一些东西,但你想以默认蜘蛛侠的形状购买它们.店主或你不得不额外努力让他们成为蜘蛛侠的形状,当你无论如何重新塑造他们.


ale*_*nis 5

例如,你可以有这样的东西:

int i;
if (first_condition)
    i = 1;
elseif (second_condition)
    i = 2;
else
    i = 0;
Run Code Online (Sandbox Code Playgroud)

您的变量需要在以后声明if,以便稍后使用,但其值在if条件内是固定的.