Quando instâncio um objeto, estou carregando TODO o objeto na memória ou apenas métodos acessados?

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.