2008-09-19 11 views
7

Tengo curiosidad por saber qué otros programadores de Java sienten que es su parte favorita del idioma, por qué se sienten de esa manera, y por qué otros programadores también deberían querer un conocimiento íntimo de él. Estoy buscando razones como la simplicidad, el rendimiento, etc. Gracias.¿Cuál es su área favorita de la API de Java?

Respuesta

22

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

Un tutorial por Josh Bloch se puede encontrar aquí: http://java.sun.com/docs/books/tutorial/collections/index.html

+0

Estoy de acuerdo y los tipos genéricos solo lo hacen mejor. –

2

Soy un gran fan de JPA in 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/

1

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

  • Colecciones. ¡Muchos de ellos!
  • de fecha y hora clases
  • escáner texto
  • utilidad Inyección de dependencia (desde Java 6)
  • hilo
  • Los números al azar un temporizador
  • El patrón de observador está allí
  • propiedades
  • Java
+0

¿Podría profundizar en "Inyección de dependencia" por favor? – OscarRyz

+0

La API Date deja mucho que desear ... la próxima vez que tenga que trabajar con fechas, creo que usaré Joda Time. –

10

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 sea serio acerca de escribir buen código Java debería verificarlo.

+1

¡Acabas de llegar mi mañana! – RichH

4

Definitivamente el marco de las colecciones. Se usa todo el tiempo, ya sea que esté haciendo Java del lado del servidor o del lado del cliente, sea 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 (la mejor es utilizar la segunda, pero hay un código heredado que usa mucho la primera), pero son bastante idénticos en términos de la API que los parámetros de la clase. En .NET, las dos versiones pueden tener diferentes nombres/API y puede ser muy confuso. También me gusta cómo Java Collections Framework tiene algoritmos como métodos estáticos (por ejemplo, Collections.sort (collectionVar)) en lugar de métodos de instancia. En .NET usan métodos de instancia y por alguna razón, no todas las estructuras de datos tienen un género ... el Framework de Colecciones también es muy rico y puedes encontrar estructuras de datos simples y especializadas (por ejemplo, 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. No puedo verificarlo porque no me ocupo de cosas críticas para el rendimiento.

1

java.util.jar - ¡Ayuda con la carga de archivos .jar en un cargador de clases para mis complementos de aplicación! Lo amo.

1

java.util.regex

Hay otros paquetes que no puedo vivir sin, pero el paquete de expresiones regulares tiene que estar en el nivel superior de las "grandes adiciones a Java" - sin duda a la altura de las colecciones .

1

Estoy de acuerdo con el comentario de Reflection. de lejos, la parte más útil/poderosa de la API de Java

3

Secuencias. Las secuencias en Java son mucho más fáciles de comprender e implementar que sus contrapartes en C++ (opinión) y, por lo general, es fácil ver, en función de los nombres de las transmisiones que vienen con la API, qué es lo que una transmisión va a hacer por usted.

1

Recordando mis días en Java, la API más divertida para usar fue java.util.concurrent, simplemente porque proporciona bloques de construcción bien pensados ​​y fáciles de usar para el procesamiento en paralelo.

9

java.util.concurrent es fundamental para mi vida. Hacemos una gran cantidad de programación multinúcleo y la idea de tratar de implementar todas nuestras tareas utilizando subprocesos crudos de estilo antiguo me hace sentir mal.

Un buen ejemplo de cómo el paquete de simultaneidad realmente nos facilita la vida es el conjunto de estructuras de datos especializadas que proporciona. Mi favorito personal es el CopyOnWriteArrayList. Usamos bastante en situaciones en las que la tarea de visualización está leyendo desde un caché de datos para actualizar la pantalla, mientras que otra lleva información de la red para actualizar el caché. Normalmente, esto sería una invitación para colisiones, ConcurrentModificationExceptions y horrores similares. Al utilizar CopyOnWriteArrayList, la tarea de escritura creará una nueva copia de los datos si es necesario agregar datos, lo que garantiza que el lector siempre tendrá un conjunto de datos válido (aunque potencialmente desactualizado) para mostrar.

Como dice el javadoc,

Ésta es normalmente muy costoso, pero puede ser más eficientes que las alternativas cuando las operaciones de recorrido muy superan en número a las mutaciones, y es útil cuando no se puede o no se quiere para sincronizar recorridos, sin embargo, es necesario excluir la interferencia entre los hilos concurrentes .

Java elimina toda clase de errores que normalmente presentaría para resolver este problema, lo que me permite centrarme en los problemas reales que necesito resolver.

0

InheritableThreadLocal todo el camino! Tanta oportunidad de escribir un código ofuscado y el carrete de la cuerda para colgarse nunca parece que se acabe.

2

Hasta ahora, el java.util.El paquete de API regex es mi favorito porque me ha impedido tener que reinventar la rueda tantas veces cuando se trata de buscar y utilizar piezas de cuerdas para varios propósitos.

Cuestiones relacionadas