Oh *_*oon 1 java static-members
我有一个Car具有类范围变量成本的类,我理解这在实践中是一个坏主意,只是试图理解公共范围类变量的影响.
Car的所有对象,Car.cost的引用,所有类加载器都可以访问和修改成本,还是应该知道Car.cost可能存在多个副本的情况?Car.cost在任何特定情况下都会有一个吗?
public class Car{
public static int cost;
public Car(int cost){
cost = cost;
}
}
public static void main(String args[]){
Car car = new Car(2);
}
Run Code Online (Sandbox Code Playgroud)
cost每个加载的类只有一个静态变量实例.但请注意,根据类加载器的不同,可能会多次加载一个类.
作为旁注,这不符合你的想法:
public Car(int cost)
{
cost = cost;
}
Run Code Online (Sandbox Code Playgroud)
在这里,您将参数分配给自身(如果您将其设置为最终,则应该得到编译器错误),而不是静态变量的参数.这也称为阴影和不良做法.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |