El siguiente esquema se proporciona como una descripción general y una guía temática de Java:
Java es un lenguaje de programación de propósito general , concurrente , orientado a objetos , basado en clases , fuertemente tipado y de tipado estático que se compila a bytecode de la JVM para su ejecución en una máquina virtual Java (JVM), lo que permite la programación " escribe una vez, ejecuta en cualquier lugar ". Java fue diseñado por James Gosling y un equipo de Sun Microsystems a principios de la década de 1990 y fue un componente central dela plataforma Java de Sun. [ 1 ] [ 2 ] [ 3 ]
¿Qué tipo de lenguaje es Java?
- Lenguaje de programación : lenguaje artificial diseñado para comunicar instrucciones a una máquina, más concretamente a un ordenador.
- Programación orientada a objetos : se basa principalmente en objetos y clases.
- Programación basada en clases : los tipos y el código se organizan en clases.
- Compilado : el código fuente se compila a una representación intermedia : bytecode de JVM .
- Interpretado : el código de bytes es ejecutado por una máquina virtual Java , que normalmente realiza una compilación Just-in-Time .
- Lenguaje de programación de propósito general , diseñado para una amplia variedad de ámbitos de aplicación.
- Verificación de tipos estática : la verificación de tipos se realiza en tiempo de compilación .
- Tipado estricto : impone reglas de tipado estrictas en tiempo de compilación.
- Concurrente : soporte integrado para multihilo y utilidades de concurrencia . [ 4 ]
Historia de Java
- Oak : nombre inicial de un nuevo lenguaje de programación creado en Sun Microsystems [ 5 ].
- Adquisición de Sun Microsystems por parte de Oracle Corporation en 2010, junto con el lenguaje de programación Java y sus API.
- Litigio de Oracle contra el sistema operativo Android de Google por el uso de las API de Java de Oracle. Véase también: Comparación de las API de Java y Android.
- Java 25 : última versión principal publicada el 16 de septiembre de 2025 [ 6 ]
Conceptos generales de Java
- Ver también: Fundamentos del lenguaje Java en Wikilibros y sintaxis de Java
- Anotaciones
- Cargadores de clase
- Clases y objetos [ 7 ]
- Concurrencia
- Constructores
- Campos [ 8 ]
- Recogida de basura [ 9 ]
- Medicamentos genéricos
- Interfaz (Java)
- máquina virtual Java
- Biblioteca de clases Java , biblioteca estándar
- Kit de desarrollo de Java
- Entorno de ejecución de Java
- Javadoc
- Paquete Java
- Sistema de módulos de la plataforma Java
- Variables de Java
- Código de bytes de la JVM
- Expresiones Lambda [ 10 ]
- Métodos [ 11 ]
- Reflexión
- Escribe una vez, ejecuta en cualquier lugar [ 12 ]
Problemas y limitaciones
- Abstracción del hardware : los estudiantes no conocen los modelos de costos de bajo nivel.
- Limitaciones de la matriz : tamaño limitado y no se admiten matrices multidimensionales reales.
- Excepciones verificadas : criticadas por ser verbosas y abandonadas en gran medida por otros lenguajes.
- Límites de punto flotante : compatibilidad incompleta con IEEE 754.
- Los genéricos mediante el borrado de tipos limitan la expresividad y provocan errores de fiabilidad.
- Rendimiento de Java : las primeras implementaciones eran lentas en comparación con C/C++.
- La división entre tipos primitivos y objetos obliga a duplicar el código en las bibliotecas.
- La serialización se considera un grave riesgo para la seguridad.
- Falta de tuplas : requiere soluciones alternativas complicadas o bibliotecas de terceros.
- Controversias sobre licencias y gobernanza : la adquisición de Sun Microsystems por parte de Oracle y el posterior litigio.
- No sobrecargar operadores : esto hace que el código con muchas fórmulas matemáticas sea menos legible.
- Posibles fuentes de vulnerabilidades de seguridad en aplicaciones Java
- Proyecto Valhalla (tipos de valores faltantes): ineficiencia debido a que todo son objetos.
- Vulnerabilidades de seguridad : fugas repetidas de entornos aislados y oleadas de exploits.
- Tipos de enteros sin signo : problemáticos para la criptografía y la interoperabilidad con C.
- Paralelismo débil : los monitores son criticados por ser inseguros y poco fiables [ 13 ] [ 14 ].
Plataforma y ediciones de Java
- Java SE : edición estándar de la plataforma Java
- Jakarta EE (anteriormente Java EE) – API y entorno de ejecución de Enterprise Edition para aplicaciones de servidor de múltiples niveles [ 15 ]
- JavaFX
- Java ME – Micro Edition para dispositivos con recursos limitados y sistemas embebidos
Cadena de herramientas de Java
- Lista de software y herramientas Java
- Lista de frameworks de Java
- Lista de bibliotecas Java
- Lista de compiladores de Java
- Comparación de máquinas virtuales Java y lista de máquinas virtuales Java
- Lista de lenguajes JVM
- Lista de servidores de aplicaciones para Java
- Lista de frameworks de pruebas unitarias para Java
- Comparación de IDEs para Java
Proyectos destacados que utilizan Java
Comunidades de desarrollo de código abierto de Java
- Fundación de Software Apache – Apache Commons , Apache Maven , Apache Tomcat , Apache Kafka
- Fundación Eclipse – Adoptium , Eclipse IDE , Jakarta EE , Eclipse Jetty , Eclipse Vert.x
- Guayaba de Google
- Comunidad OpenJDK – Plataforma Java, Edición Estándar
- Oracle – GraalVM (Edición Comunitaria), JavaFX ( OpenJFX )
- Red Hat / JBoss – Hibernate , Drools , Quarkus
Código fuente de ejemplo
- Artículos con ejemplos de código Java
Publicaciones de Java
Libros sobre Java
- Bruce Eckel – Pensando en Java
- James Gosling – El lenguaje de programación Java
- Joshua Bloch – Java eficaz
- Kathy Sierra – Head First Java
- Herbert Schildt – Java: La referencia completa , Java: Guía para principiantes , Referencia del programador de Java 2
programadores Java
Dialectos de Java y lenguajes relacionados
- Clojure – Dialecto Lisp de la JVM
- Genial
- JRuby – Implementación de Ruby en la JVM
- Jython – Implementación de Python en la JVM
- Kotlin – Lenguaje de JetBrains para la JVM
- Scala – Lenguaje de JVM que combina paradigmas orientados a objetos y funcionales [ 16 ]
Véase también
- Proceso de la comunidad Java
- Historial de versiones de Java
- Esquema de programación informática
- Esquema del software
- Esquema de ingeniería de software
- Lista de software y herramientas de Kotlin
- Lista de programadores
- Esquemas de otros lenguajes de programación
Enlaces externos
- Oracle – Java
- OpenJDK: implementación de referencia y comunidad
- Java.com – descarga del entorno de ejecución e información general
Referencias
- ↑ "Capítulo 1: Introducción – La especificación del lenguaje Java" . Oracle . Consultado el 17 de septiembre de 2025 .
- ↑ "Introducción a Java" . www.w3schools.com .
- ↑ "Sun Microsystems presenta Java: Investigación para principiantes" . EBSCO Research .
- ↑ "Lenguaje de programación Java: Introducción a la investigación" . EBSCO Research .
- ↑ "Una breve historia del lenguaje de programación Java" . Baeldung.com . 2 de enero de 2022.
- ↑ "Oracle lanza Java 25" . Oracle . 16 de septiembre de 2025. Consultado el 17 de septiembre de 2025 .
- ↑ https://www.geeksforgeeks.org/java/classes-objects-java/
- ↑ https://www.geeksforgeeks.org/java/java-lang-reflect-field-class-in-java/
- ↑ https://www.geeksforgeeks.org/java/garbage-collection-in-java/
- ↑ https://www.geeksforgeeks.org/java/lambda-expressions-java-8/
- ↑ https://www.geeksforgeeks.org/java/methods-in-java/
- ↑ Equipo de Udemy (7 de enero de 2022). "13 conceptos básicos de Java que necesitas saber" .
- ↑ " Tutoriales gratuitos de Java: Crítica del lenguaje de programación Java" . www.freejavaguide.com
- ↑ https://www.geeksforgeeks.org/java/disadvantages-of-java-language/
- ↑ "Diferencias entre Java EE y Java SE" . Oracle . Consultado el 17 de septiembre de 2025 .
- ↑ "Una visión general de los lenguajes de la JVM" . Baeldung.com . 14 de abril de 2018.
- Java (lenguaje de programación)
- Esquemas
- Java (plataforma de software)
- Lenguajes de programación de la JVM
- Lenguajes de programación orientados a objetos
- Lenguajes de programación concurrentes
- Lenguajes de programación de tipado estático
- Lenguajes de programación basados en clases
- Comparación de lenguajes de programación
- Esquemas de informática e ingeniería