util statement significa scanner que importing java import

statement - package java



¿Por qué autoimportar solo el paquete java.lang? (10)

@gameover, puede ser que cada programa java necesite la clase que viene de java.lang,

pero la clase java.util contiene la clase que mi necesidad necesita o no que depende del programador. Entonces, los java tienen la configuración predeterminada para java.lang pero necesitamos importar a las clases java.util de acuerdo con nuestro programa.

Sé que el paquete java.lang se importa automáticamente por cada programa java que escribimos, por lo tanto, todas las clases en él están disponibles automáticamente para nosotros.

Mi pregunta es ¿por qué no importar automáticamente java.util y otros paquetes también? Eso seguro ahorrará algo de escritura :)

Así que por favor explique por qué no se hace esto.


Creo que la idea detrás de java.lang es que todas estas clases tienen alguna conexión con el lenguaje y el tiempo de ejecución, que es especial, y no se puede implementar por su cuenta. Envoltorios primitivos, seguridad de VM y permisos e inspección, carga de paquetes y clases: todo lo que debe estar integrado en el sistema Java. Todo en java.util, como las colecciones, aunque es increíblemente útil, podría implementarse en Java puro. Algunas partes de él (las zonas horarias vienen a la mente) incluso han sido implementadas por bibliotecas de terceros, incluso mejor.

O al menos, eso fue cierto en los días de Java 1.0. Hoy en día, por ejemplo, Iterator también es parte integral del lenguaje, ya que se usa automáticamente para cada uno de los bucles, ¿verdad? Pero la compatibilidad con versiones anteriores siempre fue algo importante con Java, por lo que podemos vivir con esta inconsistencia para siempre.


Debido a que java.lang tiene las clases básicas de lenguaje Java, y java.util, por ejemplo, no.

Pero algunos otros idiomas, como Groovy importa automáticamente java.util para ti :)


El paquete java.lang proporciona clases fundamentales para los programas java construidos. El objeto es la raíz de la jerarquía de clases, por lo que debe estar disponible para todos los programadores, tanto si el programador es principiante como experto.

Mientras que si hablamos de otros paquetes se utilizan para ampliar los programas. Por ejemplo, el paquete java.util que solo se usa cuando se necesitan clases de Colección. Mientras que en todos los programas, las clases de colección no se utilizan, mientras que los tipos de datos básicos son esenciales para todos los programas Java.

Para evitar la carga innecesaria de otras clases en el programa, otros paquetes no se importan automáticamente, mientras que el paquete esencial java.lang se importa automáticamente.


Hay una razón diferente para que el paquete java.lang sea predeterminado. 1) En realidad, lo que sea que estemos declarando variable en el programa java. Que se almacenará en el objeto, la clase de objeto está disponible en java.lang package.it es una super clase de jerarquía de clases , Muchos hemos realizado la operación en el método de clase de objeto como la programación de hilos. 2) Muchas veces se requiere una clase para desarrollar un programa, esa clase está disponible en el paquete java.lang, por lo tanto, es necesario importar, cuando las personas java desarrollaron jdk, fue el paquete predeterminado.


La importación automática también genera algunos problemas de memoria y, en ocasiones, puede entrar en conflicto. Ej .: Tipo de fecha en java y SQL.

Además, cualquiera que sea el objeto base java se definen en el paquete Java.lang. Por ejemplo: cualquier tipo de datos y tipo de retorno todos se declaran en el paquete java.lang, por lo que para hacer algún programa básico también necesitamos las importaciones de este paquete.


Me encontré con la colisión del espacio de nombres incluso con java.lang.System (nuestra aplicación contiene una clase llamada System). Una importación explícita resolvió mi problema, pero me tomó algunos minutos hasta que señalé que com.mycompany.classes.System no se importa automáticamente para el sistema de identificación de Eclipse porque ya existe en java.lang.

De todas formas, no es una buena idea contaminar el alcance de la clase con demasiados identificadores, porque su código será org.classes.**look** com.application.**like** com.classes.**this**.

La importación automática de java.lang es una buena idea porque contiene las clases y las interfaces principales que se utilizan en java.


Sin el paquete java.lang , el desarrollo no es posible. Pero sin java.util , java.io o cualquier otro paquete, aún podemos escribir cualquier número de programas. Esa es la razón por la que el paquete java.lang se está importando de forma predeterminada.


Todos los IDE buenos resolverán sus importaciones automáticamente, solo le preguntarán cuando haya un conflicto (dos paquetes con el mismo nombre de clase).


Una buena razón para no autoimportarse demasiado es evitar choques de espacio de nombres. Si todo en java.util se importara automáticamente y luego quisiera referirse a una clase diferente llamada ''Mapa'', por ejemplo, tendría que referirse a ella por su nombre completo.

En respuesta a otras respuestas en este hilo, la import no modifica realmente la representación interna de sus archivos de clase. De hecho, aquí hay un link a la especificación de JVM que describe la estructura del archivo de clase: ver que las importaciones no se almacenan en ninguna parte.