Tema 6. Java Flashcards

(75 cards)

1
Q

En Java, ¿qué relación hay entre una clase y un interface?

A

Una relación de implementación (mediante la palabra reservada “implements”)

Notas:
- Una clase puede implementar varios interfaces
- Un interface funciona como un tipo (atributo/variable/parámetro)
- Un interface es un contrato funcional entre que debe cumplir la clase
- Un interface puede extender a otro interface (mediante la palabra reservada “extends”)
- Un interface (java8+) puede tener métodos con CÓDIGO (default y static)

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

Java: Uso de la palabra reservada “final” en una clase, un método y un atributo

A

En una clase, no se permite tener hijos a partir de esa clase

En un método, no se puede sobreescribir en un posible hijo

En un atributo, no se puede modificar

Ejs:
public final class Clase1 {…}
public final void informe(); {…}
final int numero;

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

Java: Uso de la palabra reservada “static”

A

Sirve para definir atributos y métodos de clase (no de instancia) para que siempre tenga el mismo valor en todos los objetos

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

En Java, ¿podemos añadir texto a un objeto de la clase String?

A

NO. Los objetos de la clase string son inmutables

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

Uso de la palabra reservada “Synchronized” en Java

A

Cuando varios hilos de ejecución comparten una “zona de de la memoria”. Esto sirve para que entren de 1 en 1

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

Java: Diferencia entre “Hashtable” y “ArrayList”

A
  • Hashtable funciona por clave/valor
  • ArrayList funciona por índice
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuál es la clase base para las excepciones y los errores en Java?

A

Throwable

(La de excepciones es excepcion, throwable es para ambas)

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

Nombre dos librerías para generar ficheros de log en Java:

A
  • log4j
  • logback
  • tinylog
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es @override y cuál es su utilidad?

A

Es una ANOTACIÓN (elemento de programación nuevo que salió en java5) que sirve para informar al compilador que estamos sobrescribiendo un método de mi padre.

Nota: No es obligatorio su uso, es una ayuda para que te salte el posible error mientras codificas

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

Herramienta en Java para empaquetar ficheros dentro de la compilación

A

jar

(Se compilan con javac)

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

¿Cómo se crea un hilo de ejecución en java?

A

Hay dos formas:

  • extends threads (pertenece a java.lang)
  • Implements runnable

En ambos casos hay que sobreescribir el método run

Ejemplo:

Public class mi_clase extends thread {
@override
Public void run {…}
}

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

Utilidad de javadoc

A

Generación de documentos HTML a partir de código fuente (.java)

El formato es: /** (info) */

Dentro de los comentarios se pueden usar metadatos: @author @see @since…

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

¿Qué diferencia existe entre el interface Statement y PreparedStatement del API JDBC?

A

Statement:
- Crea y ejecuta sentencias SQL estáticas
- No permite parámetros en las consultas
- Vulnerable a SQL Injection
- Menos eficiente: El motor SQL debe re-analizar la consulta cada vez

PreparedStatement:
- La SQL se compila una vez y se reutiliza
- Usa ? para parámetros
- Protección contra SQL Injection
- Mejor rendimiento: Reutiliza el plan de ejecución

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

¿Cómo podemos obtener la fecha y hora actual a partir de JDK 1.8?

A

Con java.time

import java.time.LocalDateTime;

LocalDateTime ahora = LocalDateTime.now();
System.out.println(“Fecha y hora actual: “ + ahora);

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

¿Cuál es la utilidad de la interfaz de Java iterable?

A

Acceder al objeto “iterador” de CUALQUIER COLECCIÓN y así poder recorrerla de forma genérica

Nota: Es un patrón (técnica) de diseño (de comportamiento del catálogo GoF)

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

¿Cómo podemos en Java acceder al elemento que está en la cima de un Stack sin borrarlo?

A

peek();

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

Utilidad del bloque Finally

A

Después del try/catch el bloque finally se ejecuta SIEMPRE, tanto si hubo excepción como si no

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

Nombre del método que sirve para lanzar los hilos

A

start();

No confundir con run(); que representa el cuerpo del hilo que sobreescribimos y solo representa el cuerpo del hilo

JRE (planificador) -> start() -> run()

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

¿Qué dos métodos de Object es aconsejable sobreeescribir en tus clases de negocio (ej. Producto)?

A

Método equals(Object o) -> devuelve un boolean
Método toString() -> String

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

Utilidad de la herramienta Apache Maven

A

Es na herramienta Java para ayudarnos a la automatización de la construcción de proyectos en Java

A) Descargar librerías de terceros que queremos usar en nuestro proyecto (gestión de dependencias)
B)

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

Utilidad del interface java.io.Closeable

A

Libera recursos del sistema (Asegura que recursos como descriptores de archivos, sockets o conexiones sean liberados cuando ya no se necesiten)

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

Utilidad del comando peek();

A

Acceder al elemento que está en la cima de un Stack sin borrarlo

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

¿Cómo se define una constante en Java?

A

Con static final

Ejemplo:

public static final int nombre_constante = 200;

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

Uso de las librerías de Java “BouncyCastle” y “Apache POI”

A

BouncyCastle -> Funciones de criptografía

Apache POI -> Trabajar con ficheros de Office (word, ppt, excel…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Uso de la palabra reservada abstract en Java
a) En una clase: No se puede instanciar dicha clase. No está vacía de código pero puede tener métodos abstractos b) En un método: Si defines/declaras un método abstracto, la clase también tendrás que declararla abstracta. Nota: Una clase X que hereda de otra que tiene métodos abstractos, tiene obligación de implementarlos excepto si la declara abstracta
26
¿Una clase abstracta tiene necesariamente que tener un método abstracto?
No, pero si defines/declaras un método abstracto, la clase también tendrás que declararla abstracta.
27
En Java8, ¿que son Predicate, Consumer y Supplier?
Son interfaces que se encuentran en el paquete java.util.function (es decir, nos sirven para implementar cositas al estilo de la programación funcional) Entre las cositas de programación funcional que nos permite tendríamos: los streams y las expresiones lambda (->) NOTA: El interface Predicate está anotado con @FunctionalInterface y un "interface funcional" en java es aquel que tiene 1 solo método "importante" NOTA: Una expresión lambda no es otra cosa que una función "esquelética": ANTES: public int suma(int a,b){ return a+b; } AHORA: (a,b) -> a+b
28
En Java8, ¿Qué métodos importantes tiene el interface Stream?
Ej. List listaDeObjetos = .... listaDeObjetos.stream(). a) filter(Predicate) b) count() c) forEach(Consumer) d) map(Function) e) sorted() f) reduce(...)
29
¿Desde el método de la clase A, podemos acceder a un atributo "protected" de un objeto de la clase B?
Sí, siempre y cuando estén en el mismo paquete o A sea subclase de B
30
¿Podemos pasar un número arbitrario de parámetros a un método?
Sí, con la siguiente sintaxis: public int suma (int... datos){ ... } Nota: Los parámetros de entrada en Java siempre son por valor (no por referencia)
31
¿Para qué sirve el método document.querySelector('.btn-primary')?
Selecciona EL PRIMERO de los elementos con la clase .btn-primary Nota: Para todos tendríamos que usar querySelectorAll
32
En Java, tamaño de un array[] y un objeto de la jerarquía Collection
[] -> Propiedad lenght (NO MÉTODO método size() -> Ojo, al ser dinámicos nos devuelve el número de elementos
33
En Java, ¿qué es DTO y como se llama a partir de Java 17?
Data Transfer Object. Una clase sin comportamiento, solo para guardar info. A partir de Java 17 se llama Record.
34
¿Qué es Classpath?
Una variable de entorno que le sirve a la máquina virtual para localizar y descargar clases que se usen en tu programa y que no sean tuyas propias
35
¿Qué se almacena en la pila de Java?
- Variables locales - Parámetros de entrada - Dirección de retorno de la función que vamos a llamar
36
Di los lenguajes de la JVM que conozcas
Java Kotlin Scala Groovy Clojure
37
¿Dónde se encuentran los objetos Java Datasource y Driver?
API JDBC
38
¿En qué API están los paquetes java.sql y javax.sql?
JDBC
39
¿En qué paquete están los métodos dateFormat y simpleDateFormat?
java.text
40
¿Qué hace el método stringTokenizer?
Trocea texto en trocitos (tokens)
41
¿Qué hace el método UUID y en qué paquete está?
Genera ID únicos con el algoritmo UUID Paquete java.util
42
¿Para qué sirven los paquetes java.awt, java.swinx y javafx?
Crear interfaces gráficas (interfaces de escritorio)
43
¿En qué paquete están los métodos Socket, ServerSocket, URL, Inet4Address y Proxy?
java.net
44
Uso palabra reservada “transient”
Decirle a la JRE que un atributo no queremos guardarlo en el disco, se queda en el HEAP
45
¿Para qué sirve la palabra reservada extends?
Para extender CLASES e INTERFACES
46
¿Cuántas clases publicas puede haber en un fichero de Java?
Sólo 1. Además el fichero debe llamarse como la clase.
47
En Java, uso del operador instanceof y equivalente en .NET
Para saber qué es algo que nos están pasando (va preguntando si eres clase, interfaz... y devuelve true o false). a) Ofrece un resultado booleano b) Comprobar si un objeto que nos han pasado es una instancia de una clase, subclase o interfaz Nota: En .NET es "is"
48
¿Qué busca el poliformismo?
Busca genericidad, código genérico fácil de mantener. Con esto esperamos que dos objetos del mismo tipo (interface) hagan cosas diferentes. Hay polimorfismo estático (sobrecarga) y dinámico (sobreescritura).
49
Nombra tres paquetes para crear interfaces gráficas en Java
java.awt, java.swinx y javafx
50
En Java, ¿qué es el recolector de basura y qué función tiene?
Es un hilo de ejecución (thread) de baja prioridad presente por defecto en la JRE/JVM Elimina de la memoria (Heap) los objetos que han quedado desreferenciados
51
¿Qué tipos de métodos puede haber en una interfaz Java?
1) Públicos y abstractos (sin código) A partir de Java 8 tenemos: 2) Métodos default (con código) 3) Métodos static (con código)
52
En Java, ¿en qué paquete está y qué métodos tiene el interface Serializable?
Paquete java.io No tiene métodos
53
En Java, ¿para que sirven las palabras reservadas break y continue?
Tiene que ver con gestion de "bucles" (sobre todo) a) break -> salir del bucle b) continue -> interrumpe la iteración actual y saltamos/comenzamos con la siguiente iteración
54
Utilidad de la herramienta de java Gradle
Herramienta de automatización de la construcción de aplicaciones Java. Características: - Gestión de dependencias (librerías de terceros) - Compilación - Empaquetar (war, ear, jar) - Ejecutar test unitarios/integración (ej. JUnit) - etc.
55
Uso de la librería de java Lombok
Te permite no codificar getters, setters y constructores. Te lo hace ella por debajo (solo te obliga a poner unas anotaciones: @Getter,@ToString,...)
56
¿Qué es un array asociativo?
Es un array en el que el índice no es un numero sino una "clave" Ej. medidasElectricidad["avila"] NOTA: Es similar a la idea del diccionario/mapa
57
En Java, ¿para que sirven las palabras reservadas break y continue?
Tiene que ver con gestion de "bucles" (sobre todo) a) break -> salir del bucle b) continue -> interrumpe la iteracion actual y saltamos/comenzamos con la siguiente iteracion
58
Finalidad en Java de un fichero JKS
Son ficheros/formato para contener certificados y/o claves privadas A nivel de JRE se pueden configurar 2 propiedades del sistema: javax.net.ssl.trustStore=/var/config/certificados_confianza_ca.jks --> procesos de autenticacion javax.net.ssl.keyStore=/var/config/sede/firma_automatizada/sello_organismo.jks --> procesos de firma en AAA (RD203) NOTA: Herramienta keytool de linea de comando (de la JDK) o Herramienta KeyStore Explorer NOTA: El fichero cacerts que viene en la JRE contiene las CA's de confianza "por defecto" para Java
59
¿Qué palabra se usa en un switch para indicar el código de bloque que se usará si no se cumple ninguno de los case?
default
60
¿Cómo mostrar un mensaje por pantalla en Java?
System.out.println(“mensaje”);
61
¿Con qué método de java convertimos un string a int? ¿Dónde está ese método?
Parse, en java.lang.Integer Ejemplo: String cadena1 = “123”; Int entero = Integer.parseInt(cadena1); Float flotante = Float.parseFloat(cadena1);
62
¿Cómo convertimos en Java un numero entero a cadena de caracteres?
int numero = 123; String texto = String.valueOf(numero); int numero = 456; String texto = Integer.toString(numero);
63
¿Cuál es el valor del string "color"? int n = 3; String color = (n >= 5) ? "Verde" : "Azul";
Azul
64
¿Cuál de las siguientes afirmaciones sobre interfaces en Java es correcta? a) Pueden contener solo métodos abstractos b) No pueden contener constantes c) Pueden tener métodos default y static d) No pueden ser implementadas por clases abstractas
c) Pueden tener métodos default y static
65
¿Puede tener atributos un interfaz?
No
66
Di los frameworks de Java que conozcas
Spring Struts Apache Wicket Hibernate JSF
67
En Java8, un interface se puede definir como: a) Es una colección de métodos sin implementación y atributos inicializados b) Es una colección de métodos con o sin implementación y una serie de constantes c) Puede heredar de una clase d) Todas son ciertas
b) Es una colección de métodos con o sin implementación y una serie de constantes
68
Dentro de JDBC como se llama la interfaz con los resultados de un Statement o PreparesStatement
ResultSet Nota: ResultMetaData para analizar metadatos de un ResultSet
69
¿Qué es el Method Area?
El Method Area es la parte de la JVM donde se guardan las Clases (no las Instancias). Forma parte del Runtime Data Areas (zonas de la memoria con diferentes usos).
70
¿Cuáles son los componentes del Runtime Data Area?
- Method Area es la parte de la JVM donde se guardan las Clases (no las Instancias). - Heap (Se guardan las Instancias) - Java Stack (Variables locales, etc) - PC Registrers (como en la CPU) - Native Method Stack (Guarda los métodos escritos en otros lenjuages que son llamados en clases java)
71
Diferencia principal entre List y Set
Set no admite duplicados
72
¿Cuáles son los datos primitivos de Java?
byte, boolean, char, float, int, double, long, short BBCFIDLS
73
/!\ ¿Se pueden usar datos primitivos para sustituir un parámetro genérico? Datos primitivos: byte, short, int, long, float, double, char, boolean
No
74
¿Qué es un parámetro genérico en Java?
Es un tipo que se define en la declaración de una clase, interfaz o método para que pueda operar con diferentes tipos de datos sin especificar cuál concreto hasta que se instancia o se invoca. Se declara entre ángulos ()
75
¿Qué es y para qué sirve la JNI?
Java Names Interface Para interactuar con aplicaciones y bibliotecas nativas en otros lenguajes. C, C++, Ensamblador...