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
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
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/
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
¿Podría profundizar en "Inyección de dependencia" por favor? – OscarRyz
La API Date deja mucho que desear ... la próxima vez que tenga que trabajar con fechas, creo que usaré Joda Time. –
javax.naming
http://java.sun.com/javase/6/docs/api/javax/naming/package-summary.html
Java es un gran techonolgy integración de sistemas debido a su portabilidad, y JNDI hace un buen trabajo de abstraerse de las complejidades de conseguir el primer contacto con un sistema remoto.
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.
java.util.jar - ¡Ayuda con la carga de archivos .jar en un cargador de clases para mis complementos de aplicación! Lo amo.
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 .
Reflection. Algunos de ellos están en java.lang.reflect y algunos en java.lang (principalmente Class y ClassLoader).
Estoy de acuerdo con el comentario de Reflection. de lejos, la parte más útil/poderosa de la API de Java
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.
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.
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.
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.
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.
- 1. ¿Cuál es su API de mapeo favorita y por qué?
- 2. ¿Cuál es su herramienta de depuración de código abierto favorita?
- 3. ¿Cuál es su herramienta favorita de perfil de bajo nivel?
- 4. ¿Cuál es tu característica favorita de jQuery?
- 5. ¿Cuál es tu indicación favorita de Bash?
- 6. ¿Cuál es tu opción favorita de g ++?
- 7. ¿Cuál es su herramienta de prueba funcional de código abierto de Delphi favorita?
- 8. ¿Cuál es su herramienta de administración de Rails favorita y por qué?
- 9. ¿Cuál es su estructura de proyecto/estructura de proyecto favorita/recomendada para Pruebas unitarias usando Boost?
- 10. ¿Cuál es su herramienta de desensamblador favorita en Mac OS X?
- 11. ¿Cuál es tu biblioteca de burla de Python favorita?
- 12. ¿Cuál es tu biblioteca de burlas de Delphi favorita?
- 13. Su herramienta de cliente de base de datos favorita
- 14. ¿Cuál es la mejor API REST de Java?
- 15. ¿Cuál es tu forma favorita de interactuar con bases de datos desde tu lenguaje de programación?
- 16. cuál es la mejor API del cliente HBase para java
- 17. ¿Cuál es la mejor biblioteca de Java para habilitar la cuadrícula/clúster de su aplicación?
- 18. ¿Cuál es tu biblioteca libre o de código abierto favorita para .NET Charts and Gauges?
- 19. ¿Cuál es su componente Java Script WYSIWYG Editor favorito?
- 20. Característica no obvia favorita de svn?
- 21. Java - ¿Qué se usa <y cuál es su nombre?
- 22. ¿Cuál es su lista de comprobación de desarrollo para la aplicación Java de baja latencia?
- 23. ¿Cuál es tu línea ficticia favorita para poner un punto de quiebre?
- 24. ¿Cuál es tu forma favorita de probar los fragmentos de código de JavaScript?
- 25. Templatededefs - ¿Cuál es su trabajo?
- 26. CGRectIntegral ¿cuál es su uso?
- 27. ¿Cómo probar la unidad de su API?
- 28. ¿Cuál es su experiencia con ARM Jazelle?
- 29. ¿Cuál es la mejor API de búsqueda de imágenes web?
- 30. ¿Cuál es el motor/api de la plantilla java para crear un archivo de texto?
Estoy de acuerdo y los tipos genéricos solo lo hacen mejor. –