Resolvido - Import desnecessário consome recursos?

Bora lá, a situação seria:

Tenho uma classe A e faço a declaração do import de uma outra classe B.

Mas NÃO UTILIZO B em parte alguma do codigo.

Haverá perda de performance ou algo do tipo?

Esta dúvida também surge quando uso *

Ex: import utilidades.*;
Mas não utilizo todas as classes contidas no pacote.

Pergunta interessante… também tenho essa dúvida…

idem !

Imports nao vao parar no bytecode (eles so servem pro javac achar as classes e checar que os metodos tao la).

Nao consomem recursos a mais.

Mas da vontade de arrebentar a boca de quem nao sabe dar ‘Organize Imports’ no Eclipse e entope o projeto de warnings.

A princípio não pois o import não “carrega” nada. Não é como o require/include do php.
Se der uma catada no fórum você encontra várias referências e expliações para isso :wink:

[quote=cv]
Mas da vontade de arrebentar a boca de quem nao sabe dar ‘Organize Imports’ no Eclipse e entope o projeto de warnings.[/quote]
++
Dá muita raiva mesmo. É tão fácil selecionar o seu projeto e dar um ctrl+shift+O. Não precisa nem ser classe a classe, selecionando o projeto ele faz em tudo. Não dá pra entender…

Amigos a JVM na hora em que vc faz o import java.util.*;(por exemplo) ela traz todas as classes que vc esta utilizando no seu programa e cria o ponto classe somente com essas classes.

Aconselho vcs a fazer um simples teste: procurem algum descompilador java bom e façam o teste depois posta aqui o resultado.

flws

daki a poko tem gente usando

import java.*

Gostei do
import java.*;

“import java.*” não faz o que você quer fazer. Na verdade não faz nada, já que não existe nenhuma classe no JDK cujo pacote seja só “java.”.

De qualquer maneira, não custa nada teclar Ctrl+Shift+O (Organize Imports) no Eclipse; ele deixa tudo arrumadinho e de quebra você descobre que está importando uma coisa que não deve importar (uma com.sun.alguma coisa que não vai funcionar).

eu sei disso…

to generalizando… imaginando q se fosse possivel o cara ia dar um “import all”

[quote=venomtotal]Bora lá, a situação seria:

Tenho uma classe A e faço a declaração do import de uma outra classe B.

Mas NÃO UTILIZO B em parte alguma do codigo.

Haverá perda de performance ou algo do tipo?
[/quote]

Não ha problemas de performance já que é apenas açucar sintático para facilitar a vida dos humanos. O .class não tem isso.

O objetivo do import (embora o nome possa enganar) é diminuir a necessiade de incluir os nomes completos das classes que deveria ser o padrão. Com o import isso só é necessário quando à colisão de nomes, o que é bem raro.

Ou seja, o import é apenas uma forma de escrever os nomes das classes de forma mais curta e não interfere em anda com o funcionamento no runtime.

Em C# o nome do import é “using” que dá mais a ideia do que realmente está sendo feito.

Agradeço a ajuda de todos em me tirar esta antiga dúvida :stuck_out_tongue:

[quote=sergiotaborda]
O objetivo do import (embora o nome possa enganar) é diminuir a necessiade de incluir os nomes completos das classes que deveria ser o padrão. Com o import isso só é necessário quando à colisão de nomes, o que é bem raro.

Ou seja, o import é apenas uma forma de escrever os nomes das classes de forma mais curta e não interfere em anda com o funcionamento no runtime.

Em C# o nome do import é “using” que dá mais a ideia do que realmente está sendo feito.[/quote]

Realmente, o nome engana, “importar”, por isto surgiu a minha duvida. E a gente percebe mesmo sua irmportância quando temos ocasiões de duas classes diferentes, mas com o mesmo nome, como é o caso da classe Date, já que pode ser a java.util.Date ou java.sql.Date, por exemplo.

Falow

[quote]

Realmente, o nome engana, “importar”, por isto surgiu a minha duvida. E a gente percebe mesmo sua irmportância quando temos ocasiões de duas classes diferentes, mas com o mesmo nome, como é o caso da classe Date, já que pode ser a java.util.Date ou java.sql.Date, por exemplo.

Falow[/quote]

Verdade ein! O importar serve apenas para para distinguir uma classe da outra. O java tem o Date do util e do sql. E se eu quiser fazer o meu próprio Date.java? Aí o import decide qual classe usar!
O negócio do import java.* daria um monte de pau pq existem muitas classes com mesmo nome!