T13 JAVA EE/JAKARTA EE. PERSISTENCIA. SEGURIDAD Flashcards

1
Q

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. *;

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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{)) { }

A

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{)) { }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  • *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);}

A
  • *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);}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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();

A

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();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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;

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  • *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

A
  • *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() { }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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.

A

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”);

}

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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.

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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.

A

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.

} }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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]);

A

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]);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  • *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

A
  • *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

……..
{

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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

A
  • *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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

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.

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

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).

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿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

A

¿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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

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

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Jakarta EE Working Group depende de:

a) Eclipse Foundation.
b) Free Software Foundation.
c) Oracle Corporation.
d) The Apache Software Foundation.

GSI-2019-LI

A

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/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

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

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

El API de java utilizado para mapear XML’s desde y hacia clases JAVA es:

a) JAXP.
b) JAXS.

c) JAXB.

d) WSDL.

GSI-2011-PI

A

El API de java utilizado para mapear XML’s desde y hacia clases JAVA es:

a) JAXP.
b) JAXS.

c) JAXB.

d) WSDL.

JAXP (API de Java para el procesamiento de XML): proporciona la capacidad de validación y análisis de documentos XML. Hay tres interfaces de análisis básicas en JAXP: DOM, SAX y Straming API para XML STAX.

JAXB (Java Architecture for XML Binding): Las clases de Java se asignan a representaciones XML. Las dos características principales de JAXB son la capacidad de clasificar objetos Java en XML y desclasificar XML de nuevo en objetos Java.

JAXM (Java API for XML Messaging): Permite que las aplicaciones de software distribuidas se comuniquen mediante XML (y SOAP). JAXM admite mensajería asíncrona y síncrona.

WSDL, las siglas de Web Services Description Language, es un formato del Extensible Markup Language (XML) que se utiliza para describir servicios web (WS).

WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.

28
Q

¿Cuáles son los contenedores de la tecnología Java EE?

a) EJB Container y Web Container
b) EJB Container, Web Container y Application Client Container
c) b) y Applet Container
d) Ninguna de las anteriores

A

¿Cuáles son los contenedores de la tecnología Java EE?

a) EJB Container y Web Container
b) EJB Container, Web Container y Application Client Container

c) b) y Applet Container

d) Ninguna de las anteriores

Contenedores de la tecnología Java EE

  • EJB Container
  • Web Container
  • Application Client Container
  • Applet Container
29
Q

¿Qué significa CDI en el contexto de Java EE 7?

a) Contexts and Dependency Injection.
b) Common Display Interface.
c) Context-Dependent Interface.
d) Case-Driven Implementation.

GSI-2013

A

¿Qué significa CDI en el contexto de Java EE 7?

a) Contexts and Dependency Injection.

b) Common Display Interface.
c) Context-Dependent Interface.
d) Case-Driven Implementation.

30
Q

El API de Java EE para la implementación de servicios web SOAP es:

a) JWS-XML
b) JAX-WS
c) JSR-WS
d) JAVA-WS

A1 ANALISTAS CONGRESO 2021

A

El API de Java EE para la implementación de servicios web SOAP es:

a) JWS-XML
b) JAX-WS
c) JSR-WS
d) JAVA-WS

WEB SERVICES: Para hacer servidos webs

  • SOAP (api jax-ws) →Muy basados en XML
  • REST (api jax-rs)
31
Q

En el lenguaje de programación JAVA, ¿qué palabra clave se aplica a un atributo para que sea “no serializable”?

a) Transient.
b) Final.
c) Static.
d) Volatile.

A1-2018-EXTRAORDINARIO

A

En el lenguaje de programación JAVA, ¿qué palabra clave se aplica a un atributo para que sea “no serializable”?

a) Transient.

b) Final.
c) Static.
d) Volatile.

CLASES (atributos, métodos y relaciones).

Modificadores principales: final, static, abstract, protected, private, public, native, volatile, transient.

  • Final: definir una constante, o si estamos hablando de herencia, para que nadie pueda sobreescribir o dar un comportamiento a esa clase.
  • Static: Aquello relacionado con la clase.
  • Protected: Para que solo los hijos vean ese dato, pero los de fuera del esquema de clase no lo van a ver, va a ser private para ellos.
  • Native: Sirve para decir que este método no lo voy a codificar en java, lo voy hacer en C++ y esta en esa dll externa, vale para salirse del concepto de máquina virtual.
  • Volatile: No se hace copia de los datos, se va al origen. (Para hilos de ejecución).

Con volatile de decimos que vaya a memoria principal a por el dato dato y no se escribe en cache.

  • Transient: Cuando serializamos un objeto en Base de Datos o en disco hay atributos que no quiero guardarme, por ejemplo, porque son calculados, en ese caso le podríamos transient.
32
Q

Señalar la afirmación FALSA sobre los APPLETS de Java:

a) Programa Java que proporciona funcionalidad avanzada a una página web
b) Sólo utiliza recursos del cliente, no interviene nada el servidor
c) En muchas ocasiones no puede leer o escribir ficheros en la máquina local en la que se ejecute
d) Todas las afirmaciones anteriores son verdaderas

A

Señalar la afirmación FALSA sobre los APPLETS de Java:

a) Programa Java que proporciona funcionalidad avanzada a una página web

b) Sólo utiliza recursos del cliente, no interviene nada el servidor

c) En muchas ocasiones no puede leer o escribir ficheros en la máquina local en la que se ejecute
d) Todas las afirmaciones anteriores son verdaderas

Un applet Java es un applet escrito en el lenguaje de programación Java. Los applets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.

Entre sus características podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web.

En Java, un applet es un programa que puede incrustarse en un documento HTML, es decir en una página web. Cuando un navegador carga una página web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador.

Los applets de Java suelen tener las siguientes ventajas:

  • Son multiplataforma (En S.O para el cual exista una Java Virtual Machine).
  • El mismo applet puede trabajar en “todas” las versiones de Java, y no solo en la última versión del plugin.
  • Es compatible con la mayoría de los navegadores web.
  • Puede ser almacenado en la memoria caché de la mayoría de los navegadores web, de modo que se cargará rápidamente cuando se vuelva a cargar la página web, aunque puede quedar atascado en la caché, causando problemas cuando se publican nuevas versiones.
  • Puede tener acceso completo a la máquina en la que se está ejecutando, si el usuario lo permite.
  • Puede ejecutarse a velocidades comparables a las de otros lenguajes compilados, como C++ (dependiendo de la versión de la JVM).
  • Puede trasladar el trabajo del servidor al cliente, haciendo una solución web más escalable tomando en cuenta el número de usuarios o clientes.
33
Q

Que característica de Java no es completamente cierta:

a) Es independiente del SO
b) Es independiente de la plataforma
c) Es independiente del HW
d) Write once run everywhere

A

Que característica de Java no es completamente cierta:

a) Es independiente del SO
b) Es independiente de la plataforma
c) Es independiente del HW
d) Write once run everywhere - El código puede requerir alguna personalización para entorno en que se ejecute.

34
Q

Indique de los siguientes cual no es un entorno de desarrollo Java:

a) Eclipse.
b) Zend Studio.
c) BlueJ.
d) NetBeans.

A

Indique de los siguientes cual no es un entorno de desarrollo Java:

a) Eclipse.

b) Zend Studio.

c) BlueJ.
d) NetBeans.

IDE’s (Entornos/Editores de desarrollo)

  • Eclipse
  • IntelliJ
  • Netbeans

BlueJ: es un entorno integrado de desarrollo (de sus siglas en inglés IDE - Integrated Development Environment) para el lenguaje de programación Java, desarrollado principalmente con propósitos educacionales, pero también es adecuado para el desarrollo de software a pequeña escala.

35
Q

La tecnología DCOM toma las siglas de:

a) Distributed Communication Model
b) Development of Concurrent Multisystems
c) Dynamic Component-Oriented Measure
d) Distributed Component Object Model

A

La tecnología DCOM toma las siglas de:

a) Distributed Communication Model
b) Development of Concurrent Multisystems
c) Dynamic Component-Oriented Measure

d) Distributed Component Object Model

36
Q

Cuál de los siguientes métodos son métodos de la clase Thread:

a) sleep(long msec);
b) start();
c) wait();
d) A y B son correctas

A

Cuál de los siguientes métodos son métodos de la clase Thread:

a) sleep(long msec);
b) start();
c) wait();

d) A y B son correctas

Palabras importantes en relación al tema de hilos:

    • Thread y Runnable (se utilizan para implementar la logica de los hilos de tu app)
    • Wait() notify() → S_on métodos de la clase Object_ que nos sirven para bloquear y reanudar la ejecución de hilos (por ej. cuando acceden a recursos compartidos). Alguna veces no se puede acceder concurrentemente a un objeto, con lo cual hay que ir bloqueando y reanudando hilos para que entren/accedan de uno en uno.
    • synchronized (se utiliza para definir métodos o bloques de código en los cuales solo puede entrar un hilo cada vez). Con esto baja el nivel de concurrencia pero se gana seguridad.
    • Métodos de la clase Thread:
  • hilo.start() - lanza el hilo hacia el planificador. Indica al intérprete de Java que cree un contexto del hilo del sistema y comience a ejecutarlo
  • Thread.currentThread() nos devuelve el hilo actual. El que está ejecuanto esa instrucción en ese momento.
  • sleep(long ms): Pone el hilo en pausa el tiempo en milisegundos que le introduzcamos
  • run() - Este método es llamado por start() después de que el hilo del sistema se haya inicializado
  • stop() - Provoca que el hilo se detenga de manera inmediata
  • suspend() - Se diferencia de stop() ya que provoca que se detenga la ejecución de un proceso sin destruir el estado de éste
  • resume() - Reanuda un hilo suspendido
37
Q

Para simular la herencia múltiple de otros lenguajes de programación, Java emplea:

a) Clases abstractas.
b) Interfaces.
c) Sobreescritura de métodos.
d) Conversiones implícitas.

TÉCNICO SUPERIOR DE SISTEMAS Y TECNOLOGÍAS DE LA INFORMACIÓN AYTO VALLADOLID 2021

A

Para simular la herencia múltiple de otros lenguajes de programación, Java emplea:

a) Clases abstractas.

b) Interfaces.

c) Sobreescritura de métodos.
d) Conversiones implícitas.

Java no soporta la herencia múltiple ya que una clase concreta solo puede tener una clase padre. Pero a cambio dispone de la construcción denominada “Interface” que permite una forma de simulación o implementación limitada de la herencia múltiple.

a) palabra clave interface en lugar de class o abstract class.
b) Todo método es abstracto y público sin necesidad de declararlo, es decir, no hace falta poner abstract public porque por defecto todos los métodos son abstract public. Por lo tanto un interface en Java no implementa ninguno de los métodos que declara: ninguno de sus métodos tiene cuerpo.
c) Las interfaces no tienen ningún constructor.
d) Un interfaz solo admite campos de tipo “public static final”, es decir, campos de clase, públicos y constantes. No hace falta incluir las palabras public static final porque todos los campos serán tratados como si llevaran estas palabras. Recordemos que static equivalía a “de clase” y final a “constante”. Las interfaces pueden ser un lugar interesante para declarar constantes que van a ser usadas por diferentes clases en nuestros programas.
e) Una clase puede derivar de un interface de la misma manera en que puede derivar de otra clase. No obstante, se dice que el interface se implementa (implements), no se extiende (extends) por sus subclases. Por tanto para declarar la herencia de un interface se usa la palabra clave implements en lugar de extends.

interface {

// declare constant fields

// declare methods that abstract

// by default.

}

Ejemplo:

interface printable{

void print();

}

class A6 implements printable{

public void print(){

System.out.println(“Hello”);

}

public static void main(String args[]){

A6 obj = new A6();

obj.print();

}

}

38
Q

¿Cuál de los siguientes productos java dispone de un motor de workflow?

a) Hibernate.
b) Easy BPM.
c) Spring.
d) jBPM.

GSI-PI-2013

A

¿Cuál de los siguientes productos java dispone de un motor de workflow?

a) Hibernate.
b) Easy BPM.
c) Spring.

d) jBPM.

jBPM es un motor de flujo de trabajo de código abierto escrito en Java que puede ejecutar los procesos de negocio que se describen en BPMN 2.0 (o su propio lenguaje de definición de procesos jPDL en versiones anteriores). Se distribuye bajo Licencia Apache (o LGPL en versiones anteriores) por la comunidad JBoss.

39
Q

En relación a la plataforma Java EE señale la respuesta correcta

a) Tanto applets como servlets son componentes que se ejecutan en el cliente.
b) Los componentes EJB (enterprise beans o entreprise java beans) son componentes que se ejecutan en el servidor.
c) El framework de la plataforma Java EE para simplificar el desarrollo de interfaces de usuario en aplicaciones Web Java se denomina JavaGUI.

A2 AYTO MADRID 2019

A

En relación a la plataforma Java EE señale la respuesta correcta

a) Tanto applets como servlets son componentes que se ejecutan en el cliente.

b) Los componentes EJB (enterprise beans o entreprise java beans) son componentes que se ejecutan en el servidor.

c) El framework de la plataforma Java EE para simplificar el desarrollo de interfaces de usuario en aplicaciones Web Java se denomina JavaGUI.

40
Q

¿Qué es un JNI?

a) Es una interfaz que permite el acceso a bases de datos desde programas java
b) Es una interfaz de programación para gestionar entornos de ventanas en java
c) Es una interfaz de programación que facilita el acceso, generación y desarrollo de componentes o programas para acceder a ficheros XML
d) Es una interfaz estándar de programación para llamar a métodos nativos escritos en otros lenguajes, desde un programa java

A

¿Qué es un JNI?

a) Es una interfaz que permite el acceso a bases de datos desde programas java
b) Es una interfaz de programación para gestionar entornos de ventanas en java
c) Es una interfaz de programación que facilita el acceso, generación y desarrollo de componentes o programas para acceder a ficheros XML

d) Es una interfaz estándar de programación para llamar a métodos nativos escritos en otros lenguajes, desde un programa java

El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma.

También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma.

El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java.

A menudo se denomina a JNI como la “válvula de escape” para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar.

Dado que -como se ha dicho antes- puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual.

41
Q

¿Cuál de los siguientes paquetes de Java contiene las clases básicas utilizadas habitualmente en la mayoría de los programas Java?

a) java.lang
b) java.beans
c) java.sql
d) java.util

A

¿Cuál de los siguientes paquetes de Java contiene las clases básicas utilizadas habitualmente en la mayoría de los programas Java?

a) java.lang

b) java.beans
c) java.sql
d) java.util

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.

42
Q

¿Mediante qué tipo de objetos se implementa el acceso a los recursos gestionados con la tecnología JMX?

a) SessionBean
b) JavaBean
c) MBeans
d) MessageDrivenBean

A1-AGE-2015

A

¿Mediante qué tipo de objetos se implementa el acceso a los recursos gestionados con la tecnología JMX?

a) SessionBean
b) JavaBean

c) MBeans

d) MessageDrivenBean

43
Q

Respecto a Java, ¿qué opción es correcta?:

a) Las clases predefinidas deben ser compiladas aparte.
b) Una clase representa al conjunto de objetos que comparten una estructura y un comportamiento comunes.
c) Un paquete sólo puede contener una definición de interface o de clase.
d) La herencia extiende las capacidades (atributos y métodos) entre interfaces.

A1-2019-EXTRA

A

Respecto a Java, ¿qué opción es correcta?:

a) Las clases predefinidas deben ser compiladas aparte.

b) Una clase representa al conjunto de objetos que comparten una estructura y un comportamiento comunes.

c) Un paquete sólo puede contener una definición de interface o de clase.
d) La herencia extiende las capacidades (atributos y métodos) entre interfaces.

44
Q

En un entorno JAVA, la conexión entre módulos que componen una aplicación se verifica en:

a) Tiempo de compilación.
b) Tiempo de ejecución.
c) Tiempo de verificación.
d) Tiempo de ensamblaje.

GSI-2008

A

En un entorno JAVA, la conexión entre módulos que componen una aplicación se verifica en:

a) Tiempo de compilación.

b) Tiempo de ejecución.

c) Tiempo de verificación.
d) Tiempo de ensamblaje.

45
Q

Throwable es la superclase de todos los errores y excepciones de Java SE 7. ¿A qué paquete de Java pertenece Throwable?

a) java.lang
b) java.error
c) java.util
d) Throwable no es una clase, es un interface, y éste pertenece al paquete java.io

GSI-2013-PI

A

Throwable es la superclase de todos los errores y excepciones de Java SE 7. ¿A qué paquete de Java pertenece Throwable?

a) java.lang

b) java.error
c) java.util
d) Throwable no es una clase, es un interface, y éste pertenece al paquete java.io

GSI-2013-PI

CLASES IMPORTANTES

  • java.util.ArrayList / LinkedList
  • java.util.HashMap / Hashtable
  • java.lang.Thread
  • java.lang.Object
  • java.lang.Class
  • java.util.Iterator
  • java.text.SimpleDateFormat
  • java.lang.StringBuffer / StringBuilder
  • java.io.XXXXX
    • Readers/Writers
    • InputStreams, OutputStreams
  • java.sql.XXXX (PreparedStatement, Connection, ResultSet, …)
  • java.util.StringTokenizer
  • java.util.regex.Pattern
  • java.util.regex.Matcher
  • java.util.Properties
  • java.util.Calendar
  • java.util.concurrent.Executors
  • java.time.Instant
46
Q

¿En qué patrón de diseño está basada la arquitectura de Swing?

a) Modelo-Vista-Controlador (MVC)
b) Singleton
c) Observer
d) Facade

A

.¿En qué patrón de diseño está basada la arquitectura de Swing?

a) Modelo-Vista-Controlador (MVC)

b) Singleton
c) Observer
d) Facade

Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, listas desplegables y tablas.

Es un framework MVC para desarrollar interfaces gráficas para Java con independencia de la plataforma. Sigue un simple modelo de programación por hilos

47
Q

¿Qué tecnología Java permite la invocación de métodos de un objeto remoto?

a) RMI
b) JNI
c) JDBC
d) JRM

A

¿Qué tecnología Java permite la invocación de métodos de un objeto remoto?

a) RMI

b) JNI
c) JDBC
d) JRM

API (conjunto de clases que vienen predefinidas)

  • Colecciones (Arrays, Listas, …)
  • Excepciones/Errores
  • Hilos de Ejecución: base de Java para la ejecución del código.
  • Programación de red (bajo nivel): Socket /ServerSocket (tratamiento de TCP/IP)
  • Programación de red (alto nivel): RMI (programación distribuida o cliente/servidor o llamada a métodos remotos)
  • Persistencia de bajo nivel (JDBC): Guardar /Recuperar/Borrar … info de la BBDD relacional
  • Interface Graficos de Usuario (Awt, JFC/Swing)
  • Logging
  • Soporte XML (JAXP –> SAX,DOM,StaX,TrAX)
  • Reflection: capacidad de acceder a los metadatos (clase, atributos, métodos) de un objeto en tiempo de ejecución.
48
Q

¿Cuál de las siguientes corresponde a una tecnología Java para acceder a bases de datos relacionales?

a) JRDB
b) JPA
c) ORM
d) Ninguna de las anteriores

A

¿Cuál de las siguientes corresponde a una tecnología Java para acceder a bases de datos relacionales?

a) JRDB

b) JPA

c) ORM
d) Ninguna de las anteriores

SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:

JTA: Servicio de transacciones distribuidas.

UserTransaction (métodos commit(), rollback())

JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.

  • Driver / DataSource → getConnection ()
  • Connection
  • Statement / PreparedStatement / CallableStatement /ResultSet

JMS → Colas de mensajes.

  • MessageListener (interface) → onMessage (Message msg)
  • Queue / Topic
  • Session (createProducer (Destination), createMessage ())

JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.

  • EntityManager (métodos persist(), find(), delete())
  • @Entity / @Table / @Id / @Column / @OneToMany

JAX-RS → Apis de servios web – rest (basado en htttp).

  • @Path / @GET / @POST

JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).

@WebService / @WebMethod / @WebParam

API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.

  • InitialConext → loopup(…) método para buscar en el árbol.
49
Q

Señale cuál de las siguientes NO es una de las principales características del lenguaje JAVA:

a) Orientación a objetos
b) Herencia Múltiple
c) Arquitectura Neutra
d) Multithread

GSI-2018-PI

A

Señale cuál de las siguientes NO es una de las principales características del lenguaje JAVA:

a) Orientación a objetos

b) Herencia Múltiple

c) Arquitectura Neutra
d) Multithread

Java no soporta la herencia múltiple ya que una clase concreta solo puede tener una clase padre. Pero a cambio dispone de la construcción denominada “Interface” que permite una forma de simulación o implementación limitada de la herencia múltiple.

a) palabra clave interface
b) Todo método es abstracto y público
c) Las interfaces no tienen ningún constructor.
d) Un interfaz solo admite campos de tipo “public static final”, es decir, campos de clase, públicos y constantes.
e) Una clase puede derivar de un interface de la misma manera en que puede derivar de otra clase. No obstante, se dice que el interface se implementa (implements), no se extiende (extends) por sus subclases.

interface {

// declare constant fields

// declare methods that abstract

// by default.

}

Ejemplo:

interface printable{

void print();

}

class A6 implements printable{

public void print(){

System.out.println(“Hello”);

}

public static void main(String args[]){

A6 obj = new A6();

obj.print();

}

}

50
Q

Indica la afirmación correcta sobre la tecnología JavaServer Faces:

a) Ha quedado obsoleta por el framework Spring
b) Es la nueva API Java para desarrollo de transacciones distribuidas
c) Es una novedad del Java 2
d) Es un framework de la capa de presentación para desarrollo de aplicaciones Web

A
  • *Indica la afirmación correcta sobre la tecnología JavaServer Faces:**
    a) Ha quedado obsoleta por el framework Spring

b) Es la nueva API Java para desarrollo de transacciones distribuidas
c) Es una novedad del Java 2

d) Es un framework de la capa de presentación para desarrollo de aplicaciones Web

JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL (acrónimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario)

JSF incluye:

  • Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
  • Un conjunto por defecto de componentes para la interfaz de usuario.
  • Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • Un modelo de eventos en el lado del servidor.
  • Administración de estados.
  • Beans administrados.
51
Q

NO es un framework de desarrollo en Java:

a) JavaServer Faces
b) Spring
c) Ruby on Rails
d) Maverick

A

NO es un framework de desarrollo en Java:

a) JavaServer Faces
b) Spring

c) Ruby on Rails

d) Maverick

52
Q

El API de Java EE para la implementación de servicios web RESTful es:

a) JAX-RS
b) JWS-REST
c) JSR-RS
d) JAVA-RST

A1 ANALISTAS CONGRESO 2021

A

El API de Java EE para la implementación de servicios web RESTful es:

a) JAX-RS

b) JWS-REST
c) JSR-RS
d) JAVA-RST

SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:

JTA: Servicio de transacciones distribuidas.

UserTransaction (métodos commit(), rollback())

JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.

  • Driver / DataSource → getConnection ()
  • Connection
  • Statement / PreparedStatement / CallableStatement /ResultSet

JMS → Colas de mensajes.

  • MessageListener (interface) → onMessage (Message msg)
  • Queue / Topic
  • Session (createProducer (Destination), createMessage ())

JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.

  • EntityManager (métodos persist(), find(), delete())
  • @Entity / @Table / @Id / @Column / @OneToMany

JAX-RS → Apis de servios web – rest (basado en htttp).

  • @Path / @GET / @POST

JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).

@WebService / @WebMethod / @WebParam

API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.

  • InitialConext → loopup(…) método para buscar en el árbol.
53
Q

A la hora de empaquetar aplicaciones J2EE utilizaremos:

a) .jar
b) “.jar” y “.war” dependiendo del contenido y recursos que utilicemos
c) b) es correcta y además “.ear”, aunque fundamentalmente se restringe para los EJBs
d) El empaquetamiento no se determina en J2EE

A

A la hora de empaquetar aplicaciones J2EE utilizaremos:

a) .jar
b) “.jar” y “.war” dependiendo del contenido y recursos que utilicemos

c) b) es correcta y además “.ear”, aunque fundamentalmente se restringe para los EJBs

d) El empaquetamiento no se determina en J2EE

EMPAQUETADO DE APLICACIONES:

Dentro del fichero 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, todas las librerías, por ejemplo IText, y luego el web.xml de configuración.

El proceso de desplieje es llevarnos este WAR al servidor de aplicaciones, al Jbox de produccion. Todo lo que se ponga en el WAR lo va a gestionar el WEB CONTAINER.

EAR (Enterprise Archive): Como podemos ver 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

54
Q

En Java Platform Enterprise Edition existe una tecnología que simplifica la construcción de interfaces de usuario para aplicaciones Java Server. Mediante esta tecnología los desarrolladores pueden construir rápidamente aplicaciones web ensamblado componentes de interfaz de usuario reutilizables. Señale cuál es:

a) JavaServer Pages.
b) JavaServer Faces.
c) JavaServer Servlets.
d) JavaServer Components.

GSI A2 AGE 2008

A

En Java Platform Enterprise Edition existe una tecnología que simplifica la construcción de interfaces de usuario para aplicaciones Java Server. Mediante esta tecnología los desarrolladores pueden construir rápidamente aplicaciones web ensamblado componentes de interfaz de usuario reutilizables. Señale cuál es:

a) JavaServer Pages.

b) JavaServer Faces.

c) JavaServer Servlets.
d) JavaServer Components.

COMPONENTES

PÁGINAS/VISTAS: los que tienen que ver con la capa de presentación

- JSP “JavaServer Pages”:

HTML con trozos de java ≈ similar al php antiguo.

Los trozos de java <%….%>.

Dentro de esos trozos de java, existen unos objetos predefinidos que son:

  • Session
  • Request
  • page

Pero estamos mezclando trozos de java con html.

- JSTL “JavaServer Pages Standard Tag Library“: (HTML + tag library).

Estas bibliotecas de etiquetas extienden de la especificación de JSP (la cual a su vez extiende de la especificación de Servlet). Su API nos permite además desarrollar nuestras propias bibliotecas de etiquetas.

Se soluciona parte de la ilegibilidad de las paginas JSP.

JSTL es un estándar, pero las etiquetas se las inventa el programador, era la forma de crear esas etiquetas lo que es estándar.

- JSF “JavaServer Pages” (HTML + tagUI):

Se crea un API con componentes de USER interface.

JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas.

JSF incluye:

  • Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
  • Un conjunto por defecto de componentes para la interfaz de usuario.
  • Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • Un modelo de eventos en el lado del servidor.
  • Administración de estados.
  • Beans administrados.

El navegador realiza una petición a una determinada URL en la que reside la página JSF que se quiere mostrar. En el servidor un servlet que llamamos motor de JSF recibe la petición y construye un árbol de componentes a partir de la página JSF que se solicita. Este árbol de componentes replica en forma de objetos Java la estructura de la página JSF original y representa la estructura de la página que se va a devolver al navegador. Por ejemplo, si en la página JSF se define un componente de tipo menú con la etiqueta.

55
Q

En relación a los lenguajes de programación empleados para el desarrollo de aplicaciones para dispositivos móviles, señale la respuesta correcta:

a) Kotlin es un lenguaje que permite desarrollar tanto para Android como para iOS.
b) Kotlin es un lenguaje que permite desarrollar únicamente para Android.
c) Kotlin es un lenguaje que permite desarrollar únicamente para iOS.

A

En relación a los lenguajes de programación empleados para el desarrollo de aplicaciones para dispositivos móviles, señale la respuesta correcta:

a) Kotlin es un lenguaje que permite desarrollar tanto para Android como para iOS.

b) Kotlin es un lenguaje que permite desarrollar únicamente para Android.
c) Kotlin es un lenguaje que permite desarrollar únicamente para iOS.

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.

56
Q

Para el concepto de struts, indique cuál de las siguientes opciones es correcta:

a) Struts es un framework que se basa en el patrón MVC (Model View Controller)
b) Struts es un framework que se basa en la tecnología JSF (Java Server Faces)
c) Struts es un patrón de diseño para plataformas “.NET”
d) Struts es un patrón de diseño para plataformas JEE

A1 Xunta de Galicia 2011A1

A

Para el concepto de struts, indique cuál de las siguientes opciones es correcta:

a) Struts es un framework que se basa en el patrón MVC (Model View Controller)

b) Struts es un framework que se basa en la tecnología JSF (Java Server Faces)
c) Struts es un patrón de diseño para plataformas “.NET”
d) Struts es un patrón de diseño para plataformas JEE

LIBRERIAS DE TERCERDOS - Frameworks

Frameworks MVC

  • Spring MVC
  • Struts
  • PrimeFaces / ICEFaces
  • GWT
  • Vaadin
  • Wicket
57
Q

JNDI se usa para el acceso a:

a) Datos de ficheros
b) Sistemas gestores de bases de datos
c) Directorios de nombres
d) Colas de mensajería

A1 AGE 2015

A

JNDI se usa para el acceso a:

a) Datos de ficheros
b) Sistemas gestores de bases de datos

c) Directorios de nombres

d) Colas de mensajería

SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:

JTA: Servicio de transacciones distribuidas.

UserTransaction (métodos commit(), rollback())

JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.

  • Driver / DataSource → getConnection ()
  • Connection
  • Statement / PreparedStatement / CallableStatement /ResultSet

JMS → Colas de mensajes.

  • MessageListener (interface) → onMessage (Message msg)
  • Queue / Topic
  • Session (createProducer (Destination), createMessage ())

JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.

  • EntityManager (métodos persist(), find(), delete())
  • @Entity / @Table / @Id / @Column / @OneToMany

JAX-RS → Apis de servios web – rest (basado en htttp).

  • @Path / @GET / @POST

JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).

  • @WebService / @WebMethod / @WebParam

API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.

  • InitialConext → loopup(…) método para buscar en el árbol.
58
Q

¿Cuál de estas acciones se permite ejecutar en Java a un applet no firmado descargado de Internet?

a) Leer ficheros locales
b) Cargar librerías nativas
c) Conectarse a la máquina desde la que se descargó
d) Llamar a métodos privados de otras applets de la misma página

A

¿Cuál de estas acciones se permite ejecutar en Java a un applet no firmado descargado de Internet?

a) Leer ficheros locales
b) Cargar librerías nativas

c) Conectarse a la máquina desde la que se descargó

d) Llamar a métodos privados de otras applets de la misma página

59
Q

¿Cuál de los siguientes NO es un formato válido para el empaquetamiento de aplicaciones en J2EE (Java 2 Enterprise Edition)?

a) WAR (Web Archive).
b) EAR (Enterprise Archive).
c) BAR (Bean Archive).
d) JAR (Java Archive).

A1 AGE 2006

A

¿Cuál de los siguientes NO es un formato válido para el empaquetamiento de aplicaciones en J2EE (Java 2 Enterprise Edition)?

a) WAR (Web Archive).
b) EAR (Enterprise Archive).

c) BAR (Bean Archive).

d) JAR (Java Archive).

EMPAQUETADO DE APLICACIONES:

Dentro del fichero 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, todas las librerías, por ejemplo IText, y luego el web.xml de configuración.

El proceso de desplieje es llevarnos este WAR al servidor de aplicaciones, al Jbox de produccion. Todo lo que se ponga en el WAR lo va a gestionar el WEB CONTAINER.

EAR (Enterprise Archive): Como podemos ver 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.

60
Q

¿Qué es un Scriptlet JSP?

a) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <– y –>
b) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <* y *>
c) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <+ y +>
d) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <% y %>

A2 Universidad Politécnica de Madrid 2011

A

¿Qué es un Scriptlet JSP?

a) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <– y –>
b) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <* y *>
c) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <+ y +>

d) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <% y %>

61
Q

JDeveloper es:

a) Un entorno de desarrollo integrado (IDE)
b) Una base de datos
c) Un gestor de contenidos
d) Un gestor de informes

A

JDeveloper es:

a) Un entorno de desarrollo integrado (IDE)

b) Una base de datos
c) Un gestor de contenidos
d) Un gestor de informes

62
Q

¿Cuál es la interfaz estándar de programación Java para invocar a métodos nativos escritos en otros lenguajes como C o C++?

a) JAXP
b) JNI
c) JNDI
d) JDBC

A1 AGE 2015

A

¿Cuál es la interfaz estándar de programación Java para invocar a métodos nativos escritos en otros lenguajes como C o C++?

a) JAXP

b) JNI

c) JNDI
d) JDBC

¡ojo! API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.

El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma.

También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma.

El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java.

A menudo se denomina a JNI como la “válvula de escape” para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar.

Dado que -como se ha dicho antes- puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual.

63
Q

Si una aplicación web desplegada en una JVM utiliza un servlet para generar páginas web de forma dinámica, dicho servlet no implementa la interfaz SingleThreadModel, y en un momento determinado se encuentra recibiendo múltiples peticiones de clientes de forma concurrente, ¿cuántos objetos de dicha clase estarán cargados en la memoria de la JVM?

a) 0
b) 1
c) Tantos como peticiones concurrentes tenga
d) Tantos como le permita la memoria de la JVM

A1 AGE 2015

A

Si una aplicación web desplegada en una JVM utiliza un servlet para generar páginas web de forma dinámica, dicho servlet no implementa la interfaz SingleThreadModel, y en un momento determinado se encuentra recibiendo múltiples peticiones de clientes de forma concurrente, ¿cuántos objetos de dicha clase estarán cargados en la memoria de la JVM?

a) 0

b) 1

c) Tantos como peticiones concurrentes tenga
d) Tantos como le permita la memoria de la JVM

SingleThreadModel, concurrencia en servlet

Obsoleto. A partir de Java Servlet API 2.4,

Interfaz pública SingleThreadModel: Garantiza que los servlets manejen solo una solicitud a la vez. Esta interfaz no tiene métodos.

Si un servlet implementa esta interfaz, tiene la garantía de que no se ejecutarán dos subprocesos al mismo tiempo en el método service del servlet. El contenedor de servlet puede garantizar esta garantía sincronizando el acceso a una única instancia del servlet, o manteniendo un conjunto de instancias de servlet y enviando cada nueva solicitud a un servlet libre.

Tenga en cuenta que SingleThreadModel no resuelve todos los problemas de seguridad de subprocesos.

64
Q

Indica cuál no es una ventaja de la tecnología JSF:

a) Ofrece un alto nivel de abstracción en el diseño de la interfaz
b) JSF comparada con otras tecnologías MVC (Spring MVC, Struts, WebWork, Tapestry,…) está mas orientada a componentes y eventos
c) Para el desarrollo de aplicaciones se basa en la implementación de complejas clases Java
d) Permite la creación de nuevos componentes gráficos o widgets

A

Indica cuál no es una ventaja de la tecnología JSF:

a) Ofrece un alto nivel de abstracción en el diseño de la interfaz
b) JSF comparada con otras tecnologías MVC (Spring MVC, Struts, WebWork, Tapestry,…) está mas orientada a componentes y eventos

c) Para el desarrollo de aplicaciones se basa en la implementación de complejas clases Java

d) Permite la creación de nuevos componentes gráficos o widgets

- JSF “JavaServer Pages” (HTML + tagUI):

Se crea un API con componentes de USER interface.

JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas.

JSF incluye:

  • Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
  • Un conjunto por defecto de componentes para la interfaz de usuario.
  • Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • Un modelo de eventos en el lado del servidor.
  • Administración de estados.
  • Beans administrados.

El navegador realiza una petición a una determinada URL en la que reside la página JSF que se quiere mostrar. En el servidor un servlet que llamamos motor de JSF recibe la petición y construye un árbol de componentes a partir de la página JSF que se solicita. Este árbol de componentes replica en forma de objetos Java la estructura de la página JSF original y representa la estructura de la página que se va a devolver al navegador. Por ejemplo, si en la página JSF se define un componente de tipo menú con la etiqueta.

65
Q

Indique cuál es una ventaja de los applets sobre los scripts:

a) El código fuente de los applets no es visible
b) Un applet descarga en una sola conexión todos los componentes necesarios
c) Las respuestas ‘a’ y ‘b’ son verdaderas
d) Las respuestas ‘a’ y ‘b’ son falsas

A

Indique cuál es una ventaja de los applets sobre los scripts:

a) El código fuente de los applets no es visible
b) Un applet descarga en una sola conexión todos los componentes necesarios

c) Las respuestas ‘a’ y ‘b’ son verdaderas

d) Las respuestas ‘a’ y ‘b’ son falsas

66
Q

¿Cuál de las siguientes afirmaciones es correcta respecto a mod_security?

a) Permite el control de acceso a Bases de Datos distribuidas.
b) Monitorización en tiempo real y control de acceso de aplicaciones web.
c) Control de acceso en la transmisión de paquetes a través del protocolo SFTP.
d) Control y monitorización para despliegues automatizados en un entorno de integración continua.

GSI-2017

A

¿Cuál de las siguientes afirmaciones es correcta respecto a mod_security?

a) Permite el control de acceso a Bases de Datos distribuidas.

b) Monitorización en tiempo real y control de acceso de aplicaciones web.

c) Control de acceso en la transmisión de paquetes a través del protocolo SFTP.
d) Control y monitorización para despliegues automatizados en un entorno de integración continua.

67
Q

Indique la afirmación falsa en relación a los servlets de Java:

a) Se alojan en un contenedor web
b) Es un elemento de la capa de presentación
c) Se pueden invocar desde una URL
d) Sólo generan contenido estático

A

Indique la afirmación falsa en relación a los servlets de Java:

a) Se alojan en un contenedor web
b) Es un elemento de la capa de presentación
c) Se pueden invocar desde una URL

d) Sólo generan contenido estático

Un servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, estos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de Java que se ejecutan en servidores en vez de navegadores web. Este tipo de servlets son la contraparte Java de otras tecnologías de contenido dinámico Web, como PHP y ASP.NET.

La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se ejecutan en el contexto de un navegador web.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.