在我正在编写的程序中,我将至少有 64 个 JButton。是写一个 ActionListener 还是有 64 个,每个一个?我不认为我会为每个 JButton 路由使用一个监听器,但这确实让我想知道一些事情。是否有太多听众实际上会影响性能的点?如果有这样的事情,需要多少?
最佳答案
每个 JButton 都将保存一个列表(或数组,或集合,或以其他方式实现)对其监听器的引用,同时不知道其他按钮的监听器。当事件发生时,按钮会调用它的监听器。因此,为其他按钮设置许多听众不会减慢听众的调用速度。所以这里没有减速。
我可以预见的唯一减速原因是缓存未命中。拥有许多具有不同代码的监听器将意味着更多的缓存未命中。
但是让一个监听器包含大量复杂的代码来处理所有情况可能会更慢。您仍然有很多字节码,并且您可能有比多个监听器情况下更多的分支。
结论: 让你的听众cohesive .使用不同的监听器来处理不同的操作,并使用相同的监听器来处理执行类似操作的按钮。它会给你更好的代码和速度。
关于java - 使用太多的听众是否有潜在的减速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208291/