有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java类的大小会影响应用程序的性能吗

我正在做一个基于swing的应用程序,使用JTable。我使用DefaultCellEditor作为一个需要选择组合框的列。但是DefaultCellEditor有很多我不需要的方法。因此,我通过扩展AbstractCellEditor编写了一个定制的CellEditor,在这里我只实现了所需的方法。我的问题是

(一般来说)如果我们有一个类,如果我们不需要该类的所有方法,那么可以使用它,还是可以编写一个自定义类,只实现我们需要的那些方法?及

通过使用自定义类,应用程序的性能(内存方面)会得到提高,还是会与拥有所有方法的类保持一致

任何帮助都将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    该类的代码(实际字节码)只在内存的PermGen区域加载一次,而不管您实例化了多少此类对象

    我不会接受这段代码,因为您正在复制已经可用的功能,并且您没有向AbstractCellEditor添加功能,您正在DefaultCellEditor中重新实现代码,该代码已经(希望)由Oracle(或Sun)测试过

    正如EJP所说,不值得花时间和潜力引入bug

  2. # 2 楼答案

    如果您创建一个包含较少成员对象的自定义类,那么内存占用就会较低。方法的数量不会影响对象的大小,只会影响类的大小

    一般来说,我不会过早地进行优化,除非您确定您确实存在问题(即,如果您有数千个对象实例,并且堆/垃圾收集器日志分析显示您正在破坏内存和/或频繁收集旧空间),因为额外的代码意味着:

    • 额外的维护(您需要确保您的自定义CellEditor没有bug)
    • 编写自定义代码的额外工作
    • 测试自定义代码的额外工作

    好吧,一个CellEditor在需要的时候被实例化,所以你不会节省太多内存