jov*_*kov 2 java memory-management nested-class
我很少关心内存管理,嵌套类是坏的,在为主类创建实例时是否需要更多内存,例如:
情况1:
class A
{
class B
{
}
int main()
{
B b=new B();
}
}
Run Code Online (Sandbox Code Playgroud)
A a=new A() 在其他文件中,还包含B类结构和B实例
案例2:
class A
{
int main()
{
B b=new B();
}
}
class B
{
//something
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在其他文件中将有A的实例,并且在B的实例中
因此,案例1需要更多记忆或者我的想法是错误的?如果我错了,请任何人解释我这是如何工作的.
"我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源" - 唐纳德·克努特
第一:不,嵌套类并不普遍"糟糕".就像编程中几乎所有其他东西一样 - 它们有时间和地点.
第二个:是 - 正如您所提到的,非静态内部类维护对其外部类的隐式引用,因此如果强引用内部类的实例,则外部实例也被强引用.这意味着更多的内存使用量.但:
第三(也是最重要的):关键词是"轻微的".这种考虑相当于Knuth所说的"小有效性"之一.不要让轻微的性能问题驱动程序的体系结构.专注于使用干净,组织良好的体系结构编写清晰易读的程序:在许多情况下,使用嵌套类可以创建更清晰的组织 - 如果您的是其中一种情况,那么使用嵌套类:之间的权衡更清晰的架构和内存使用量的微小增加是您每次都想要的.如果性能成为问题,那么只要您的通用架构是可靠的,您就可以进行优化.所以专注于该架构.
(另外,编程更有趣:))
| 归档时间: |
|
| 查看次数: |
866 次 |
| 最近记录: |