Pregunta

Tengo curiosidad por saber cuál es la parte favorita del lenguaje para otros programadores de Java, por qué lo sienten así y por qué otros programadores también deberían querer tener un conocimiento profundo de ella.Busco razones como simplicidad, rendimiento, etc.Gracias.

¿Fue útil?

Solución

Mi API de Java favorita es la Marco de colecciones.Me encuentro usándolo todo el tiempo en lugar de implementar mis propias implementaciones, y es muy divertido y fácil de usar.Consiste en varias implementaciones útiles e intercambiables de estructuras y algoritmos de datos de alto rendimiento, así como varios métodos de conveniencia para envolver la funcionalidad adicional a su alrededor.

Puede encontrar un tutorial de Josh Bloch aquí: http://java.sun.com/docs/books/tutorial/collections/index.html

Otros consejos

Mi parte favorita de la API es definitivamente java.lang.Tiene esta clase llamada String, que le permite manipular fácilmente matrices de caracteres.Cualquier programador que se tome en serio la tarea de escribir un buen código Java debería consultarlo.

java.util.concurrente es fundamental para mi vida.Hacemos bastante programación multinúcleo y la idea de intentar implementar todas nuestras tareas utilizando subprocesos sin procesar de estilo antiguo simplemente me hace sentir mal.

Un buen ejemplo de cómo el paquete de concurrencia realmente nos hace la vida más fácil es el conjunto de estructuras de datos especializadas que proporciona.Mi favorito personal es el Copiar en escritura Lista de matrices.Usamos bastante en situaciones donde la tarea de visualización es leer de un caché de datos para actualizar la pantalla mientras otra tarea toma información de la red para actualizar el caché.Normalmente, esto sería una invitación a las colisiones, Excepciones de modificación simultánea y horrores similares.Usando CopyOnWriteArrayList, la tarea de escritura creará una nueva copia de los datos si necesita agregar datos, asegurando así que el lector siempre tendrá un conjunto de datos válido (aunque potencialmente desactualizado) para mostrar.

Como dice el javadoc,

Esto es normalmente demasiado costoso, pero puede ser más eficiente que las alternativas cuando las operaciones transversales superan enormemente las mutaciones, y es útil cuando no puede o no desea sincronizar los transversales, pero necesitan impedir interferencia entre los hilos concurrentes.

Java elimina clases enteras de errores que normalmente introduciría para resolver este problema, lo que me permite centrarme en los problemas reales que necesito resolver.

Definitivamente el Marco de Colecciones.Se utiliza todo el tiempo, ya sea que esté utilizando Java del lado del servidor o del lado del cliente, gráfico o no.Es fácil de usar.La mayoría de las clases de estructura de datos tienen una versión genérica y no genérica (es mejor usar la segunda, pero hay un código heredado que usa mucho la primera), pero son prácticamente idénticas en términos de API, aparte de los parámetros de clase.En .NET, las dos versiones pueden tener diferentes nombres/API y puede resultar muy confuso.También me gusta cómo Java Collections Framework tiene algoritmos como métodos estáticos (p. ej.Collections.sort(collectionVar)) en lugar de como métodos de instancia.En .NET utilizan métodos de instancia y, por alguna razón, no todas las estructuras de datos tienen un tipo... el Marco de Colecciones también es muy rico y puede encontrar estructuras de datos tanto simples como especializadas (p. ej.LinkedHashMap que conserva el orden de inserción).

Una desventaja que he escuchado es que el marco no funciona bien y algunas personas escriben el suyo propio.No puedo verificarlo porque no me ocupo de temas críticos para el rendimiento.

nombre javax

http://java.sun.com/javase/6/docs/api/javax/naming/package-summary.html

Java es una gran tecnología de integración de sistemas debido a su portabilidad, y JNDI hace un buen trabajo al abstraer las complejidades de obtener el primer contacto con un sistema remoto.

Reflexión.Algo de esto está en java.lang.reflect y algunos en java.lang (principalmente Class y ClassLoader).

Corrientes.Las secuencias en Java son mucho más fáciles de entender e implementar que sus contrapartes en C++ (opinión) y generalmente es fácil ver, según los nombres de las secuencias que vienen con la API, qué hará una secuencia por usted.

soy un gran admirador de APP en Java EE.Ha reducido la cantidad de trabajo que necesito hacer tanto para aplicaciones grandes (que usarían EJB) como para aplicaciones pequeñas.

Un segundo cercano es Jaas, la API de seguridad, aquí está el enlace para Java Se Jaas: http://java.sun.com/javase/technologies/security/

Hasta ahora, el paquete API java.util.regex es mi favorito porque me ha impedido tener que reinventar la rueda en tantas ocasiones cuando se trata de buscar y utilizar fragmentos de cadenas para diversos fines.

java.util es muy útil.¿Por qué?

  • Colecciones.¡Muchos de ellos!
  • Clases de fecha y hora
  • Escáner de texto
  • Utilidad de inyección de dependencia (desde Java 6)
  • Un hilo de temporizador
  • Números al azar
  • El patrón del observador está ahí.
  • Propiedades de Java

java.util.jar: ¡ayuda a cargar archivos .jar en un cargador de clases para los complementos de mi aplicación!Me encanta.

java.util.regex

Hay otros paquetes sin los que no puedo vivir, pero el paquete regex tiene que estar en el nivel superior de las "mejores adiciones a Java", definitivamente a la altura de Colecciones.

Estoy de acuerdo con el comentario de Reflexión.con diferencia, la parte más útil/poderosa de la API de Java

Pensando en mis días de Java, la API más divertida de usar fue java.util.concurrente, simplemente porque proporciona componentes básicos bien pensados ​​y fáciles de usar para el procesamiento paralelo.

InheritableThreadLocal hasta el final!!!Tantas oportunidades para escribir código ofuscado y el carrete de cuerda para ahorcarse nunca parece agotarse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top