Memory for method calls is allocated on the Stack.
In Java, each method call creates a new stack frame on the Thread Stack. This frame holds local variables and references. Memory is sequentially allocated and instantly reclaimed upon method completion, making it efficient for method calls. For example, when a method `calculateTotal()` is called, a stack frame is created for its execution and destroyed once it finishes.