Tema 6. Java Flashcards
En Java, ¿qué relación hay entre una clase y un interface?
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 u 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)
Java: Uso de la palabra reservada “final” en una clase, un método y un atributo
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;
Java: Uso de la palabra reservada “static”
Sirve para definir atributos y métodos de clase (no de instancia) para que siempre tenga el mismo valor en todos los objetos
En Java, ¿podemos añadir texto a un objeto de la clase String?
NO. Los objetos de la clase string son inmutables
Uso de la palabra reservada “Synchronized” en Java
Cuando varios hilos de ejecución comparten una “zona de de la memoria”. Esto sirve para que entren de 1 en 1
Java: Diferencia entre “Hashtable” y “ArrayList”
- Hashtable funciona por clave/valor
- ArrayList funciona por índice
¿Cuál es la clase base para las excepciones y los errores en Java?
Throwable
(La de excepciones es excepcion, throwable es para ambas)
Nombre dos librerías para generar ficheros de log en Java:
- log4j
- logback
- tinylog
¿Qué es @override y cuál es su utilidad?
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
Herramienta en Java para empaquetar ficheros dentro de la compilación
jar
(Se compilan con javac)
¿Cómo se crea un hilo de ejecución en java?
Hay dos formas:
- Heredando de Threads (pertenece a java.lang)
- Implementando runnable
En ambos casos hay que sobreescribir el método run
Utilidad de javadoc
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…
¿Qué diferencia existe entre el interface Statement y PreparedStatement del API JDBC?
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
¿Cómo podemos obtener la fecha y hora actual a partir de JDK 1.8?
Con java.time
import java.time.LocalDateTime;
LocalDateTime ahora = LocalDateTime.now();
System.out.println(“Fecha y hora actual: “ + ahora);
¿Cuál es la utilidad de la interfaz de Java iterable?
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)
¿Cómo podemos en Java acceder al elemento que está en la cima de un Stack sin borrarlo?
peek();
Utilidad del bloque Finally
Después del try/catch el bloque finally se ejecuta SIEMPRE, tanto si hubo excepción como si no
Nombre del método que sirve para lanzar los hilos
start();
No confundir con run(); que representa el cuerpo del hilo que sobreescribimos y solo representa el cuerpo del hilo
JRE (planificador) -> start() -> run()
¿Qué dos métodos de Object es aconsejable sobreeescribir en tus clases de negocio (ej. Producto)?
Método equals(Object o) -> devuelve un boolean
Método toString() -> String
Utilidad de la herramienta Apache Maven
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)
Utilidad del interface java.io.Closeable
Libera recursos del sistema (Asegura que recursos como descriptores de archivos, sockets o conexiones sean liberados cuando ya no se necesiten)
Utilidad del comando peek();
Acceder al elemento que está en la cima de un Stack sin borrarlo
¿Cómo se define una constante en Java?
Con static final
Ejemplo:
public static final int nombre_constante = 200;
Uso de las librerías de Java “BouncyCastle” y “Apache POI”
BouncyCastle -> Funciones de criptografía
Apache POI -> Trabajar con ficheros de Office (word, ppt, excel…)