In my game all AI behaviors implement an interface that defines two methods: plan() and act(). Plan is for expensive calculations and is only executed infrequently, while act is for fine-grained updates like incrementing position. A lot of my behaviors don’t need to plan, or don’t need to act, so many of the methods have empty bodies.
What does Java do to empty methods? I’m guessing there could be some clever JIT optimizations for this.