Alocação de memória

3 respostas
dntalemao

Galera, td bom?
Sou novo no mundo Java, estou gostando muito da linguagem e realmente surgem um turbilhão de dúvidas!
Estou com a seguinte dúvida :roll:
Quando por exemplo vamos instanciar um classe de outro pacote seguindo a seguinte sintaxe:

//classe a ser instanciada.
Car.java
package carros;
public class Car{
    int numPortas;
    public void ligarCarro(){

   }
}

//Classe testadora
Teste.java
package teste;
import carros.Car;
class Teste{
    public static void main (String [] args){
    Car c=new Car(); 
    }
}

Minha dúvida é se quando pedimos pra JVM alocar um espaço na memória heap para um objeto da classe Car, ele irá alocar apenas a o método ligarCarro(), pois é o único definido como public, já a VI numPortas não seria alocada na heap por ser default?
Me desculpem se fui confuso...

Abraços,
8)

3 Respostas

Mikhas

A JVM vai alocar e iniciar o objeto com todos seus atributos, mesmo que não utilizados.

Métodos são colocados em “outro lugar” da memoria. Não fica junto dos objetos.

ViniGodoy

Um detalhe interessante:
Métodos não ocupam memória.

A única coisa que ocupa memória são os dados.
No caso, o inteiro (4 bytes) para o número de portas.

dntalemao

Galera valeu mesmo pela ajuda, deu uma bela clareada aqui 8)

Criado 18 de julho de 2012
Ultima resposta 18 de jul. de 2012
Respostas 3
Participantes 3