T13 JAVA EE/JAKARTA EE. PERSISTENCIA. SEGURIDAD Flashcards
En las líneas 1 y 2 del código JAVA necesitamos realizar las importaciones para poder trabajar tanto con sockets como con ficheros (clase File), para ello debemos poner:
a) import java.File.*; Import java.sockets.*;
b) import java.net.*; import java.io.*;
c) import java.socket.*; import java.io.*;
d) import java.utiJ. *; import java.io. *;
En las líneas 1 y 2 del código JAVA necesitamos realizar las importaciones para poder trabajar tanto con sockets como con ficheros (clase File), para ello debemos poner:
a) import java.File.*; Import java.sockets.*;
b) import java.net.*; import java.io.*;
c) import java.socket.*; import java.io.*;
d) import java.utiJ. *; import java.io. *;
java.applet: Contiene clases para la creación de applets. Corresponden a aplicaciones que corren en browsers.
java.awt: Clases para gráficas, componentes Graphic User Interface (GUI) y administradores de control de ventanas, además de clases más especializadas como para el procesamiento de imágenes Abstract Windows Toolkit (AWT)
java.io: Contiene clases para manejar la entrada/salida. Tales como ficheros y streams.
java.lang: Contiene clases variadas pero imprescindibles para el lenguaje, como Object, Thread, Math…
El paquete java.lang es importado por defecto en el ficheros de código Java.
java.net: Contiene clases para soportar aplicaciones que acceden a redes. Tales como datagramas y sockets.
java.util: Contiene clases que permiten el acceso a recursos del sistema, etc. Clases adicionales, tales como estructura de datos avacadas y compresión de datos.
java.security: Seguridad, criptografia.
javax.swing: Contiene clases para crear interfaces de usuario mejorando la AWT.
En las líneas 8 y 9, tras crear el objeto File con el nombre del directorio pasado como parámetro, debemos comprobar que realmente existe este directorio en el sistema, la opción válida para ello es:
a) File dir= new File(args[0]); if (!dir.exists()) { }
b) File dir= new File(args[0]); if (!File.canRead(dir)) { }
c) File dir = new File(); dir.file_name=args[0]; if (!dir.isDirectory()) { }
d) File dir = new File(); dir.name = args[0]; If (!dir.directory{)) { }
En las líneas 8 y 9, tras crear el objeto File con el nombre del directorio pasado como parámetro, debemos comprobar que realmente existe este directorio en el sistema, la opción válida para ello es:
a) File dir= new File(args[0]); if (!dir.exists()) { }
b) File dir= new File(args[0]); if (!File.canRead(dir)) { }
c) File dir = new File(); dir.file_name=args[0]; if (!dir.isDirectory()) { }
d) File dir = new File(); dir.name = args[0]; If (!dir.directory{)) { }
- *En la línea 12, el servidor se mantiene esperando de forma continua la llegada de conexiones clientes, llamando al constructor de la clase Conecta cuando recibe una (pasando como parámetros directorio y socket de la conexión).**
- *¿Qué código de entre los siguientes es válido?**
a) while (1) {conn=ServerSocket.accept(); Conecta(dir,conn);}
b) while (true) {conn=ServerSocket.accept(); new Conecta(dir,conn);}
c) while (true) {conn=listener.accept(); new Conecta(dir,conn);}ç
d) conn = Iistener.accept(); if (conn){new Conecta(dir,conn);}
- *En la línea 12, el servidor se mantiene esperando de forma continua la llegada de conexiones clientes, llamando al constructor de la clase Conecta cuando recibe una (pasando como parámetros directorio y socket de la conexión).**
- *¿Qué código de entre los siguientes es válido?**
a) while (1) {conn=ServerSocket.accept(); Conecta(dir,conn);}
b) while (true) {conn=ServerSocket.accept(); new Conecta(dir,conn);}
c) while (true) {conn=listener.accept(); new Conecta(dir,conn);}
d) conn = Iistener.accept(); if (conn){new Conecta(dir,conn);}
La clase estática “Conecta” debe crear un Thread cada vez que haya una conexión, para ello su declaración correcta en la linea 15 sería:
a) static class Conecta extends Thread
b) static class Conecta extends Runnable
c) static class Conecta implements Thread
d) static class Conecta implements Threading
La clase estática “Conecta” debe crear un Thread cada vez que haya una conexión, para ello su declaración correcta en la linea 15 sería:
a) static class Conecta extends Thread
b) static class Conecta extends Runnable
c) static class Conecta implements Thread
d) static class Conecta implements Threading
Java.lang: Es un paquete que se importa por defecto.
- Interface Runnable: Tiene que ver con hilos de ejecución / Interface Iterable: Interface que sirve para definir que de una determinada clase podamos iterar sus objetos: Objetos iterables: Listas, pilas, colas, arboles (estructura de datos). (Interfaces)
- Math: Clase con funciones de matemáticas.
- Object / Class
- String / Integer …Los tipos primitivos tienen unas clases que sirven para envolverles a los tipos básicos. Y nos permite tener otros métodos especiales sobre esos tipos de datos que con ejemplo no tenemos con int
- String buffer / STRINGBUILDER: Son cadenas variables
- Thread
- Override: Anotación
- System: Tiene atributos y métodos de utilidad como por ejemplo para imprimir por consola.
Extends: extends se usa para indicar que la clase que se está definiendo se deriva de la clase base usando la herencia. Básicamente, la palabra clave extends se usa para extender la funcionalidad de la clase principal a la subclase.
Implements: en Java, la palabra clave implements se usa para implementar una interfaz . Una interfaz es un tipo especial de clase que implementa una abstracción completa y solo contiene métodos abstractos. Para acceder a los métodos de la interfaz, la interfaz debe ser “implementada” por otra clase con la palabra clave implements y los métodos deben implementarse en la clase que hereda las propiedades de la interfaz.
En la linea 13 se maneja la excepción capturada, 51 el objeto Exception es “e”, el método utilizado para imprimir el registro de la pila donde se ha iniciado la excepción es:
a) e.printstack();
b) e.printStackTrace();
c) e.getMessage();
d) e.printExceptionLog();
En la linea 13 se maneja la excepción capturada, 51 el objeto Exception es “e”, el método utilizado para imprimir el registro de la pila donde se ha iniciado la excepción es:
a) e.printstack();
b) e.printStackTrace();
c) e.getMessage();
d) e.printExceptionLog();
En la clase Conecta se declaran las variables cadena1 y cadena2 (líneas 18 y 19). ¿En cuál de las siguientes opciones darla un error de compilación la instrucción “If”?
a) If (‘‘TAILlbre’‘.compareTo(cadena1)==true)
b) If (cadena1.equals(cadena2))
c) If (cadena1.compareTo(cadena2)==0)
d) if (‘‘TAILibre’‘.compareTo(cadena1)==0)
En la clase Conecta se declaran las variables cadena1 y cadena2 (líneas 18 y 19). ¿En cuál de las siguientes opciones daría un error de compilación la instrucción “If”?
a) If (‘‘TAILlbre’‘.compareTo(cadena1)==true)
b) If (cadena1.equals(cadena2))
c) If (cadena1.compareTo(cadena2)==0)
d) if (‘‘TAILibre’‘.compareTo(cadena1)==0)
El compareTo(): método compara dos cadenas lexicográficamente. La comparación se basa en el valor Unicode de cada carácter de las cadenas.
El método devuelve 0 si la cadena es igual a la otra cadena. Se devuelve un valor menor que 0 si la cadena es menor que la otra cadena (menos caracteres) y un valor mayor que 0 si la cadena es mayor que la otra cadena (más caracteres).
compareToIgnoreCase() para comparar dos cadenas lexicográficamente, ignorando las diferencias entre mayúsculas y minúsculas.
método equals() para comparar dos cadenas sin tener en cuenta los valores Unicode.
En la línea 4 del anterior código, se quiere declarar el atributo tipo entero “PUERTO” de forma que su valor sea constante 4444 y único para todas las instancias de la clase, la opción válida seria:
a) protected int PUERTO = 4444;
b) final int PUERTO = 4444;
c) int PUERTO = 4444;
d) static final int PUERTO = 4444;
En la línea 4 del anterior código, se quiere declarar el atributo tipo entero “PUERTO” de forma que su valor sea constante 4444 y único para todas las instancias de la clase, la opción válida seria:
a) protected int PUERTO = 4444;
b) final int PUERTO = 4444;
c) int PUERTO = 4444;
d) static final int PUERTO = 4444;
Final: Indica que una variable, método o clase no se va a modificar, lo cuál puede ser útil para añadir más semántica, por cuestiones de rendimiento, y para detectar errores.
- Si una variable se marca como final, no se podrá asignar un nuevo valor a la variable.
- Si una clase se marca como final, no se podrá extender la clase.
- Si es un método el que se declara como final, no se podrá sobreescribir.
Static: el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vacío para la clase que contiene el método, o indicar de alguna forma a la máquina virtual cómo instanciar la clase.
- *18. String caden al= “TAl Libre”;**
- *19. String cadena2= “TAl Libre”;**
- *20. Conecta(File dir, Socket conn) {**
- *21. directorio = dir;**
- *22. connection = conn;**
- *23. start() }**
- *24. / /**Método con el código a ejecutar en cada Thread’” }}**
Para poner en marcha el nuevo Thread se llama al método start() en la línea 23, éste es el encargado de llamar al método que contiene el código a ser ejecutado asíncronamente en otro Thread y que se define en la línea 24, el cuál es:
a) public void run() { }
b) public void init() { }
c) public void executeO { }
d) public void thread() { }
TAI-2016
- *18. String caden al= “TAl Libre”;**
- *19. String cadena2= “TAl Libre”;**
- *20. Conecta(File dir, Socket conn) {**
- *21. directorio = dir;**
- *22. connection = conn;**
- *23. start(); }**
- *24. / /**Método con el código a ejecutar en cada Thread’” }}**
Para poner en marcha el nuevo Thread se llama al método start() en la línea 23, éste es el encargado de llamar al método que contiene el código a ser ejecutado asíncronamente en otro Thread y que se define en la línea 24, el cuál es:
a) public void run() { }
b) public void init() { }
c) public void execute() { }
d) public void thread() { }
En lo que respecta a Java:
a) Soporta herencia simple y polimorfismo.
b) Soporta herencia múltiple y polimorfismo.
c) Soporta herencia múltiple y no soporta polimorfismo.
d) Soporta herencia simple y no soporta polimorfismo.
En lo que respecta a Java:
a) Soporta herencia simple y polimorfismo.
b) Soporta herencia múltiple y polimorfismo.
c) Soporta herencia múltiple y no soporta polimorfismo.
d) Soporta herencia simple y no soporta polimorfismo.
Interface: Es unas herramienta que nos sirve para obligar a otros con una determinada especificación funcional.
- Una clase puede implementar uno o varios interfaces.
- Una clase no puede heredar de más de una clase, no existe la herencia múltiple.
- La herencia y la implementación se pueden dar a la vez
En programación orientada a objetos, polimorfismo es la capacidad que tienen los objetos de una clase en ofrecer respuesta distinta e independiente en función de los parámetros (diferentes implementaciones) utilizados durante su invocación.
class Animal {
public void makeSound() {
System.out.println(“Grr…”);
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println(“Meow”);
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println(“Woof”);
}
}
La API de JAVA JAX-RS es:
a) Java API for RESTful Web Services, es una API que proporciona soporte a la creación de servicios web REST.
b) Java API for XML Web Services, es una API para la creación de servicios web.
c) Java API for XML Registries, es una API para acceder a diferentes tipos de registros de metadatos basados en XML.
d) Java API for XML based RPC, es una API que permite invocar un servicio web basado en Java cuya descripción está basada en WSDL.
La API de JAVA JAX-RS es:
a) Java API for RESTful Web Services, es una API que proporciona soporte a la creación de servicios web REST.
b) Java API for XML Web Services, es una API para la creación de servicios web.
c) Java API for XML Registries, es una API para acceder a diferentes tipos de registros de metadatos basados en XML.
d) Java API for XML based RPC, es una API que permite invocar un servicio web basado en Java cuya descripción está basada en WSDL.
JAX-RS: Java API for RESTful Web Services es una API del lenguaje de programación Java que proporciona soporte en la creación de servicios web de acuerdo con el estilo arquitectónico Representational State Transfer (REST).
JAX-RS es una colección de interfaces y anotaciones Java™ que simplifica el desarrollo de aplicaciones REST del lado del servidor. Mediante el uso de la tecnología JAX-RS, las aplicaciones REST (Representational State Transfer).
Indique cuál de las siguientes afirmaciones es FALSA en relación con la Instrucción switch en JAVA:
a) switch nos permite repetir la ejecución de una serie de instrucciones mientras que se cumpla la expresión condicional o aparezca una sentencia break.
b) switch es equivalente a programar usando sentencias if anidadas.
c) La sentencia break asociada al último case (o default) no es necesaria.
d) La expresión asociada a la instrucción switch debe generar valores tipo char, byte, short o int.
Indique cuál de las siguientes afirmaciones es FALSA en relación con la Instrucción switch en JAVA:
a) switch nos permite repetir la ejecución de una serie de instrucciones mientras que se cumpla la expresión condicional o aparezca una sentencia break.
b) switch es equivalente a programar usando sentencias if anidadas.
c) La sentencia break asociada al último case (o default) no es necesaria.
d) La expresión asociada a la instrucción switch debe generar valores tipo char, byte, short o int
switch (expression) {
case value1:
// secuencia de sentencias.
break;;
case value2:
// secuencia de sentencias.
break;;..
case valueN :
// secuencia de sentencias.
break;;
default:
// Default secuencia de sentencias.
} }
En el contexto del lenguaje lava, supongamos que tenemos una matriz SaldoMensual declarada de la siguiente forma: float[] SaldoMensual = new float[12]. Elija de entre las siguientes, la instrucción repetitiva que nos permite recorrer todos sus elementos:
a) for (int i=0;i< 12;1++) System.out.println(SaldoMensual[i]);
b) for (int i=1;i<12;1++) System.out.println(SaldoMensual[i]);
c) for (int i=1;i<=12;i++) System.out.printin(SaldoMensual[i]);
d) for (int i=0;i=12;1++) System.out.println(SaldoMensual[i]);
En el contexto del lenguaje lava, supongamos que tenemos una matriz SaldoMensual declarada de la siguiente forma: float[] SaldoMensual = new float[12]. Elija de entre las siguientes, la instrucción repetitiva que nos permite recorrer todos sus elementos:
a) for (int i=0;i< 12;1++) System.out.println(SaldoMensual[i]);
b) for (int i=1;i<12;1++) System.out.println(SaldoMensual[i]);
c) for (int i=1;i<=12;i++) System.out.printin(SaldoMensual[i]);
d) for (int i=0;i=12;1++) System.out.println(SaldoMensual[i]);
Son palabras reservadas del lenguaje de programación JAVA:
a) assert, boolean, explicit, public, this.
b) abstract, float, include, private, goto.
c) assert, boolean, return, public, this.
d) abstract, float, out, private, goto.
Son palabras reservadas del lenguaje de programación JAVA:
a) assert, boolean, explicit, public, this.
b) abstract, float, include, private, goto.
c) assert, boolean, return, public, this.
d) abstract, float, out, private, goto.
- *Indique qué se imprime por pantalla con el siguiente código java: for(lnt i = 10, j = 1; i> 0; i=i-j) {**
- *System.out.print(i); j++; }**
a) 10873
b) 10963
c) 10851
d) 10751
- *Indique qué se imprime por pantalla con el siguiente código java: for(lnt i = 10, j = 1; i> 0; i=i-j) {**
- *System.out.print(i); j++; }**
a) 10873
b) 10963
c) 10851
d) 10751
for (int i = 0; // índice de control
i < 100; // condición booleana
i++) // modificación del índice tras cada bucle
……..
{
En lo referente a la programación en java, ¿cuál de las siguientes afirmaciones es cierta?
a) Swift es la nueva máquina virtual Java que se ejecuta en Android 7.0.
b) JUnit nos permite crear test de clases Java.
c) Swing es un framework de persistencia de bases de datos.
d) Drupal requiere para su ejecución una máquina virtual Java 1.8
En lo referente a la programación en java, ¿cuál de las siguientes afirmaciones es cierta?
a) Swift es la nueva máquina virtual Java que se ejecuta en Android 7.0.
b) JUnit nos permite crear test de clases Java.
c) Swing es un framework de persistencia de bases de datos.
d) Drupal requiere para su ejecución una máquina virtual Java 1.8
Pruebas unitarias y de carga:
- JUnit+Mockito
- JMeter
API de JAVA proporciona un sistema de autenticación y control de acceso de usuarios y grupos para una aplicación:
a) JAF
b) JAAS
c) JACC
d) JNDI
- *API de JAVA proporciona un sistema de autenticación y control de acceso de usuarios y grupos para una**
- *aplicación:**
a) JAF
b) JAAS
c) JACC
d) JNDI
Java Authentication and Authorization Service, o JAAS, es una Interfaz de Programación de Aplicaciones que permite a las aplicaciones Java acceder a servicios de control de autenticación y acceso.
JAF - JavaBeans Activation Framework. Es una extensión estándar que pueden usar los Beans que funcionan con muchos tipos de datos externos, como medios recuperados de archivos y transmisiones. Es esencialmente un mecanismo generalizado de manejo de contenido/protocolo para Java Beans. El JAF es un conjunto extensible de clases que envuelven fuentes de datos sin procesar arbitrarias para proporcionar acceso a sus datos como flujos u objetos, identificar el tipo MIME de los datos y enumerar un conjunto registrado de “comandos” para operar en los datos.
JACC (Java Authorization Contract for Containers). La especificación JACC (Java Authorization Contract for Containers) define un contrato entre un servidor de aplicaciones Java EE y un proveedor de políticas de autorización. Todos los contenedores Java EE admiten este contrato.
JNDI - La Interfaz de Nombrado y Directorio Java (Java Naming and Directory Interface) es una Interfaz de Programación de Aplicaciones (API) de Java para servicios de directorio. Permite a los clientes descubrir y buscar objetos y datos a través de un nombre. Como todas las APIs de Java que hacen de interfaz con sistemas host, es independiente de la implementación subyacente. Adicionalmente, especifica una interfaz de proveedor de servicio (SPI) que permite que las implementaciones del servicio de directorio sean integradas en el framework. Las implementaciones pueden hacer uso de un servidor, un fichero, o una base de datos; la elección depende del desarrollador.
Bouncy Castle es una librería Java que proporciona una API para:
a) Aritmética.
b) Tratamiento de XML.
c) Criptografía.
d) Generación de informes.
Bouncy Castle es una librería Java que proporciona una API para:
a) Aritmética.
b) Tratamiento de XML.
c) Criptografía.
d) Generación de informes.
LISTADO DE LIBRERIAS / FRAMEWORKS DE JAVA
DOCUMENTALES.
- PDFBox. Manejo de PDF
- iText. Manejo de PDF
- Tika. Deteccion y extraccion de contenido de multitud de formatos
- POI. Manipulacion de documentos de Office
- BeanIO. Ficheros con formato fijo basado en registros
CRIPTOGAFIA:
- BouncyCastle
IDE
- Netbeans
- Eclipse
- IntelliJ
xml
- Xerces
- Xalan
- Woodstox
En Java EE (ahora Jakarta EE) los ejecutables de un proyecto se pueden empaquetar como archivos ¿Cuál de las siguientes opciones NO es un formato válido para este propósito?
a) Enterprise applicatlon Archive (EAR).
b) Resource Adapter Archive (RAR).
c) Binary Application Archive (BAR).
d) Web Application Archive (WAR).
En Java EE (ahora Jakarta EE) los ejecutables de un proyecto se pueden empaquetar como archivos ¿Cuál de las siguientes opciones NO es un formato válido para este propósito?
a) Enterprise applicatlon Archive (EAR).
b) Resource Adapter Archive (RAR).
c) Binary Application Archive (BAR).
d) Web Application Archive (WAR).
WAR (Web Application Archive - Archivo de aplicación web) este fichero es un estándar. En un primer nivel (organizado en carpetas) tenemos todos los ficheros con extensión html, css, imágenes, js, JSP todo lo estático esta en este nivel y lo dinámico esta dentro del directorio WEB-INF, dentro de WEB-INF esta el directorio clases, donde están todas nuestras clases compiladas, en el directorio lib se meten los .jar,
EAR (Enterprise Archive): un EAR es capaz de albergar varios ficheros WAR cada uno de los cuales contiene una aplicación web completa.
Aparte de albergar varias aplicaciones web también tiene la capacidad de contener EJBs que son empaquetados en archivos JAR para su utilización en las distintas aplicaciones web.
Los EAR disponen del fichero application.xml (directorio META-INF) que define la estructura de módulos incluidos en este tipo de empaquetamiento.
RAR (Resource Adapter Archive): un archivo RAR contiene un adaptador de recursos. Definido por las especificaciones de la arquitectura del conector J2EE, un adaptador de recursos es un componente portátil que permite que los beans empresariales, los componentes web y los clientes de aplicaciones accedan a recursos y sistemas empresariales externos. Un adaptador de recursos suele denominarse conector. Un nombre de archivo RAR tiene la extensión .rar
Un applet es:
a) un programa desarrollado en Java cuyo objetivo es proporcionar funcionalidad avanzada a una página web y que se ejecuta habitualmente en el navegador web.
b) Una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor.
c) un Java Plug-in que actúa de puente entre los navegadores instalados en el sistema y los distintos entornos de ejecución de java (JRE) que se hayan instalado en la máquina cliente.
d) El componente de los programas encargados del acceso a las bases de datos.
Un applet es:
a) un programa desarrollado en Java cuyo objetivo es proporcionar funcionalidad avanzada a una página web y que se ejecuta habitualmente en el navegador web.
b) Una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor.
c) un Java Plug-in que actúa de puente entre los navegadores instalados en el sistema y los distintos entornos de ejecución de java (JRE) que se hayan instalado en la máquina cliente.
d) El componente de los programas encargados del acceso a las bases de datos.
La API de Java para la implementación de servicios web RestFul es:
a) JAX-RS
b) JTA
c) JPA
d) JSTL
TAI-2018-PI
La API de Java para la implementación de servicios web RestFul es:
a) JAX-RS
b) JTA
c) JPA
d) JSTL
JAX-RS: Java API for RESTful Web Services es una API del lenguaje de programación Java que proporciona soporte en la creación de servicios web de acuerdo con el estilo arquitectónico Representational State Transfer (REST).1 JAX-RS usa anotaciones, introducidas en Java SE 5, para simplificar el desarrollo y despliegue de los clientes y puntos finales de los servicios web.
JTA (del inglés Java Transaction API - API para transacciones en Java) es parte de las APIs de Java EE. JTA establece una serie de Interfaces java entre el manejador de transacciones y las partes involucradas en el sistema de transacciones distribuidas: el servidor de aplicaciones, el manejador de recursos y las aplicaciones transaccionales.
JPA -Java Persistence API, es una API de persistencia. Maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).
Persistencia en este contexto cubre tres áreas:
- La API en sí misma, definida en el paquete javax.persistence
- El lenguaje de consulta Java Persistence Query Language (JPQL).
- Metadatos objeto/relacional.
JSTL (JavaServer Pages Standard Tag Library) es una librería de tags estándar que encapsula, en forma de tags, muchas funcionalidades comunes en aplicaciones JSP, de forma que, en lugar que tener que recurrir a varias librerías de tags de distintos distribuidores, sólo necesitaremos tener presente esta librería.
JSTL permite realizar tareas como iteraciones, estructuras condicionales, tags de manipulación de documentos XML, tags SQL, etc. También introduce un lenguaje de expresiones que simplifica el desarrollo de las páginas, y proporciona un API para simplificar la configuración de los tags JSTL y el desarrollo de tags personalizados que sean conformes a las convenciones de JSTL.
¿Qué es Kotlin?
a) Una aplicación del entorno Linux KDE para edición de textos.
b) Un lenguaje de órdenes y shell de Unix.
c) Un lenguaje de programación compatible con el ecosistema Java.
d) Un sistema gestor de base de datos no relacional.
GSI-2019-LI
¿Qué es Kotlin?
a) Una aplicación del entorno Linux KDE para edición de textos.
b) Un lenguaje de órdenes y shell de Unix.
c) Un lenguaje de programación compatible con el ecosistema Java.
d) Un sistema gestor de base de datos no relacional.
ECOSISTEMA JAVA – HERRAMIENTAS
a) IDE’s (Entornos/Editores de desarrollo).
Ej. Eclipse, IntelliJ, Netbeans, …
b) Automatización del desarrollo.
Ej. Ant (build.xml), Maven (pom.xml), Gradle (build.gradle en Groovy or Kotlin DSL) ,
Ivy (extensión de Ant para gestión de dependencias), Jenkins (integración continua)..
c) JDK’s (OpenJDK, Amazon Corretto, IBM JDK, …)
Kotlin: un lenguaje de programación multiplataforma , tipificado estáticamente y de propósito general con inferencia de tipos . Kotlin está diseñado para interoperar completamente con Java , y la versión JVM de la biblioteca estándar de Kotlin depende de la biblioteca de clases de Java , pero la inferencia de tipo permite su sintaxis para ser más conciso.
En la arquitectura de capas de Java EE/Jakarta EE, un servlet se sitúa en:
a) La capa web.
b) La capa cliente.
c) La capa de negocio.
d) La capa de datos.
GSI-2019-LI
En la arquitectura de capas de Java EE/Jakarta EE, un servlet se sitúa en:
a) La capa web.
b) La capa cliente.
c) La capa de negocio.
d) La capa de datos.
En relación a lo anterior, señale la sentencia correcta. (garbage collector)
a) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método GC.Collect.
b) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada a la función VirtualAlloc de Windows.
c) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método Object.Finalize.
d) En la mayoría de los casos no es necesario llamar a ningún método, dado que el garbage collector se ejecuta continuamente.
GSI-2019-LI
En relación a lo anterior, señale la sentencia correcta. (garbage collector)
a) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método GC.Collect.
b) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada a la función VirtualAlloc de Windows.
c) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método Object.Finalize.
d) En la mayoría de los casos no es necesario llamar a ningún método, dado que el garbage collector se ejecuta continuamente.
RECOLECTOR DE BASURA (GARBAGE COLLECTOR) (GC): No es más que un hilo de baja prioridad. La recolección y liberación de memoria es responsabilidad de un thead llamado garbage collector. El trabajo de GC es identificar los objetos que no son usados (des referenciado) y no requieren memoria y lo elimina de la memoria dinámica (Heap).
- Todas las clases de java heredan de object, si heredan de object tendrán a su disposición todos los métodos de Object.
- Existe un método llamado gc() dentro de las clases java.Lang.Sytem y java.lang.Runtime cuya iniciales significan “Garbage Collection” y puede ser llamado por el programador dentro de un programa Java.
- Pero el hecho de invocar este método explícitamente no implica que se realice el proceso de “Garbage Collection” inmediatamente, lo único que logra es acelerar los mecanismos para iniciar la recolección (depende de la JVM).
- finalize(). Este método es miembro de la clase Object. El objetivo de este método es liberar los recursos del sistema, como archivos, conexiones abiertas antes de empezar la recolección. Es llamado por el garbage collector.
- Para utilizar este método, hay que sobrecargarlo, proporcionando el código que contenga las acciones que se desee ejecutar antes de liberar la memoria consumida por el objeto.
Jakarta EE Working Group depende de:
a) Eclipse Foundation.
b) Free Software Foundation.
c) Oracle Corporation.
d) The Apache Software Foundation.
GSI-2019-LI
Jakarta EE Working Group depende de:
a) Eclipse Foundation.
b) Free Software Foundation.
c) Oracle Corporation.
d) The Apache Software Foundation.
HISTORIA
El desarrollo de JEE y, por extensión, de las especificaciones que abarca, era controlado por Oracle y realizado según los procedimientos establecidos por el programa Java Community Process (JCP) a partir de lo que se conoce como Java Specification Request (JSR). Una JSR es una solicitud formal que plantea una especificación nueva o la modificación de alguna ya existente.os por el programa Java. Por ejemplo, JPA 2.2 se corresponde con la JSR-338
A finales de 2017, Oracle, como parte de sus acciones para liberar Java, cedió todas las especificaciones a la Fundación Eclipse. JEE pasó a formar parte de la iniciativa Eclipse Enterprise for Java (EE4J), donde
continúa su desarrollo con un nuevo flujo de trabajo ágil y abierto denominado Jakarta EE Specification Process (JESP).
Además los paquetes de Jakarta EE , que en Jakarta EE 8.0 se mantuvieron iguales, han pasado a ser jakarta.* en Jakarta EE 9.0. Desapareciendo los javax.* y los esquemas de los XML cambian de nombre.
Se pueden consultar en https://jakarta.ee/xml/ns/jakartaee/
Indique una característica falsa de Java:
a) Es interpretado y portable a distintas plataformas
b) Soporta programación multihilo (multithreading)
c) Es un entorno seguro porque el sistema runtime incorpora protección contra virus y alteraciones de código
d) Todas las anteriores son características de Java
Indique una característica falsa de Java:
a) Es interpretado y portable a distintas plataformas
b) Soporta programación multihilo (multithreading)
c) Es un entorno seguro porque el sistema runtime incorpora protección contra virus y alteraciones de código
d) Todas las anteriores son características de Java
En el lenguaje Java a las variables de clase (class variables) se les denomina también:
a) Private o privadas
b) Static o estáticas
c) Final o final
d) System o sistema
En el lenguaje Java a las variables de clase (class variables) se les denomina también:
a) Private o privadas
b) Static o estáticas
c) Final o final
d) System o sistema
Static: el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vacío para la clase que contiene el método, o indicar de alguna forma a la máquina virtual cómo instanciar la clase.