假设我有一个课程ClassBig
里面有100个方法,第二个课程只有10个方法ClassSmall
我在运行时有对象
ClassBig big = new ClassBig();
ClassSmall small = new ClassSmall();
较大的类占用更多的内存空间吗?
如果两个类都包含相同的方法,那么较大的类是否需要更长的时间来执行它?
答案 0 :(得分:14)
类实例的内存中表示主要是它的内部状态加上指向类本身的内存中表示的指针。实例方法的内部表示比您在类定义中指定的参数多一个 - 隐式this
引用。这就是我们只能存储实例方法的一个副本,而不是每个实例的新副本。
因此,具有更多方法的类将比具有更少方法的类占用更多内存(代码必须在某处),但是具有更多方法的类的实例将使用相同数量的内存,假设类具有相同的数据成员。
执行时间不受类中其他方法数量的影响。