Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';s服务层中静态对象字段的用户_Java_Class_Static_Field - Fatal编程技术网

Java 什么';s服务层中静态对象字段的用户

Java 什么';s服务层中静态对象字段的用户,java,class,static,field,Java,Class,Static,Field,在我的AccountService类中,有一个静态字段AccountDao,这也是我们需要声明为静态的类的原因我知道我们将使用它来访问 classname.staticfield访问类中的每个位置,但对其他类对象声明为静态有什么用??提前谢谢 public class AccountService { private static AccountDao accountinfo; public AccountService() { accountinfo = new AccountD

在我的AccountService类中,有一个静态字段AccountDao,这也是我们需要声明为静态的类的原因我知道我们将使用它来访问
classname.staticfield访问类中的每个位置,但对其他类对象声明为静态有什么用??提前谢谢

 public class AccountService {

private static AccountDao accountinfo;

public AccountService() {
    accountinfo = new AccountDao();
} }

静态成员由类的所有实例共享。在您的示例中,
AccountService
的所有实例可能只访问一个名为
accountinfo
AccountDao
实例

我不知道你为什么要这样做。更糟糕的是,每次创建
AccountService
的新实例时,都会再次实例化
accountinfo
。这意味着,一旦创建了另一个
AccountService
实例,旧实例就不能引用
accountinfo
的原始对象


通常,使用静态成员的原因有很多,例如逻辑(1:n关系)、性能(所有对象共享一个资源)。无论原因是什么:请注意何时以及如何(重新)实例化静态成员,因为该类的所有对象可能会在不同的时间使用此成员。

您的问题不清楚。你能更详细地解释一下你的问题是什么吗?请使用标点符号。对不起,我不明白你的问题。你能说得更清楚一点吗?我怀疑我完全理解你的问题。您可以在一个类中获得一个静态字段,而无需创建一个类的实例,而不管它是基元类型还是类类型。将其他类对象声明为静态有什么用??