Cuáles son los directorios por defecto que usa Maven, y para qué sirven?
Qué partes tiene principalmente el pom.xml de Maven? Qué campos importantes tiene cada una?
El el campo scope de una dependecia del pom.xml de maven, qué opciones hay y qué son cada una?
Qué fases tiene el ciclo de vida “default” de maven?
1.- validate
2.- compile
3.- test (segun los casos de prueba del directorio src/test/java)
4.- package (jar, war, ear, …)
5.- verify
6.- install (local repository)
7.- deploy (remote repository)
Cuál es el comando para usar la herramienta maven por consola?
mvn
Si hablamos de reflexión en java, qué clases se usarían para manejar los aspectos principales?
objetc.getClass() –> devuelve un Class
clase.getSimpleName() -> devuelve un string con el nombre de la clase
clase.getDeclaredFlieds() -> devuelve un array de Fields, que son los atributos de la clase
atributo.getName() -> devuelve el nombre del Field (atrbuto)
Qué diferencias hay entre los siguientes conceptos de JDBC?
Driver
DriverManager
DataSource
Driver -> es específico del fabricante del SGBD
DriverManager -> Capa de más alto nivel para hacerle peticiones al Driver
DataSource -> Como el DriverManager pero para aplicaciones multiusuario, que internamente le pide al Driver y gestiona un pool de conexiones
Qué pasos usaríamos en JDBC para hacer consultas a una BBDD?
Qué son los modules en Java9 y en qué fichero se configuran?
Un module permite generar un jar pero sin todas las clases de los paquetes incluídos, evitando tener que incluir todas
Se configura en el fichero module-info.java donde se especifica lo que se exportará en el jar del module -> “export”, y las dependencias del module -> “requires”
module ModuloA {
exports com.arquitecturajava.core;
exports com.arquitecturajava.utils;
requires es.tai.modulo.user;
requires es.tai.modulo.bbdd;
}
En la programación funcional en java, qué anotación se ha inventado y para qué sirve?
La anotación @FunctionalInterface
Es una interfaz de un sólo método
Se usan para expresiones lambda, aplicando estas funciones sobre streams de objetos, encadenándolas
Se han creado varias especializaciones, como la clase Function
En java8, qué es la palabra default al declarar un método?
default public void g(){}
Se usa en clases abstractas o interfaces, para poder implementar el método a ese nivel, ya que por defecto no se puede en los métodos abstractos
Para qué se usan las siguientes especializaciones de @FunctionalInterface
// Consumer<T> --> metodo accept(T)
// Supplier<T> --> metodo get()
// Predicate<T>
// metodo and(Predicate) --> composicion
// metodo test(T) --> boolean
// Function<T,R>
// metodo apply(T) --> R
// metodo andThen(Function) --> composicion</T></T></T>
// Consumer<T> --> metodo accept(T) --> Función que no devuelve parámetros
// Supplier<T> --> metodo get() -> Función que no acepta parámetros, sólo devuelve
// Predicate<T> -> Función para hacer filtros en base a una condición
// metodo and(Predicate) --> composicion
// metodo test(T) --> boolean
// Function<T,R> -> Función normal
// metodo apply(T) --> R
// metodo andThen(Function) --> composicion</T></T></T>
Para qué sirven los siguientes métodos importantes de la interfaz Stream, que trabajan pasándole objetos funcionales (@FunctionalInterface o sus especializaciones)
// filter(Predicate) --> Stream // map(Function) --> Stream // reduce(BinaryOperator) -> T // forEach(Consumer) --> void
// filter(Predicate) –> Stream -> Filtrar por una condición
// map(Function) –> Stream -> Mapear dos valores
// reduce(BinaryOperator) -> T -> Aplicar alguna fórmula
// forEach(Consumer) –> void
Ver en internet algunos ejemplos o video tutorial de expresiones lambda
Cuál es el comando para usar la herramienta maven por consola?
mvn