Question: In developing a Java based backend using the Google App Engine, it occurred to me that since I end up paying by the number of instances created, it obviously makes sense to design the code in such a way as to minimize the memory usage. This has made me wonder whether it makes sense to use static methods as much as possible, the reasoning being that static methods only get created once in memory. Of course the methods would have to be immutable and thus not allow for the use of private static fields.

My assumption here is that calling a static method 1 million times is more efficient in memory usage that creating 1 million instances of the class that holds that method.

Does this reasoning make sense or am I possibly overlooking something about the use of static methods?

Answer: 
Instance methods get created once only too. There is no clever optimization for you to do here, and basically you're deciding whether or not you'll be doing bad design by making everything static. There are no monetary savings to be had here.

You don't seem to quite understand how the internals work, so it's better that you don't worry too much about it. You're also comparing calling a static method 1 million times vs. creating 1 million instances. That's apples and oranges as they don't do the same thing at all. An equivalent comparison would be if you had 1 million data objects and you called a static method with one of those as a parameter.

Methods aren't what you need to care about, it's the data you're working with that uses memory.
Where you go wrong here is that "the amount of instances" is not the same as the "amount of data". Let's say you crawl and process Wikipedia. What is important is how much data is in memory at any given time, not so much how it is distributed across instances. Obviously, doing stuff wrong is always possible, but static methods won't save you from that ;-)