Java:同一个java类的多个对象?

时间:2011-07-20 13:23:08

标签: java

假设我有两个java类A和B,如果我在A中创建java类B的多个对象那么这是否意味着每个对象在内存中单独分配

6 个答案:

答案 0 :(得分:2)

是的,每个对象都在内存中单独分配。是否应该使用B类的单个实例完全取决于您正在做什么。如果您从根本上需要两个具有不同状态的独立实例,那么很难看到如何在不创建两个实例的情况下逃脱...

答案 1 :(得分:2)

如果A类的多个实例可以使用类B的相同实例正常运行,那么在A类中创建B static的实例。

例如

public class A {
    // Every instance of A has access to this single instance of B
    private static B b = new B();
}

答案 2 :(得分:2)

  

这是否意味着每个对象在内存中单独分配

  

我是否必须使用B类的单个实例来节省内存?

你想在这里完成什么?这完全取决于你想做什么。

答案 3 :(得分:2)

每个对象都会分配给它自己的内存,所以如果在B内声明了多个A实例,则每个实例都将单独分配。

一般的经验法则是根据需要随时创建实例。除非你创造了一些疯狂的数字,或者你在一个非常有限的硬件环境中工作,否则就没有问题。

答案 4 :(得分:0)

一个类的每个实例都是独立的,并使用自己的内存块。

除非您创建了数百万个实例,否则根本不需要担心。

答案 5 :(得分:0)

您为特定类分配的每个对象都将使用单独的内存位置。如果要使用共享功能进行保存,可以使用Flyweight Pattern