java类的大小会影响应用程序的性能吗
我正在做一个基于swing的应用程序,使用JTable
。我使用DefaultCellEditor
作为一个需要选择组合框的列。但是DefaultCellEditor
有很多我不需要的方法。因此,我通过扩展AbstractCellEditor
编写了一个定制的CellEditor,在这里我只实现了所需的方法。我的问题是
(一般来说)如果我们有一个类,如果我们不需要该类的所有方法,那么可以使用它,还是可以编写一个自定义类,只实现我们需要的那些方法?及
通过使用自定义类,应用程序的性能(内存方面)会得到提高,还是会与拥有所有方法的类保持一致
任何帮助都将不胜感激
# 1 楼答案
该类的代码(实际字节码)只在内存的PermGen区域加载一次,而不管您实例化了多少此类对象
我不会接受这段代码,因为您正在复制已经可用的功能,并且您没有向
AbstractCellEditor
添加功能,您正在DefaultCellEditor
中重新实现代码,该代码已经(希望)由Oracle(或Sun)测试过正如EJP所说,不值得花时间和潜力引入bug
# 2 楼答案
如果您创建一个包含较少成员对象的自定义类,那么内存占用就会较低。方法的数量不会影响对象的大小,只会影响类的大小
一般来说,我不会过早地进行优化,除非您确定您确实存在问题(即,如果您有数千个对象实例,并且堆/垃圾收集器日志分析显示您正在破坏内存和/或频繁收集旧空间),因为额外的代码意味着:
CellEditor
没有bug)好吧,一个
CellEditor
在需要的时候被实例化,所以你不会节省太多内存