Java 卡片布局与内存效率

Java 卡片布局与内存效率,java,swing,memory-management,cardlayout,Java,Swing,Memory Management,Cardlayout,cardlayout内存的使用是否有效?例如,如果我将20个JPanel加载到cardlayout中,它可能会占用大量内存空间。加载几个面板,然后再加载一些,然后卸载不再使用的面板,这样会更好吗 加载几个面板,然后再加载一些,然后卸载不再使用的面板是否更好 CardLayout确实会保留对添加到其中的所有组件的强引用。因此,是的,从内存的角度来看,如果不再需要它们,最好再次删除组件 cardlayout内存的使用效率高吗 可能和其他布局一样高效。唯一的区别是,使用CardLayout时,您只能同

cardlayout内存的使用是否有效?例如,如果我将20个JPanel加载到cardlayout中,它可能会占用大量内存空间。加载几个面板,然后再加载一些,然后卸载不再使用的面板,这样会更好吗

加载几个面板,然后再加载一些,然后卸载不再使用的面板是否更好

CardLayout
确实会保留对添加到其中的所有
组件的强引用。因此,是的,从内存的角度来看,如果不再需要它们,最好再次删除
组件

cardlayout内存的使用效率高吗


可能和其他布局一样高效。唯一的区别是,使用
CardLayout
时,您只能同时看到一个面板。将20个面板添加到
CardLayout
将或多或少地使用与将它们添加到
FlowLayout

相同的内存量。我认为,如果您使用TabbedPane,您的JPanels表单将更有条理,因为@Robin提到的内存使用将更加不一样,总之,你可以通过“java-jar-Xmx2048m yourjar.jar”向你的JVM添加更多内存。“例如,如果我将20个JPanel加载到cardlayout中,它可能会占用大量内存空间。”JRE可以使用典型的默认内存大小存储10到数千个面板。所以“可能不会”。这取决于你如何定义“很多”,但记住内存是便宜的。