Sobre java e memoria

Sempre leio em livros sobre java e memoria RAM, que “devemos” nos preocupar em nao carregar o programa com variaveis de instancias desnecessarias, e que o garbage collector sempre limpa para nao pesar o programa.
O que me deixa com duvida eh o seguinte: a JVM nao utiliza a mesma memoria RAM do pc? Ou ela utiliza apenas parte dessa memoria?

A JVM usa a quantidade de memória RAM que foi alocada no começo do programa com as opções -Xms e -Xmx .

Nem sabia que tinha essa opcao…rsrsrs

Mas como quase tudo em java, se você não configurar isso, tem os valores default.

Aproveitando o gancho:

fazer isso aqui:

import javax.swing.*;

consome mais memória, ou piora o desempenho da aplicação, do que colocar todos os imports realmente necessários para aquela classe?

Já postei um tópico a respeito, mas fiquei com dúvidas.

Obrigado.

ao importar usando o *, vc importa todas as classes da biblioteca, mesmo as que não vai usar, creio que quando vc coloca na mala roupas que não vai usar na viagem, elas pesam sem necessidade.

[quote=Soruji]Aproveitando o gancho:

fazer isso aqui:

import javax.swing.*;

consome mais memória, ou piora o desempenho da aplicação, do que colocar todos os imports realmente necessários para aquela classe?

Já postei um tópico a respeito, mas fiquei com dúvidas.

Obrigado.[/quote]

Não faz diferença nenhuma. Isso serve para dizer ao compilador onde buscar os nomes das classes que aparecem no arquivo. Em tempo de execução, uma classe só é carregada para a memória quando uma instância, um membro estático é referenciado ou quando Class.forName é usado.

A única desvantagem em usar o asterico é o conflito de classes de pacotes diferentes mas que tem o mesmo nome. De qualquer maneira, IDEs como o Eclipse ou Netbeans organizam os imports automaticamente para você.

[quote=Soruji]Aproveitando o gancho:

fazer isso aqui:

import javax.swing.*;

consome mais memória, ou piora o desempenho da aplicação, do que colocar todos os imports realmente necessários para aquela classe?

Já postei um tópico a respeito, mas fiquei com dúvidas.

Obrigado.[/quote]

Não faz absolutamente nenhuma diferença. Nenhuma, nenhuma, nenhuma.
Olhando o .class gerado nos dois casos, ele referencia apenas e tão somente as classes usadas, tanto no caso “import java.util.*” quanto no caso “import java.util.List; import java.util.ArrayList; … etc.”
Os .class so são ligeiramente diferentes porque o tamanho do programa-fonte é diferente, portanto as mesmas linhas vão estar em posição diferente e a informação de debug vai dizer, em um caso, que o método “main” começou na linha 500 e no outro caso, que o “main” começou na 530 (por exemplo).