B3-T5 Ecosistema Java

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de las siguientes herramientas permite enviar comandos específicos a la JVM?

  • jshell
  • jmc
  • jps
  • jcmd (correct)

¿Qué herramienta se utiliza para la generación de clases automáticas en clientes de web services de tipo SOAP?

  • jarsigner
  • rmiregistry
  • wsimport (correct)
  • xjc

¿Cuál es la función principal de la variable CLASSPATH en Java?

  • Especificar donde buscar archivos de clase y JAR (correct)
  • Controlar la ejecución de servicios web
  • Definir el tamaño de la pila de la JVM
  • Establecer la configuración de seguridad JVM

¿Qué herramienta proporciona información sobre los procesos Java en ejecución, incluyendo el PID y los argumentos de inicio?

<p>jps (B)</p> 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?

<p>private (A)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones describe correctamente el propósito de rmic?

<p>Compilador RMI para generar clases stub y skeleton (D)</p> 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?

<p>protected (D)</p> Signup and view all the answers

¿Qué herramienta permite la monitorización de la JVM?

<p>jmc (B)</p> Signup and view all the answers

¿Qué modificador de acceso se utiliza si no se especifica 'public', 'private' o 'protected'?

<p>default (C)</p> Signup and view all the answers

¿Cuál es la principal función de Apache HttpComponents?

<p>Manejo de peticiones HTTP a bajo nivel (B)</p> Signup and view all the answers

¿Qué biblioteca se utiliza para la creación de objetos simulados en pruebas unitarias?

<p>mockito-core (A)</p> Signup and view all the answers

¿Qué herramienta se utiliza para firmar y verificar archivos JAR?

<p>jarsigner (C)</p> Signup and view all the answers

¿Cuál es la función del modificador 'transient' en Java?

<p>Indicar que un atributo no debe ser serializado (B)</p> Signup and view all the answers

¿Qué método permite que solo un hilo ejecute un método a la vez en Java?

<p>synchronized (B)</p> Signup and view all the answers

¿Cuál de las siguientes herramientas analiza las dependencias de clases y módulos de Java?

<p>jdeps (B)</p> Signup and view all the answers

¿Qué herramienta permite la gestión de dependencias y la construcción de proyectos de software en Java?

<p>Maven (A)</p> Signup and view all the answers

¿Qué representa un objeto en programación orientada a objetos?

<p>Una instancia de una clase con estado y comportamiento específicos (C)</p> Signup and view all the answers

¿Cuál de las siguientes herramientas no gestiona dependencias?

<p>Ant (C)</p> Signup and view all the answers

¿Cuál de las siguientes funcionalidades ofrece TestNG?

<p>Ejecución de pruebas en paralelo (C)</p> Signup and view all the answers

¿Cuál es el propósito principal de los paquetes en Java?

<p>Para agrupar clases e interfaces relacionadas (D)</p> 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?

<p>private (A)</p> Signup and view all the answers

¿Qué herramienta permite escribir pruebas en lenguaje natural?

<p>Cucumber (B)</p> Signup and view all the answers

¿Qué opción describe mejor la utilidad de Apache Tika?

<p>Detección y extracción de contenido de múltiples formatos (A)</p> Signup and view all the answers

¿Cuál es el propósito principal de Project Lombok en la programación Java?

<p>Reducir la verbosidad del código mediante generación automática de métodos (B)</p> Signup and view all the answers

¿Cuál es la principal función del compilador javac en el ecosistema Java?

<p>Traducir el código escrito en Java a bytecode (C)</p> Signup and view all the answers

¿Qué herramienta se utiliza para desensamblar archivos .class y mostrar la información del bytecode?

<p>javap (B)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre JDK y JRE es correcta?

<p>JDK proporciona herramientas para el desarrollo de aplicaciones (C)</p> Signup and view all the answers

¿Qué herramienta se utiliza para generar documentación HTML a partir de comentarios del código fuente?

<p>javadoc (D)</p> Signup and view all the answers

¿Para qué se utiliza la herramienta java en el ecosistema Java?

<p>Para ejecutar el bytecode generado (D)</p> Signup and view all the answers

¿Cuál es la función del archivo con extensión .jar en el ecosistema Java?

<p>Empaquetar varios archivos.class y recursos relacionados (C)</p> Signup and view all the answers

¿Qué herramienta se puede utilizar para depurar aplicaciones Java?

<p>jdb (B)</p> Signup and view all the answers

Dentro del ecosistema Java, ¿qué es Jakarta EE?

<p>Un conjunto de especificaciones para aplicaciones empresariales (C)</p> Signup and view all the answers

¿Cuál es la función principal de las anotaciones en Java?

<p>Agregar metadata para proporcionar información adicional. (A)</p> Signup and view all the answers

¿Qué indica la anotación @Deprecated en Java?

<p>Que un elemento de código ya no debería ser utilizado. (B)</p> Signup and view all the answers

¿Qué concepto permite que una misma operación se comporte de diferentes maneras en distintas clases?

<p>Polimorfismo. (D)</p> Signup and view all the answers

En Java, ¿qué significa la ligadura dinámica?

<p>La determinación en tiempo de ejecución del método a invocar. (B)</p> Signup and view all the answers

¿Qué permite la herencia en programación orientada a objetos?

<p>Reutilizar atributos y métodos de una clase base. (D)</p> Signup and view all the answers

¿Qué función cumple la anotación @Override en Java?

<p>Indicar que un método sobrescribe un método en la clase base. (C)</p> Signup and view all the answers

¿Cuál es el propósito principal de Maven en el desarrollo de software?

<p>Automatizar el proceso de compilación y la gestión de dependencias. (D)</p> Signup and view all the answers

En el contexto de Java, ¿qué es un Enum?

<p>Un tipo de dato que permite definir constantes con un dominio de valores fijo. (D)</p> Signup and view all the answers

Flashcards are hidden until you start studying

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.

Quiz Team

Related Documents

B3-T5 Ecosistema Java PDF

More Like This

Java SE Essentials Quiz
5 questions
Java SE and EE Overview
10 questions
Use Quizgecko on...
Browser
Browser