假设我有两个java类A和B,如果我在A中创建java类B的多个对象那么这是否意味着每个对象在内存中单独分配
答案 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。