Articulo de referencia

Plataforma Java, Edición Estándar

Java Platform, Standard Edition ( Java SE ) es una plataforma informática , un estándar técnico para la ejecución de aplicaciones en plataformas independientes compatibles con J...

Java Platform, Standard Edition ( Java SE ) es una plataforma informática , un estándar técnico para la ejecución de aplicaciones en plataformas independientes compatibles con Java como código portable para entornos de escritorio y servidor . [ 1 ] [ 2 ] Java SE se conocía anteriormente como Java 2 Platform, Standard Edition ( J2SE ).

La plataforma utiliza el lenguaje de programación Java y forma parte de la familia de plataformas de software Java . Java SE define una gama de API de propósito general , como las API de Java para la biblioteca de clases de Java , e incluye también la especificación del lenguaje Java y la especificación de la máquina virtual Java . [ 3 ] OpenJDK es la implementación de referencia oficial desde la versión 7. [ 4 ] [ 5 ] [ 6 ]

Nomenclatura, normas y especificaciones

La plataforma se conocía como Java 2 Platform, Standard Edition o J2SE desde la versión 1.2, hasta que el nombre cambió a Java Platform, Standard Edition o Java SE en la versión 1.5. El "SE" se usa para distinguir la plataforma base de las plataformas Enterprise Edition ( Java EE ) y Micro Edition ( Java ME ). El "2" originalmente tenía la intención de enfatizar los cambios importantes introducidos en la versión 1.2, pero se eliminó en la versión 1.6. La convención de nombres ha cambiado varias veces a lo largo de la historia de las versiones de Java . A partir de J2SE 1.4 (Merlin), Java SE se ha desarrollado bajo el Java Community Process , que produce descripciones de especificaciones propuestas y finales para la plataforma Java llamadas Java Specification Requests (JSR) . [ 7 ] JSR 59 fue la especificación general para J2SE 1.4 y JSR 176 especificó J2SE 5.0 (Tiger). Java SE 6 (Mustang) se lanzó bajo JSR 270.

Java Platform, Enterprise Edition (Java EE) es una especificación relacionada que incluye todas las clases de Java SE, además de otras que son más útiles para programas que se ejecutan en servidores en lugar de estaciones de trabajo .

Java Platform, Micro Edition (Java ME) es una especificación relacionada destinada a proporcionar una colección certificada de API de Java para el desarrollo de software para dispositivos pequeños y con recursos limitados, como teléfonos celulares , PDA y decodificadores .

El Entorno de Ejecución de Java (JRE) y el Kit de Desarrollo de Java (JDK) son los archivos que se descargan e instalan en un ordenador para ejecutar o desarrollar programas Java, respectivamente.

Paquetes de uso general

La mayoría de estos paquetes son exportados por el java.basemódulo del Sistema de Módulos de la Plataforma Java (desde Java 9).

java.lang

El paquete Javajava.lang contiene clases e interfaces fundamentales estrechamente vinculadas al lenguaje y al sistema de ejecución . Esto incluye las clases raíz que conforman la jerarquía de clases , los tipos asociados a la definición del lenguaje, las excepciones básicas , las funciones matemáticas, la gestión de hilos , las funciones de seguridad, así como información sobre el sistema nativo subyacente. Este paquete contiene 22 de las 32 java.lang.Errorclases proporcionadas en JDK 6.

Las clases e interfaces principales java.langson:

  • Object– la clase que es la raíz de toda jerarquía de clases.
  • Enum– la clase base para las clases de enumeración (a partir de J2SE 5.0).
  • Class– la clase que es la raíz del sistema de programación reflexiva (reflexión) de Java.
  • Throwable– la clase que es la clase base de la jerarquía de clases de excepción.
  • Error, Exception, y RuntimeException– las clases base para cada tipo de excepción.
  • Thread– la clase que permite realizar operaciones en hilos.
  • String– la clase para cadenas y literales de cadena .
  • StringBuffery StringBuilder– clases para realizar manipulación de cadenas ( StringBuildera partir de J2SE 5.0).
  • Comparable– la interfaz que permite la comparación y ordenación genérica de objetos (a partir de J2SE 1.2).
  • Iterable– la interfaz que permite la iteración genérica utilizando el bucle mejoradofor (a partir de J2SE 5.0).
  • ClassLoader, Process, Runtime, SecurityManager, y System– clases que proporcionan "operaciones del sistema" que gestionan la carga dinámica de clases, la creación de procesos externos , consultas del entorno del host, como la hora del día, y la aplicación de políticas de seguridad .
  • Mathy StrictMath– clases que proporcionan funciones matemáticas básicas como seno , coseno y raíz cuadrada ( java.lang.StrictMatha partir de J2SE 1.3).
  • Las clases contenedoras primitivas que encapsulan tipos primitivos como objetos .
  • Las clases de excepciones básicas que se generan para las excepciones a nivel de lenguaje y otras excepciones comunes.

Las clases java.langse importan automáticamente a cada archivo fuente .

java.lang.ref

Este java.lang.refpaquete proporciona tipos de referencias más flexibles que las disponibles de otro modo, lo que permite una interacción limitada entre la aplicación y el recolector de basura de la Máquina Virtual de Java (JVM) . Es un paquete importante, lo suficientemente central para el lenguaje como para que sus diseñadores lo incluyeran en el espacio de nombres , pero es algo específico y no lo utilizan muchos desarrolladores. Este paquete se añadió en J2SE 1.2.java.lang

Java cuenta con un sistema de referencias expresivo y permite un comportamiento especial para la recolección de basura. Una referencia normal en Java se conoce como "referencia fuerte". El java.lang.refpaquete define otros tres tipos de referencias: suaves, débiles y fantasma. Cada tipo de referencia está diseñado para un uso específico.

  • Se SoftReferencepuede utilizar una caché para implementarla . Un objeto que no es accesible mediante una referencia fuerte (es decir, no es fuertemente accesible), pero al que se hace referencia mediante una referencia suave, se denomina "accesible suavemente". Un objeto accesible suavemente puede ser eliminado por el recolector de basura a su discreción. Esto generalmente significa que los objetos accesibles suavemente solo se eliminan cuando la memoria libre es baja; pero, de nuevo, esto queda a discreción del recolector de basura. Semánticamente, una referencia suave significa: "Conserva este objeto cuando ningún otro lo referencia, a menos que se necesite la memoria".
  • A WeakReferencese utiliza para implementar mapas débiles. Un objeto que no es alcanzable de forma fuerte ni suave, pero al que se hace referencia mediante una referencia débil, se denomina " débilmente alcanzable ". Un objeto débilmente alcanzable se elimina mediante el recolector de basura en el siguiente ciclo de recolección. Este comportamiento se utiliza en la clase java.util.WeakHashMap. Un mapa débil permite al programador colocar pares clave/valor en el mapa sin preocuparse de que los objetos ocupen memoria cuando la clave ya no sea alcanzable en ningún otro lugar. Otra posible aplicación de las referencias débiles es el grupo de internas de cadenas . Semánticamente, una referencia débil significa "eliminar este objeto cuando nada más lo referencia en la siguiente recolección de basura".
  • Se utiliza una PhantomReferencereferencia fantasma para indicar objetos marcados para la recolección de basura y finalizados , pero que aún no han sido recuperados. Un objeto que no es alcanzable de forma fuerte, suave o débil, pero al que se hace referencia mediante una referencia fantasma, se denomina "alcanzable fantasma". Esto permite una limpieza más flexible que la que se logra con el mecanismo de finalización por sí solo. Semánticamente, una referencia fantasma significa "este objeto ya no es necesario y se ha finalizado para su recolección".

Cada uno de estos tipos de referencia extiende la Referenceclase, que proporciona el get()método para devolver una referencia fuerte al objeto de referencia (o nullsi la referencia se ha borrado o si el tipo de referencia es fantasma), y el clear()método para borrar la referencia.

También java.lang.refdefine la clase ReferenceQueue, que puede utilizarse en cada una de las aplicaciones descritas anteriormente para realizar un seguimiento de los objetos que han cambiado de tipo de referencia. Cuando java.lang.ref.Reference<T>se crea un objeto, se registra opcionalmente en una cola de referencias. La aplicación consulta la cola de referencias para obtener las referencias que han cambiado de estado de accesibilidad.

java.lang.reflect

La programación reflexiva (reflexión) es un componente de la API de Java que permite que el código Java examine y "refleje" los componentes Java en tiempo de ejecución y utilice los miembros reflejados. Las clases del java.lang.reflectpaquete, junto con java.lang.Class<T>otras, java.lang.Packageson compatibles con aplicaciones como depuradores , intérpretes , inspectores de objetos, exploradores de clases y servicios como la serialización de objetos y JavaBeans que necesitan acceso a los miembros públicos de un objeto de destino (según su clase en tiempo de ejecución) o a los miembros declarados por una clase determinada. Este paquete se añadió en JDK 1.1.

La reflexión se utiliza para instanciar clases e invocar métodos mediante sus nombres, un concepto que permite la programación dinámica. Clases, interfaces, métodos, campos y constructores pueden descubrirse y utilizarse en tiempo de ejecución. La reflexión se apoya en los metadatos que la JVM almacena sobre el programa.

Técnicas

Existen técnicas básicas implicadas en la reflexión:

  • Descubrimiento: esto implica tomar un objeto o clase y descubrir sus miembros, superclases, interfaces implementadas y, posiblemente, utilizar los elementos descubiertos.
  • Uso por nombre: implica comenzar con el nombre simbólico de un elemento y utilizar el elemento nombrado.
Descubrimiento

El proceso de descubrimiento generalmente comienza con un objeto y la llamada al Object.getClass()método para obtener el objeto java.lang.Class<?>. El java.lang.Class<T>objeto tiene varios métodos para descubrir el contenido de la clase, por ejemplo:

  • getMethods()– devuelve una matriz de Methodobjetos que representan todos los métodos públicos de la clase o interfaz.
  • getConstructors()– devuelve una matriz de Constructorobjetos que representan todos los constructores públicos de la clase
  • getFields()– devuelve una matriz de Fieldobjetos que representan todos los campos públicos de la clase o interfaz.
  • getClasses()– devuelve un java.lang.Class<?>[]objeto que representa todas las clases e interfaces públicas que son miembros (por ejemplo, clases internas ) de la clase o interfaz.
  • getSuperclass()– devuelve el java.lang.Class<? super T>objeto que representa la superclase de la clase o interfaz ( nullse devuelve para las interfaces)
  • getInterfaces()– devuelve un objeto java.lang.Class<?>[]que representa todas las interfaces que implementa la clase o interfaz.
Usar por nombre

El java.lang.Class<T>objeto se puede obtener mediante descubrimiento, utilizando el literal de clase (por ejemplo X.class, para una clase X) o utilizando el nombre de la clase (por ejemplo, Class.forName("mypackage.MyClass")). Con un java.lang.Class<T>objeto, los miembros java.lang.reflect.Method, java.lang.reflect.Constructor<T>, o java.lang.reflect.Fieldlos objetos se pueden obtener utilizando el nombre simbólico del miembro. Por ejemplo:

  • getMethod(String name, Class<?>... parameterTypes)– devuelve el java.lang.reflect.Methodobjeto que representa el método público con el nombre namede la clase o interfaz que acepta los parámetros especificados por los java.lang.Class<?>...parámetros.
  • getConstructor(Class<?>... parameterTypes)– devuelve el java.lang.reflect.Constructor<T>objeto que representa el constructor público de la clase que acepta los parámetros especificados por los java.lang.Class<?>...parámetros.
  • getField(String name)– Devuelve el java.lang.reflect.Fieldobjeto que representa el campo público con el nombre namede la clase o interfaz.

java.lang.reflect.MethodLos objetos , java.lang.reflect.Constructor<T>, y java.lang.reflect.Fieldse pueden usar para acceder dinámicamente al miembro representado de la clase. Por ejemplo:

  • Field.get(Object obj)– devuelve un objeto java.lang.Objectque contiene el valor del campo de la instancia del objeto pasado a get(). (Si el java.lang.reflect.Fieldobjeto representa un campo estático, el java.lang.Objectparámetro se ignora y puede ser null.)
  • Method.invoke(Object obj, Object... args)– devuelve un objeto java.lang.Objectque contiene el resultado de invocar el método para la instancia del primer java.lang.Objectparámetro pasado a invoke(). Los parámetros restantes java.lang.Object...se pasan al método. (Si el java.lang.reflect.Methodobjeto representa un método estático , el primer java.lang.Objectparámetro se ignora y puede ser null).
  • Constructor.newInstance(Object... initargs)– Devuelve la nueva java.lang.Objectinstancia obtenida al invocar el constructor. Los java.lang.Object...parámetros se pasan al constructor. (Tenga en cuenta que el constructor sin parámetros de una clase también se puede invocar llamando a newInstance().)
Matrices y proxies

El java.lang.reflectpaquete también proporciona una Arrayclase que contiene métodos estáticos para crear y manipular objetos de matriz y, desde J2SE 1.3, una Proxyclase que admite la creación dinámica de clases proxy que implementan interfaces específicas.

La implementación de una java.lang.reflect.Proxyclase la proporciona un objeto que implementa la InvocationHandlerinterfaz. El java.lang.reflect.InvocationHandlermétodo se llama para cada método invocado en el objeto proxy: el primer parámetro es el objeto proxy, el segundo es el objeto que representa el método de la interfaz implementado por el proxy, y el tercero es el array de parámetros pasados ​​al método de la interfaz. El método devuelve un resultado que contiene el resultado devuelto al código que llamó al método de la interfaz proxy.invoke(Object proxy, Method method, Object[] args)java.lang.reflect.Methodinvoke()java.lang.Object

java.io

El java.iopaquete contiene clases que admiten entrada y salida . Las clases del paquete están principalmente orientadas a flujos ; sin embargo, también se proporciona una clase para archivos de acceso aleatorio . Las clases centrales del paquete son y , que son clases base abstractas para leer y escribir en flujos de bytes , respectivamente. Las clases relacionadas y son clases base abstractas para leer y escribir en flujos de caracteres , respectivamente. El paquete también tiene algunas clases misceláneas para admitir interacciones con el sistema de archivos del host .InputStreamOutputStreamReaderWriter

Corrientes

Las clases de flujo siguen el patrón decorador extendiendo la subclase base para agregar características a las clases de flujo. Las subclases de las clases de flujo base generalmente se nombran según uno de los siguientes atributos:

  • el origen/destino de los datos de la transmisión
  • el tipo de datos escritos en/leídos del flujo
  • procesamiento o filtrado adicional realizado en los datos de la transmisión

Las subclases de flujo se nombran utilizando el patrónXxxStreamType de nomenclatura donde Xxxes el nombre que describe la característica y StreamTypees uno de java.io.InputStream, java.io.OutputStream, java.io.Reader, o java.io.Writer.

La siguiente tabla muestra las fuentes/destinos compatibles directamente con el java.iopaquete:

Otros paquetes de la biblioteca estándar proporcionan implementaciones de flujo para otros destinos, como el java.io.InputStreamdevuelto por el método o la clase java.net.Socket.getInputStream()Java EE .javax.servlet.ServletOutputStream

El manejo del tipo de datos y el procesamiento o filtrado de datos de flujo se realiza a través de filtros de flujo . Todas las clases de filtro aceptan otro objeto de flujo compatible como parámetro del constructor y decoran el flujo contenido con características adicionales. Los filtros se crean extendiendo una de las clases de filtro base FilterInputStream, FilterOutputStream, FilterReader, o FilterWriter.

Las clases java.io.Readery java.io.Writerson simplemente flujos de bytes con procesamiento adicional realizado en el flujo de datos para convertir los bytes en caracteres. Utilizan la codificación de caracteres predeterminada de la plataforma, que a partir de J2SE 5.0 está representada por el Charsetvalor devuelto por el java.nio.charset.Charset.defaultCharset()método estático. La InputStreamReaderclase convierte un InputStreamen un java.io.Readery la OutputStreamWriterclase convierte un java.io.OutputStreamen un java.io.Writer. Ambas clases tienen constructores que admiten la especificación de la codificación de caracteres a utilizar. Si no se especifica ninguna codificación, el programa utiliza la codificación predeterminada de la plataforma.

La siguiente tabla muestra los demás procesos y filtros que java.ioadmite directamente el paquete. Todas estas clases extienden la java.io.FilterInputStreamclase correspondiente.

Acceso aleatorio

La RandomAccessFileclase admite lectura y escritura de archivos con acceso aleatorio . Utiliza un puntero de archivo que representa un desplazamiento de bytes dentro del archivo para la siguiente operación de lectura o escritura. El puntero de archivo se mueve implícitamente al leer o escribir, y explícitamente al llamar a los métodos seek(long)correspondientes skipBytes(int). El método devuelve la posición actual del puntero de archivo getFilePointer().

Sistema de archivos

La Fileclase representa una ruta de archivo o directorio en un sistema de archivos . Los objetos admiten la creación, eliminación y cambio de nombre de archivos y directorios, así como la manipulación de atributos de archivo como solo lectura y marca de tiempo de última modificación . Los objetos que representan directorios se pueden usar para obtener una lista de todos los archivos y directorios que contienen.java.io.Filejava.io.File

La FileDescriptorclase es un descriptor de archivo que representa un origen o destino de bytes. Normalmente se trata de un archivo, pero también puede ser una consola o un socket de red . java.io.FileDescriptorLos objetos se utilizan para crear java.io.Fileflujos. Se obtienen a partir de java.io.Fileflujos, java.netsockets y sockets de datagramas.

java.nio

java.nioEn J2SE 1.4, se añadió el paquete (NIO o E/S sin bloqueo) para admitir E/S mapeada en memoria , facilitando las operaciones de E/S más cerca del hardware subyacente con un rendimiento a veces notablemente superior. El java.niopaquete admite varios tipos de búfer. El subpaquete java.nio.charsetadmite diferentes codificaciones de caracteres para datos de caracteres. El subpaquete java.nio.channelsadmite canales, que representan conexiones a entidades capaces de realizar operaciones de E/S, como archivos y sockets. El java.nio.channelspaquete también admite el bloqueo granular de archivos.

matemáticas de Java

El java.mathpaquete admite aritmética de precisión múltiple (incluidas operaciones aritméticas modulares) y proporciona generadores de números primos de precisión múltiple utilizados para la generación de claves criptográficas. Las clases principales del paquete son:

  • BigDecimal– proporciona números decimales con signo de precisión arbitraria. java.math.BigDecimalPermite al usuario controlar el comportamiento de redondeo mediante java.math.RoundingMode.
  • BigIntegerProporciona números enteros de precisión arbitraria. Las operaciones java.math.BigIntegerno provocan desbordamiento ni pérdida de precisión. Además de las operaciones aritméticas estándar, ofrece aritmética modular , cálculo del máximo común divisor (MCD) , comprobación de primalidad , generación de números primos , manipulación de bits y otras operaciones diversas.
  • MathContext – encapsular la configuración del contexto que describe ciertas reglas para los operadores numéricos.
  • RoundingMode– una enumeración que proporciona ocho comportamientos de redondeo.

java.net

El java.netpaquete proporciona rutinas de E/S especiales para redes, que permiten solicitudes HTTP , así como otras transacciones comunes.

java.text

El java.textpaquete implementa rutinas de análisis sintáctico para cadenas de texto y admite varios idiomas legibles por humanos, así como análisis sintáctico específico para cada configuración regional.

java.util

java.utilEl paquete se centra en estructuras de datos que agregan objetos. Incluye la API de colecciones , una jerarquía de estructuras de datos organizada, fuertemente influenciada por las consideraciones de los patrones de diseño .

Paquetes para fines especiales

java.applet

Creado para facilitar la creación de applets de Java , este java.appletpaquete permite descargar aplicaciones a través de una red y ejecutarlas dentro de un entorno aislado protegido. Es fácil imponer restricciones de seguridad en dicho entorno. Un desarrollador, por ejemplo, puede aplicar una firma digital a un applet, etiquetándolo así como seguro. Esto permite al usuario otorgar al applet permiso para realizar operaciones restringidas (como acceder al disco duro local) y elimina algunas o todas las restricciones del entorno aislado. Los certificados digitales son emitidos por autoridades de certificación .

Dado que los applets de Java están ahora en desuso, este paquete también está en desuso.

java.beans

El java.beanspaquete incluye varias clases para desarrollar y manipular beans, componentes reutilizables definidos por la arquitectura JavaBeans . Esta arquitectura proporciona mecanismos para manipular las propiedades de los componentes y activar eventos cuando dichas propiedades cambian.

Las API java.beansestán diseñadas para ser utilizadas por una herramienta de edición de beans, en la que los beans pueden combinarse, personalizarse y manipularse. Un tipo de editor de beans es un diseñador de interfaz gráfica de usuario en un entorno de desarrollo integrado .

java.awt

El java.awtJDK 6, o Abstract Window Toolkit, proporciona acceso a un conjunto básico de widgets de interfaz gráfica de usuario (GUI) basados ​​en el conjunto de widgets de la plataforma nativa subyacente, el núcleo del subsistema de eventos de la GUI y la interfaz entre el sistema de ventanas nativo y la aplicación Java. También proporciona varios administradores de diseño básicos , un paquete de transferencia de datos para usar con el portapapeles y la función de arrastrar y soltar , la interfaz para dispositivos de entrada como ratones y teclados , así como acceso a la bandeja del sistema en sistemas compatibles. Este paquete, junto con javax.swingel JDK 6, contiene la mayor cantidad de enumeraciones (7 en total).

java.rmi

El java.rmipaquete proporciona invocación remota de métodos Java para admitir llamadas a procedimientos remotos entre dos aplicaciones Java que se ejecutan en diferentes máquinas virtuales Java (JVM) .

java.security

java.securityEl paquete incluye soporte para la seguridad, incluido el algoritmo de resumen de mensajes .

java.sql

En este paquete se incluye una implementación de la API JDBC (utilizada para acceder a bases de datos SQL ) .java.sql

javax.rmi

El javax.rmipaquete proporcionaba soporte para la comunicación remota entre aplicaciones, utilizando el protocolo RMI sobre IIOP. Este protocolo combina características de RMI y CORBA.

Tecnologías principales de Java SE: CORBA / RMI-IIOP

javax.swing

Swing es una colección de rutinas que se basan en java.awtpara proporcionar un conjunto de herramientas de widgets independiente de la plataforma . javax.swingUtiliza las rutinas de dibujo 2D para renderizar los componentes de la interfaz de usuario en lugar de depender del soporte de GUI nativo del sistema operativo subyacente .

Este paquete contiene la mayor cantidad de clases (133 en total) en JDK 6. Este paquete, junto con java.awttambién contiene la mayor cantidad de enumeraciones (7 en total) en JDK 6. Admite apariencias y sensaciones conectables (PLAF) para que los widgets en la GUI puedan imitar los del sistema nativo subyacente. Los patrones de diseño impregnan el sistema, especialmente una modificación del patrón modelo-vista-controlador , que flexibiliza el acoplamiento entre función y apariencia. Una inconsistencia es que (a partir de J2SE 1.3) las fuentes son dibujadas por el sistema nativo subyacente, y no por Java, lo que limita la portabilidad del texto. Existen soluciones alternativas, como el uso de fuentes de mapa de bits. En general, se utilizan "diseños" que mantienen los elementos dentro de una GUI estéticamente consistente en todas las plataformas.

javax.swing.text.html.parser

El javax.swing.text.html.parserpaquete proporciona el analizador HTML tolerante a errores que se utiliza para escribir en varios navegadores web y bots web.

javax.xml.bind.annotation

El javax.xml.bind.annotationpaquete contenía la mayor cantidad de tipos de anotaciones (30 en total) en JDK 6. Define anotaciones para personalizar los elementos del programa Java y asignarlos a un esquema XML.

org.w3c

Java contiene paquetes para utilidades del Consorcio World Wide Web (principalmente XML ) bajo el espacio de nombres org.w3c. Muchos de estos existen en el java.xmlmódulo.

org.w3c.dom

Los org.w3c.dompaquetes proporcionan interfaces para el Modelo de Objetos del Documento (DOM).

org.xml.sax

Los org.xml.saxpaquetes proporcionan interfaces para la API simple para XML (SAX).

org.omg

org.omg.CORBA

El org.omg.CORBApaquete proporciona soporte para la comunicación remota entre aplicaciones mediante el Protocolo General Inter-ORB y admite otras características de la arquitectura común de intermediario de solicitudes de objetos . Al igual que RMI y RMI-IIOP , este paquete sirve para llamar a métodos remotos de objetos en otras máquinas virtuales (normalmente a través de la red).

Este paquete contenía la mayor cantidad de java.lang.Exceptionclases (45 en total) en JDK 6. Entre todas las posibilidades de comunicación, CORBA es portable entre varios lenguajes; sin embargo, esto conlleva una mayor complejidad.

Estos paquetes fueron declarados obsoletos en Java 9 y eliminados de Java 11. [ 8 ]

org.omg.PortableInterceptor

El org.omg.PortableInterceptorpaquete contenía la mayor cantidad de interfaces (39 en total) en JDK 6. Proporciona un mecanismo para registrar ganchos ORB a través de los cuales los servicios ORB interceptan el flujo normal de ejecución del ORB.

Seguridad

Se han reportado varias vulnerabilidades de seguridad críticas. [ 9 ] [ 10 ] Las alertas de seguridad de Oracle anuncian parches críticos relacionados con la seguridad para Java SE. [ 11 ]

Referencias

  1. "Descripción general de Java SE" . Oracle Corporation . Consultado el 26 de febrero de 2017 .
  2. ""Especificación de la API de la plataforma Java®, edición estándar y del kit de desarrollo de Java, versión 25"" .
  3. "Contenido de la versión Java SE 6" . Oracle Corporation y/o sus filiales . Consultado el 1 de enero de 2013 .
  4. Transición a OpenJDK como implementación de referencia oficial de Java SE 7
  5. Implementaciones de referencia de la plataforma Java, edición estándar 7
  6. "Implementaciones de referencia de la plataforma Java, edición estándar 8" . Archivado del original el 21 de noviembre de 2015.
  7. "Descripción general de las solicitudes de especificación de Java" . Oracle Corporation y/o sus filiales . Consultado el 1 de enero de 2013 .
  8. "JEP 320: Eliminar los módulos Java EE y CORBA" . Openjdk.java.net. 23 de mayo de 2019. Consultado el 20 de marzo de 2022 .
  9. Vulnerabilidad peligrosa en la última versión de Java. The H Security, 10 de enero de 2013.
  10. Darlene Storm (25 de septiembre de 2012). "Otra vulnerabilidad crítica de Java pone en riesgo a mil millones de usuarios" . Blog de seguridad de Computerworld . Archivado del original el 13 de enero de 2013. Consultado el 11 de enero de 2013 .
  11. "Actualizaciones de parches críticos, alertas de seguridad y boletines de terceros" . Oracle.
  • Java SE de Oracle Technology Network
  • Javadocs de la API de Java SE 24
  • Documentación de la API de Java SE
  • JSR 270 (Java SE 6)
  • 1.8
  • 1.7
  • 1.6