在服务层中归档的静态对象的用户是什么

时间:2015-06-05 11:20:43

标签: java class static field

在我的班级AccountService中是静态归档AccountDao,这也是我们需要声明为静态的类我知道这将用于访问
classname.staticfield访问类中的每个位置但是用于其他类对象的用法声明为静态?提前谢谢

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <Empid type="number">1</Empid>
    <Empname type="string">JSON</Empname>
    <Salary type="number">20997.0</Salary>
    <coworkers class="array">
        <e class="object">
            <firstname type="string">john</firstname>
            <lastname type="string">wick</lastname>
        </e>
        <e class="object">
            <firstname type="string">albert</firstname>
            <lastname type="string">smith</lastname>
        </e>
    </coworkers>
    <manager class="object">
        <firstname type="string">hasan</firstname>
        <lastname type="string">kahraman</lastname>
    </manager>
</book>

1 个答案:

答案 0 :(得分:2)

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

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

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