B3-T5 Ecosistema Java
40 Questions
0 Views

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</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</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</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</p> Signup and view all the answers

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

    <p>jmc</p> Signup and view all the answers

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

    <p>default</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</p> Signup and view all the answers

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

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

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

    <p>jarsigner</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</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</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</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</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</p> Signup and view all the answers

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

    <p>Ant</p> Signup and view all the answers

    ¿Cuál de las siguientes funcionalidades ofrece TestNG?

    <p>Ejecución de pruebas en paralelo</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</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</p> Signup and view all the answers

    ¿Qué herramienta permite escribir pruebas en lenguaje natural?

    <p>Cucumber</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</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</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</p> Signup and view all the answers

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

    <p>javap</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</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</p> Signup and view all the answers

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

    <p>Para ejecutar el bytecode generado</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</p> Signup and view all the answers

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

    <p>jdb</p> Signup and view all the answers

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

    <p>Un conjunto de especificaciones para aplicaciones empresariales</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.</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.</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.</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.</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.</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.</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.</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.</p> 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.

    Quiz Team

    Related Documents

    B3-T5 Ecosistema Java PDF

    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.

    More Like This

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