gpt4 book ai didi

java - Java中的最终和静态

转载 作者:IT老高 更新时间:2023-10-28 21:20:48 26 4
gpt4 key购买 nike

我在书中读过这句话,但我不明白:

A field that is both static and final has only one piece of storage that cannot be changed.

谁能帮我解释一下?

最佳答案

你困惑的根源可能是英文中的“static”这个词和它在Java中的含义只是松散的相关。

以“正常”方式在 Cat 类中定义的变量可以称为实例变量。

class Cat {
int weight;
}

每次创建 Cat 类型的新对象时,都会创建变量“weight”的新副本。如果您创建 10 个 Cat 类型的对象,每个对象都有自己的权重变量副本。

“静态”变量可以被认为是类级别的变量,而不是实例变量。静态变量只有一个副本,属于 Cat 类本身,而不是 Cat 类型的 每个 对象都有一个副本。

class Cat {
static String speciesName;

int weight;
}

这里,无论我们创建多少 Cat 类型的对象,都只有一个 speciesName 副本。

如果静态变量也是“最终的”,则该变量的这一副本是唯一不能更改的存储部分。如果上例中的变量“权重”是最终变量,则将有 10 个无法更改的存储空间——我们创建的每个 Cat 类型的对象都有一个。

关于java - Java中的最终和静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018851/

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