Podcast
Questions and Answers
¿Cuál de las siguientes herramientas permite enviar comandos específicos a la JVM?
¿Cuál de las siguientes herramientas permite enviar comandos específicos a la JVM?
¿Qué herramienta se utiliza para la generación de clases automáticas en clientes de web services de tipo SOAP?
¿Qué herramienta se utiliza para la generación de clases automáticas en clientes de web services de tipo SOAP?
¿Cuál es la función principal de la variable CLASSPATH en Java?
¿Cuál es la función principal de la variable CLASSPATH en Java?
¿Qué herramienta proporciona información sobre los procesos Java en ejecución, incluyendo el PID y los argumentos de inicio?
¿Qué herramienta proporciona información sobre los procesos Java en ejecución, incluyendo el PID y los argumentos de inicio?
Signup and view all the answers
¿Qué modificador de acceso permite que un método sea accesible solo dentro de la misma clase donde se define?
¿Qué modificador de acceso permite que un método sea accesible solo dentro de la misma clase donde se define?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones describe correctamente el propósito de rmic?
¿Cuál de las siguientes afirmaciones describe correctamente el propósito de rmic?
Signup and view all the answers
¿Cuál de los siguientes modificadores de acceso permite el acceso a la variable o método dentro de su propia clase, en clases del mismo paquete y en subclases, pero no externas?
¿Cuál de los siguientes modificadores de acceso permite el acceso a la variable o método dentro de su propia clase, en clases del mismo paquete y en subclases, pero no externas?
Signup and view all the answers
¿Qué herramienta permite la monitorización de la JVM?
¿Qué herramienta permite la monitorización de la JVM?
Signup and view all the answers
¿Qué modificador de acceso se utiliza si no se especifica 'public', 'private' o 'protected'?
¿Qué modificador de acceso se utiliza si no se especifica 'public', 'private' o 'protected'?
Signup and view all the answers
¿Cuál es la principal función de Apache HttpComponents?
¿Cuál es la principal función de Apache HttpComponents?
Signup and view all the answers
¿Qué biblioteca se utiliza para la creación de objetos simulados en pruebas unitarias?
¿Qué biblioteca se utiliza para la creación de objetos simulados en pruebas unitarias?
Signup and view all the answers
¿Qué herramienta se utiliza para firmar y verificar archivos JAR?
¿Qué herramienta se utiliza para firmar y verificar archivos JAR?
Signup and view all the answers
¿Cuál es la función del modificador 'transient' en Java?
¿Cuál es la función del modificador 'transient' en Java?
Signup and view all the answers
¿Qué método permite que solo un hilo ejecute un método a la vez en Java?
¿Qué método permite que solo un hilo ejecute un método a la vez en Java?
Signup and view all the answers
¿Cuál de las siguientes herramientas analiza las dependencias de clases y módulos de Java?
¿Cuál de las siguientes herramientas analiza las dependencias de clases y módulos de Java?
Signup and view all the answers
¿Qué herramienta permite la gestión de dependencias y la construcción de proyectos de software en Java?
¿Qué herramienta permite la gestión de dependencias y la construcción de proyectos de software en Java?
Signup and view all the answers
¿Qué representa un objeto en programación orientada a objetos?
¿Qué representa un objeto en programación orientada a objetos?
Signup and view all the answers
¿Cuál de las siguientes herramientas no gestiona dependencias?
¿Cuál de las siguientes herramientas no gestiona dependencias?
Signup and view all the answers
¿Cuál de las siguientes funcionalidades ofrece TestNG?
¿Cuál de las siguientes funcionalidades ofrece TestNG?
Signup and view all the answers
¿Cuál es el propósito principal de los paquetes en Java?
¿Cuál es el propósito principal de los paquetes en Java?
Signup and view all the answers
¿Qué modificador de acceso no permite acceso a clases externas, ya que es visible solo dentro de su propia clase y su paquete?
¿Qué modificador de acceso no permite acceso a clases externas, ya que es visible solo dentro de su propia clase y su paquete?
Signup and view all the answers
¿Qué herramienta permite escribir pruebas en lenguaje natural?
¿Qué herramienta permite escribir pruebas en lenguaje natural?
Signup and view all the answers
¿Qué opción describe mejor la utilidad de Apache Tika?
¿Qué opción describe mejor la utilidad de Apache Tika?
Signup and view all the answers
¿Cuál es el propósito principal de Project Lombok en la programación Java?
¿Cuál es el propósito principal de Project Lombok en la programación Java?
Signup and view all the answers
¿Cuál es la principal función del compilador javac en el ecosistema Java?
¿Cuál es la principal función del compilador javac en el ecosistema Java?
Signup and view all the answers
¿Qué herramienta se utiliza para desensamblar archivos .class y mostrar la información del bytecode?
¿Qué herramienta se utiliza para desensamblar archivos .class y mostrar la información del bytecode?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre JDK y JRE es correcta?
¿Cuál de las siguientes afirmaciones sobre JDK y JRE es correcta?
Signup and view all the answers
¿Qué herramienta se utiliza para generar documentación HTML a partir de comentarios del código fuente?
¿Qué herramienta se utiliza para generar documentación HTML a partir de comentarios del código fuente?
Signup and view all the answers
¿Para qué se utiliza la herramienta java en el ecosistema Java?
¿Para qué se utiliza la herramienta java en el ecosistema Java?
Signup and view all the answers
¿Cuál es la función del archivo con extensión .jar en el ecosistema Java?
¿Cuál es la función del archivo con extensión .jar en el ecosistema Java?
Signup and view all the answers
¿Qué herramienta se puede utilizar para depurar aplicaciones Java?
¿Qué herramienta se puede utilizar para depurar aplicaciones Java?
Signup and view all the answers
Dentro del ecosistema Java, ¿qué es Jakarta EE?
Dentro del ecosistema Java, ¿qué es Jakarta EE?
Signup and view all the answers
¿Cuál es la función principal de las anotaciones en Java?
¿Cuál es la función principal de las anotaciones en Java?
Signup and view all the answers
¿Qué indica la anotación @Deprecated en Java?
¿Qué indica la anotación @Deprecated en Java?
Signup and view all the answers
¿Qué concepto permite que una misma operación se comporte de diferentes maneras en distintas clases?
¿Qué concepto permite que una misma operación se comporte de diferentes maneras en distintas clases?
Signup and view all the answers
En Java, ¿qué significa la ligadura dinámica?
En Java, ¿qué significa la ligadura dinámica?
Signup and view all the answers
¿Qué permite la herencia en programación orientada a objetos?
¿Qué permite la herencia en programación orientada a objetos?
Signup and view all the answers
¿Qué función cumple la anotación @Override en Java?
¿Qué función cumple la anotación @Override en Java?
Signup and view all the answers
¿Cuál es el propósito principal de Maven en el desarrollo de software?
¿Cuál es el propósito principal de Maven en el desarrollo de software?
Signup and view all the answers
En el contexto de Java, ¿qué es un Enum?
En el contexto de Java, ¿qué es un Enum?
Signup and view all the answers
Study Notes
Ecosistema Java SE
- Conjunto de tecnologías, herramientas y prácticas basadas en el lenguaje de programación Java.
- El lenguaje Java es orientado a objetos.
- La Máquina Virtual de Java (JVM) ejecuta el código bytecode generado por el compilador de Java.
- El código bytecode tiene extensión .class
- Los archivos .java son el código fuente que se compila en código bytecode.
- JDK (Kit de Desarrollo de Java): Incluye herramientas como el compilador javac, la JVM, y otras utilidades para desarrollar aplicaciones Java.
- JRE (Entorno de Ejecución de Java): Incluye la JVM y las bibliotecas necesarias para ejecutar aplicaciones Java, pero no las herramientas de desarrollo.
Herramientas de desarrollo
- javac (Compilador): Traduce el código Java a bytecode.
- javap (Desensamblador Java): Desensambla archivos .class para mostrar la información del bytecode.
- java (Lanzador Java): Intérprete que ejecuta el bytecode en archivos .class usando la JVM.
- javadoc: Genera documentación HTML a partir de los comentarios del código fuente.
- jar (Herramienta de archivo Java): Empaqueta archivos .class y otros recursos en un archivo .jar, similar a un archivo DDL.
- jdb (Depurador Java): Permite depurar aplicaciones Java
- jstat: Monitorea el uso de recursos de la JVM.
- jconsole y VisualVM: Herramientas gráficas para monitorear y gestionar aplicaciones Java en tiempo real.
- jps: Muestra información sobre los procesos Java en ejecución en la máquina.
- jmc: Ofrece herramientas de monitorización de la JVM.
- jcmd: Permite enviar comandos específicos a la JVM.
- jshell: Consola Java que permite ejecutar rápidamente bloques de código (desde Java 9).
- jarsigner: Firmar y verificar archivos .jar
- Keytool: Herramienta relacionada con la criptografía, similar a openssl
- wsimport: Genera clases automáticas para clientes de web services SOAP
- xjc: Compilador que genera clases Java a partir de un XSD (esquema XML).
- rmic: Compilador RMI de Java, utilizado para generar clases stub y skeleton que permiten la comunicación remota en aplicaciones que utilizan RMI.
- rmiregistry: Servicio de nombres utilizado para registrar y buscar objetos remotos en una red.
- jdeps: Analiza las dependencias de clases y módulos de Java.
Ejecución
- JRE: Incluye el intérprete (JVM) y las bibliotecas de clases base (rt.jar).
- CLASSPATH: Variable que le indica a la JVM y al compilador javac dónde buscar archivos de clase (.class) y archivos JAR que contienen las clases y paquetes necesarios para ejecutar o compilar un programa.
Modificadores de acceso
- public: Accesible desde cualquier clase.
- private: Visible solo dentro de la clase donde se define.
- protected: Visible dentro de la clase donde se define, en las clases del mismo paquete y en las subclases, incluso si están en paquetes diferentes.
- default: Sin modificador explícito (public, private o protected).
Tabla resumen de modificadores de acceso
Modificador de acceso | Misma clase | Mismo paquete | Subclases | Clases externas |
---|---|---|---|---|
public | ✔ | ✔ | ✔ | ✔ |
protected | ✔ | ✔ | ✔ | ✘ |
default | ✔ | ✔ | ✘ | ✘ |
private | ✔ | ✘ | ✘ | ✘ |
- native: Declara que un método está implementado en código nativo (generalmente C o C++).
- volatile: Indica que una variable puede ser modificada por diferentes hilos y que su valor debe leerse de la memoria principal cada vez.
- transient: Indica que ciertos atributos no deben serializarse.
- synchronized: Garantiza que un método solo sea ejecutado por un hilo a la vez. Los demás hilos se bloquean en una cola.
Objetos, Paquetes, Interfaces y Enum
- Objeto: Instancia de una clase, representa una entidad concreta con estado y comportamiento específicos.
- Paquetes: Agrupan clases e interfaces relacionadas en un namespace. Facilitan la organización del código, evitando conflictos de nombres y permitiendo un acceso controlado a las clases.
- Interfaces: Definen un conjunto de métodos. Pueden no tener código o atributos, pero establecen normas para que todo funcione correctamente y de forma estándar.
- Enum: Un dominio de valores fijos.
Anotaciones
- Anotaciones: Añaden metadata (información adicional) a las clases, métodos, variables y parámetros en Java.
- @Override: Indica que un método está sobrescribiendo un método de su clase base.
- @Deprecated: Indica que un elemento de código (clase, método, etc.) está obsoleto y no debería utilizarse.
- @SuppressWarnings: Indica que el compilador debe ignorar ciertas advertencias en el código.
- @FunctionalInterface: Indica que una interfaz es funcional, con un único método abstracto.
Herencia
- Permitida a través de la palabra clave extends. Permite a una clase (subclase) heredar los atributos y métodos de otra clase (superclase), promoviendo la reutilización de código y la creación de jerarquías de clases.
Sobrecarga y Polimorfismo
- Sobrecarga (Overloading): Define múltiples métodos con el mismo nombre dentro de la misma clase, con diferentes parámetros (cantidad, tipo o ambos).
- Polimorfismo: Permite que una misma operación se comporte de diferentes maneras en distintas clases.
- Ligadura dinámica: Mecanismo por el cual la JVM determina en tiempo de ejecución qué método invocar.
Herramientas / Librerías de terceros
-
IDE's: Entornos de desarrollo (Eclipse, IntelliJ, Netbeans, etc.)
-
Workspace: Conjunto de proyectos en un IDE.
-
Automatización del desarrollo:
- Ant: Utiliza un archivo XML (build.xml) para definir el proceso de construcción.
- Maven: Gestiona la construcción de proyectos de software, especialmente en Java. Utiliza un archivo XML (pom.xml) para describir la configuración del proyecto.
- Gradle: Utiliza un archivo (build.gradle) en Groovy o Kotlin DSL.
- Ivy: Extensión de Ant para la gestión de dependencias.
- Jenkins: Integración continua.
-
JDK's: OpenJDK, Amazon Corretto, IBM JDK, etc.
-
Java Virtual Machine Specification: Define las normas para crear un JDK, permitiendo que diferentes empresas desarrollen sus propias implementaciones.
-
Librerías/Frameworks:
- iText, PDFBox: Generación de archivos PDF.
- BouncyCastle: Criptografía.
- Log4j, Logback, SLF4J: Registrar eventos del sistema.
- Xerces, Xalan, Woodstox y Apache FOP: Parsers XML y Procesadores XSL.
- Apache Commons (lang, dbcp, crypto, fileupload, io, codec, etc.) y Guava de Google: Bibliotecas de propósito general.
- Apache HttpComponents: Peticiones HTTP a bajo nivel.
- Gson y Jackson: Manejo de información en formato JSON.
- Apache POI: Manejo de documentos de Office.
- Apache Tika: Detección y extracción de contenido de múltiples formatos.
- Pentaho Kettle: ETL para extracción de información, transformación y carga de archivos.
- Project Lombok: Reduce la verbosidad del código Java mediante la generación automática de métodos comunes.
- mockito-core: Biblioteca de pruebas que facilita la creación de objetos simulados (mocks).
- JUnit+Mockito y JMeter: Pruebas unitarias y de carga.
- TestNG: Marco de pruebas con funcionalidades avanzadas, como la ejecución de pruebas en paralelo.
- Cucumber: Herramienta para pruebas de aceptación.
-
Herramientas de Automatización:
- Ant (Apache): Herramienta de automatización de compilación y construcción.
- Maven (Apache): Gestiona la construcción de proyectos de software.
- Gradle: Otro framework para la gestión de proyectos.
- Jenkins: Integración continua.
- Ivy: Extensión de Ant para la gestión de dependencias.
Información adicional
-
Maven:
- Se basa en el concepto de un Modelo de Objeto de Proyecto (POM) que describe la estructura del proyecto y sus configuraciones.
- Estructura de directorio: src→main→java (obligatorio).
- Ciclo de vida de construcción: validate, compile, test, package, verify, install, deploy.
- mvn clean: Limpia el directorio de construcción.
- mvn compile: Compila el código fuente.
- mvn test: Ejecuta las pruebas.
- mvn package: Empaqueta el código en un archivo JAR o WAR (target/*.jar).
- mvn install: Instala el paquete en el repositorio local.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este cuestionario explora el ecosistema Java SE, incluyendo conceptos clave como la Máquina Virtual de Java, el JDK y el JRE. Además, se abordan herramientas de desarrollo esenciales como el compilador javac y el lanzador java. A medida que avances, pondrás a prueba tu comprensión del lenguaje de programación orientado a objetos Java.