Digamos que eu tenha um objeto com três métodos, quando dou o new para instânciar estou reservado espaço de memória para todo o objeto, ou a jvm aloca memória quando acesso um método ou outro?
Eu acho que é o objeto todo.
Só que, se for um método static, eu já fico meio confuso.
Programas usam dois espaços de memória, um para guardar o código a ser executado, e outro para as variáveis.
O espaço do código é o mesmo para todas as instâncias do objeto de uma mesma classe.
O espaço de variáveis de instância são independentes entre cada objeto.
Variáveis de classe são a exceção, ficam num espaço de variáveis, mas é compartilhado por todos os objetos da classe.
Infelizmente não sei dizer se o código de todas as classes é carregado todo de uma vez quando o programa é executado, ou se é somente quando usado. Porém, a memória p/ objetos é somente alocada qdo eles forem instanciados.