Java Flashcards

(121 cards)

1
Q

Herramientas del JDK (conjunto de utilidades)

A
  • javac: compilador
  • java: lanzador (el que arranca el intérprete)
  • javadoc: herramienta para generar ficheros .html a partir de .java + “comentarios especiales”
  • jar: empaquetar clases compiladas (.class)
  • keytool: criptografía
  • wsimport: genera automáticamente las clases Java necesarias (stubs, interfaces) para consumir servicios web SOAP a partir de un archivo WSDL
  • xjc (XML to Java compiler) : compilador que genera clases a partir de un XSD
  • javap: desensamblador de ficheros .class (convierten el bytecode a código java legible)
  • jdb: depurador
  • jmc (Java Mission Control) y jconsole: herramientas de monitorización de la JVM
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Como se ponen comentarios para documentar? (Javadoc)

A

Con /**
(Con /* sólo es para comentar en java)

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

Metadatos de Javadoc

A
  • @throws
  • @param
  • @since
  • @author

Para que me suene
@param: Describe los parámetros de entrada de un método.
@return: Describe el valor que devuelve un método.
@throws o @exception: Especifica las excepciones que puede lanzar un método.
@author: Identifica al autor del código.
@version: Indica la versión actual del elemento.
@see: Añade un enlace a otra parte de la documentación.
@deprecated: Indica que un elemento está obsoleto y no debe utilizarse.
@since: Indica desde qué versión está disponible el método o clase.

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

En qué consiste el JIT (just-in-time) compiler

A

Es una técnica de compilación en tiempo de ejecución, que mejora el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir bytecode a código nativo.

Definición corta: pieza que traduce de bytecode a código nativo

Nota: no es particular de JAVA, es un concepto, pero JAVA lo tiene

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

¿Qué se almacena en la Pila (Java Stack) de la máquina virtual Java?

A
  • Las variables locales
  • Los parámetros de entrada (antes de llamar a la función)
  • La dirección de retorno de la función a la que vamos a llamar (*)

(Stack como estructura de datos)

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

¿Qué es el Heap dentro de la máquina virtual Java?

A

Zona de la memoria donde se almacenan los objetos que se crean dinámicamente.

Nota: en el heap de Java se almacenan todos los objetos creados dinámicamente (con new), sus atributos y datos de larga duración, incluyendo arrays y variables estáticas, permitiendo que sean compartidos entre métodos y threads, y son gestionados por el Garbage Collector para liberar memoria automáticamente.

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

Sintaxis de llamada a métodos sobre un objeto

A

objeto.metodo(parámetro);

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

¿Cuál es la variable de entorno que le sirve a la maquina virtual para localizar y cargar clases que se uses en tu programa (como librerías de terceros) y que no sean las tuyas ni las del fichero rt.jar?

A

CLASSPATH

Se manejan 3 “classpath” en realidad:

  • variable de entorno CLASSPATH (Por ejemplo, establecer en CLASSPATH en sistemas Linux o macOS, es tan sencillo como escribir esto: “export CLASSPATH=/home/usuario/misProyectos/libs/*:/utilidades/libs/utils.jar”)
  • como property que se establece cuando se lanza el programa:
    Java -classpath /…/…/lib.jar

    (más fácil de transportar a otros sistemas, Las herramientas de Java, como java para ejecutar o javac para compilar, admiten un parámetro -classpath o su versión abreviada -cp que sirven específicamente para establecer las rutas del CLASSPATH)
  • en el fichero Manifest.mf existe un “campo” llamado Class-Path:ruta(s) (en la ruta META-INF/Manifest.mf, dentro de un fichero .jar)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

De qué está formado el JRE

A

JRE=intérprete (maquina virtual Java (JVM)) + librerías de clases BASE (rt.jar)

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

¿Donde está el fichero Manifest.mf?

A

Está dentro del .jar, además de las clases que pueda haber, en un directorio llamado /META-INF/Manifest.mf

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

¿Cuál es el equivalente a los procesos de Linux dentro de la maquina virtual de java?

A

THREADS o Hilos de ejecución, que son los recursos encargados de que los distintos métodos se ejecuten.
- Existen predefinidos pero también podríamos crear nuestros propios Threads (en web no es normal)
- “Método” es algo pasivo y “Thread” es algo activo

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

¿Cuál es un ejemplo importante de Threads predefinidos?

A

El Recolector de Basura (GC) que borra objetos de no referenciado automáticamente

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

Cuales son los tipos de datos primitivos de JAVA

A

Byte, short, int, long, float, double, boolean, char

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

Cuales son los tipos de datos objeto de JAVA

A

Son referencias o punteros. Variables que apuntan a zonas de memoria.

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

En qué consiste la sobrecarga

A

La capacidad que te dan los lenguajes de programación de, para una misma función y en una misma clase, proporcionarle nuevas versiones.

(Se distingue por el número y tipo de parámetro de entrada)

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

Elementos de programación básicos dentro de Clases

A
  • Atributos de datos (describen el estado de un objeto)
    Ej: private int idCliente; //atributos de datos (datos primitivos/String)
  • Atributos de relación (describen las conexiones entre objetos, implementadas como referencias o colecciones de otros objetos
    Ej: private Cliente cliente; //este atributo conecta la clase Pedido con la clase Cliente
    Nota: son las relaciones de asociación en UML.
  • Los Arrays de Referencia: almacenan las direcciones de memoria de los objetos a los que apuntan
    Ej: String[] nombres = new String[3];
    nombres[0] = “Juan”; // El array guarda la referencia al objeto String “Juan”
    nombres[1] = “Ana”;
    nombres[2] = “Pedro”; // [1]
  • Los Arrays Primitivos: almacena directamente los valores, como números o booleanos
    EJ: int[] numeros = {10, 20, 30, 40, 50}; // Almacena 5 enteros directamente [6]

Los arrays primitivos copian los valores al asignarse, mientras que los arrays de referencia comparten el mismo objeto en la memoria

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

¿Para qué sirven los paquetes?

A

Para organizar lógicamente las clases

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

¿Se tienen que importar todas las clases que no están en tu paquete?

A

Si. Menos las clases que estén dentro de java.lang, dado que se importan automáticamente (ejemplo: string)

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

Para qué una clase se pueda utilizar desde otros paquetes con qué modificador hay que ponerlas

A

Con public

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

¿Qué se indica en el método para que no devuelva nada?

A

Void

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

Cuando se hace una herencia con extends, ¿qué se hereda de la clase heredada?

A

Atributos y métodos, aunque no esté visualmente en la clase hija, simplemente los nuevos métodos que la entienden en ella

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

¿Cuándo se utiliza el modificador static?

A

Cuando los métodos son de clase y no de objeto

Sintaxis:
Clase.metodo(parámetro)

En el método, dentro de dicha clase, se indica el modificador static.

Es la palabra reservada que se usa para especificar que un método no es de instancia (objeto) si no de clase.

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

Diferencia entre métodos no estáticos y estáticos

A
  • los métodos no estáticos se les llama métodos de instancia

Por ejemplo, en la clase Factura: public void abonoParcial (float cantidad) {
}

Fuera de la clase:
F1.abonoParcial(100);

El abono afectará sólo a una factura (objeto o instancia) determinada.

  • los métodos estáticos se les llama métodos de clase

Por ejemplo, en la clase Factura: public static void regularizarFacturas () {
}

Fuera de la clase: Factura.regularizarFacturas();

La regularización de facturas afectará a todas las facturas (clase).

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

¿Qué dos tipos de sobreescritura de métodos (del padre) existen?

A
  • Sobreescritura TOTAL:
    Se sobreescribe totalmente el método del padre. Se hacen todas las modificaciones.
  • Sobreescritura PARCIAL:
    Se sobreescribe parcialmente el método del padre, indicando la palabra reservada “super” para indicar que parte del método del padre nos vale:
    super.abonoParcial(cantidad);
    A continuación se hacen las pequeñas modificaciones.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Cómo se agrupan a nivel físico las clases compiladas en JAVA?
Para agrupar a nivel FÍSICO las clases compiladas (.class) tenemos hasta la versión 1.8 de JAVA los ficheros .jar (la herramienta jar para crear esos empaquetados de clases compiladas) y a partir de la versión 1.9 (incluida) de JAVA, tenemos los Java Modules, que es una nueva manera para agrupar FÍSICAMENTE las clases, pero con ciertas ventajas más (más inteligencia, por así decirlo).
26
Características importantes de la herencia y diferencia fundamental con la implementación de un interface
- Sin herencia no hay sobrescritura. - Podemos implementar más de un interface, pero solo podemos heredar de una clase
27
¿Qué es una encapsulación?
Encapsulación: consiste en agrupar los atributos (datos) y los métodos (comportamiento) en una unidad única (clase), ocultando la complejidad interna y protegiendo la integridad de los datos
28
¿Qué es un objeto en JAVA?
Un objeto es una instancia de una clase en memoria
29
¿Cuál es la clase de la cual heredan todas las clases de java?
Cualquier clase de Java hereda de la clase Object. Es la clase cósmica.
30
¿Qué es un casting dentro del lenguaje orientado a objetos?
Casting es el proceso de convertir un objeto de una clase a otra.
31
¿Qué función tiene el modificador Final en clases, atributos y métodos?
- EN CLASES, no permite que la clase sea heredada - EN ATRIBUTOS, no permite que el atributo sea modificado - EN MÉDODOS, no permite que el método sea sobrescrito
32
¿Qué función tiene el modificador synchronized?
Hace que un método o parte de código solo sea ejecutado por un hilo al mismo tiempo. El resto de hilos esperan en una cola. Esto se utiliza cuando java es multihilo y por lo tanto, al haber más de un hilo compitiendo para ejecutar las instrucciones de un método, pueda dar lugar a problemas de lectura-escritura, etc
33
¿Qué función tiene el modificador transient?
Es usado para atributos. Para indicar que un campo del objeto no debe ser serializado.
34
¿Qué función tiene el modificador volatile?
Modificador para indicar al hilo que el valor de la variable local debe buscarlo (para leer o escribir) en memoria principal, no en su caché, para evitar inconsistencias con datos obsoletos en entornos multihilo.
35
¿Qué función tiene el modificador native?
Definir un método que no va a implementarse en Java, sino en otro lenguaje nativo, y no multiplataforma.
36
¿Qué función tiene el modificador protected?
Puede usarse en la herencia, pero no fuera, a menos que esté dentro del mismo paquete. Con protected se puede usar desde: - Dentro de la misma clase - Dentro del mismo paquete, tanto clases heredadas como clases no heredadas - En distinto paquetes, únicamente en clases heredadas En cambio, no hay acceso a clases no heredadas y en distintos paquetes.
37
¿Qué función tiene el modificador public?
Se puede usar desde cualquier sitio, dentro o fuera de la clase, dentro o fuera del paquete.
38
¿Qué función tiene el modificador private?
El atributo o método solo se puede usar en el ámbito de la clase, dentro de la clase.
39
¿Qué función tiene el modificador abstract?
Indicar que una clase o un método es abstracto y por lo tanto, no lleva codificación. Si una clase tiene un método abstracto, la clase tiene que ser abstracta. El caso de uso es que no sabemos implementar un método en una clase, pero sí que esa clase debe tenerlo, ya que va a ser sobrescrito más tarde en las clases hijas, dado que en ellas ya sí que lo sabremos implementar. Una clase abstracta, es como una clase intermedia entre un interface y unas clases más concretas. Una clase abstracta no puede instanciarse. Anotación: @Override. La diferencia entre clases abstractas con interface es que las clases abstractas sí llevan atributos y los interface no.
40
¿Qué función tiene el modificador static?
Definir que un método no está asociado a ninguna instancia, sino que es “global”, pertenecen a la clase.
41
¿Qué función tiene el modificador default?
(en realidad es no poner nada): visibilidad por defecto a nivel paquete. Tendrán acceso a los métodos siempre que estén en el mismo paquete
42
¿Qué es un interface?
Es una definición funcional pura, sin código, que se implementa en las clases para que éstas cumplan con ese comportamiento NOTA: a partir de java8+ existen métodos default y static con código en los interface.
43
¿Qué es el API de JAVA?
El API de JAVA es el conjunto de todas las clases que ya están hechas. Todas están en el rt.jar (RunTime.jar)
44
¿En qué consiste el API de JAVA Java Collection?
Es un conjunto de interfaces y clases que proporcionan estructuras de datos y algoritmos para manejar grupos de objetos. Está dentro de Java.Util.
45
¿Qué interfaces heredan del interface Collection?
Del interface Collection heredan los interface: - Interface List - Interface Queue (de Queue hereda el interface Deque) - Interface Set (de Set hereda el interface SortedSet) A su vez el interface Collection hereda del interface Iterable
46
¿Qué clases implementan el interface List?
Las clases que implementan el interface List, son: - Clase ArrayList - Clase LinkedList: doblemente enlazada (lista, doble cola). - Clase Vector La clase Stack hereda de la clase Vector
47
¿Qué otro tipo de colecciones existen?
El interface Map, que no hereda ni del interface Iterable ni del interface Collection Del interface Map hereda SortedMap. El interface Map es implementado por las clases: - Hashtable - LinkedHashMap - Hashmap Y por la clase Tree, que implementa el interface SortedMap.
48
¿Cuál el método más importante del interface iterable?
Con el método iterator() con el que podemos recorrer cualquier tipo de colección. Está tan arriba en la jerarquía para que a la hora de recorrer colecciones no dependamos nunca del tipo de colección (polimorfismo).
49
¿Qué 3 maneras hay de obtener tamaños en java?
- todo lo que son clases que implementan collection tienen el método size(), con paréntesis - la property length en los atributos y sin paréntesis, en los arrays primitivos [] (corchetes) - método lenght(), con paréntesis, en las cadenas
50
Métodos importantes del interface Collection
- add() - isEmpty() - remove() - size()
51
¿Puede un interface implementar a otro?
No. Únicamente puede heredarlo (amplía las funciones), pero nunca puede implementar un interface a otro interface.
52
¿Qué es una lista en java?
Es una colección ordenada llamada también secuencia. A diferencia de los conjuntos, las listas tipicamente permiten duplicados. Métodos importantes del interface List: - get (int index) - add (E e) - add (int index, E element)
53
¿Qué es una cola en java?
Un tipo de colección en el que los elementos entran por un sitio y salen por otro. Interface Queue con los siguientes métodos: - peek () : recupera el primero pero no lo elimina (retorna y no elimina) - poll () : recupera el primero y lo elimina (retorna y elimina)
53
Librería para manejar (leer, escribir,...) ficheros de Office (Word, Power Point, Excell,...)
Librería de APACHE POI
54
Librería con funciones de criptografía
Librería de JAVA BouncyCastle
55
¿Qué son las excepciones en java?
Son clases que sirven para comunicar situaciones/estados. Existen predefinidas y podemos definir las nuestras propias.
56
¿Cuál es la clase padre de todas las excepciones?
Throwable
57
¿Qué clases hijas tiene Throwable?
Clase error y clase exception
58
¿Qué diferencia hay entre la clase error y la clase exception?
En la clase error no hay que capturar y en la clase exception sí, dado que nos interesa información
59
¿Cómo se conoce a las clases que son hijas directas de exception?
checked exception
60
¿Cuál es la palabra reservada para lanzar una excepción?
throw
61
¿A qué nos obliga java cuando lanzamos con throw una excepción en una clase que hereda de exception (checked)?
Nos obliga a declarar la excepción con throws en el método, y a la vez, al llamar desde otra parte del código a un método con esa declaración throws, nos obliga a utilizar una sentencia de control try{} catch{} (trata el error) finally{} (código que se ejecuta tanto si falla como si no) Ej: - public class NegocioException extends Exception {} (clase creada por nosotros que hereda de Exception) public void metodo_negocio () throws NegocioException { (con throws se indica que se pueden dar excepciones, y se obliga a utilizar try{} catch{} finally{} cuando se llame a éste método que tiene "throws") throw new NegocioException ("no se puede no se que..."); (se lanza la excepción) }
62
¿Qué es RunTimeException?
Es una clase hija de Exception. Todas clases que heredan de RunTimeException se conocen como unchecked, por eso no obliga ni a declarar con throws ni a utilizar try{}, catch{}, finally{}
63
¿Cuál es una clase famosa que hereda de RunTimeException?
NullPointerException
64
Utilidad de la herramienta de java Gradle
Herramienta de automatización de la construcción de aplicaciones JAVA. Características: - Gestión de dependencias - Compilación - Empaquetar (war, ear, jar) - Ejecutar test unitarios/integración (ej. JUnit) - etc
65
Librería de java que utilizan los indexadores de logs ElasticSearch y SOLR
Apache LUCENE
66
En qué consiste la serialización en JAVA
En convertir el estado de un objeto en una secuencia de bytes para que el estado de un objeto sea guardado en un archivo para poder ser cargado más tarde, para enviar objetos por la red, por ejemplo en cliente-servidor o crear una copia exacta o un clon de un objeto, incluido su estado interno
67
Qué dos formas existen de crear hilos de ejecución en JAVA
1. Heredando de la clase Threads y sobreescribiendo el método run(); 2. Implementando del interface Runnable y codificando, también, el método run();
68
Qué método es para lanzar el hilo
Método start(); La máquina virtual de JAVA lanza un nuevo hilo contra el método run(); (sobreescrito)
69
Con qué métodos sobre un objeto, bloqueamos y desbloqueamos a un hilo sobre él
Con wait(); y con notify(); Son métodos de la clase object y esas llamadas funcionan si las hacemos en un synchronized que afecte al objeto
70
Clases del paquete java.net
- socket : clase para hacer programas java tcp (IP y puerto). Es la parte de escucha. - serversocket : para hacer programas java tcp (IP y puerto). Es la parte que abre la conexión.
71
Interfaces importantes del paquete Java.sql
- driver (Interface) : para conectarse con el servidor de base de datos de turno - connection (interface) : objeto que representa el establecimiento de conexión y que permite crear consultas, etc - statement (interface) : crear sentencias - resultSet/resultSetMetadata (interfaces)
72
Interfaces del paquete Javax.sql
Javax.sql : proporciona la API (Interfaz de Programación de Aplicaciones) para el acceso y procesamiento de datos en el lado del servidor - datasource (interface) : idea de diseño internamente con la que se maneja un pool de conexiones, que es un conjunto finito de pocas conexiones
73
Qué función tienen las clases dateFormat y simpleDateFormat y a qué paquete corresponden
Corresponden al paquete Java.text, y sirven para pasar una cadena a objeto fecha, y al revés. Métodos: parse(string); -> nos devuelve objeto fecha (date) formta(date); -> nos devuelve objeto cadena (string)
74
Clases del paquete Java.util
- calendar - timer/timerTask : planificar tareas - scanner : permite leer datos de diferentes fuentes de entrada - stringTokenizer : dividir una cadena de texto en una serie de "tokens" o subcadenas con caracteres delimitadores - UUID : clase para generar números únicos o identificaores únicos
75
Qué paquete de registro estándar de Java, proporciona una API para que las aplicaciones registren mensajes de eventos, como errores o información de depuración, permitiendo la monitorización y el diagnóstico del comportamiento de la aplicación
Java.util.logging
76
¿Cual es el paquete estandar de JAVA para operaciones e/s?
java.io permite a un programa interactuar con fuentes externas como archivos, redes o la consola Clases: - inputStreams/reader (clases) - outputStreams/writer (clases) - console/file (clases) - serializable (interface) - closeable (interface) con método close();
77
Qué es java.nio
Es un paquete como java.io pero con operaciones e/s más eficientes que el clásico java.io - filechanel (clase) - file (clase) - fileSystem (clase)
78
En qué consiste un constructor
Un constructor es un método que crea un objeto y lo inicializa en el momento de creación. Tienen el mismo nombre que la clase. Es una facilidad de inicialización.
79
Para qué sirven las palabras reservadas break y continue en JAVA
Se utilizan para gestión de bucles break: salir del bucle continue: interrumpe la iteración actual y saltamos/comenzamos con la siguiente iteración
80
¿Qué es Pojo?
("Plain Old Java Object") Es una clase simple que agrupa propiedades (atributos) y proporciona métodos "getter" y "setter" para acceder a ellas, pero no contiene lógica de negocio compleja
81
Librería de terceros o framework para peticiones HTTP a bajo nivel
Apache HttpComponents (HttpClient) (En Java 11 ya existe un equivalente en java.net.http.HttpClient)
82
Librerías de terceros o frameworks para convertir objetos Java en formato JSON y al revés
Gson y Jackson
83
¿Qué framework de desarrollo web de Java implementa el patrón de diseño Modelo-Vista-Controlador para crear aplicaciones web y APIs RESTful?
**Sping MVC** (Modelo-Vista-Controlador) Es quizás el framework web más utilizado en el mundo Java.
84
Librería para la gestión de registros (logging) en aplicaciones Java
Log4j (Apache)
85
Framework de logging de código abierto para aplicaciones Java
Logback
86
API de registro para Java que actúa como una fachada, es decir, como una interfaz que abstrae diferentes frameworks de logging como Logback, Log4j o java.util.logging
SLF4J
87
Colección de librerías criptográficas de código abierto para Java y C#
BouncyCastle
88
Librerías para la generación de PDFs
iText, PDFBox
89
Herramientas para pruebas unitarias (verificar unidades de código pequeñas e individuales) en Java
JUnit y Mockito
90
Herramienta para pruebas de carga y rendimiento de aplicaciones web y servicios
JMeter
91
Biblioteca de código abierto en Java que permite a los desarrolladores leer, escribir y modificar formatos de archivo de Microsoft Office como Excel, Word y PowerPoint
Apache POI
92
Kit de herramientas de código abierto para detectar y extraer metadatos y texto de una amplia variedad de tipos de archivos
Apache Tika
93
Herramienta gratuita y de código abierto para la extracción, transformación y carga de datos (ETL)
Pentaho Kettle (ETL significa Extracción, Transformación y Carga)
94
Biblioteca de Java que ayuda a los desarrolladores a reducir el código repetitivo (o "boilerplate") utilizando anotaciones (como getters, setters, constructores, equal, hash, toString, etc) para generar automáticamente métodos comunes en tiempo de compilación
**Project Lombok** Al poner anotaciones @Getter, @Setter, @Data, los desarrolladores no tienen que escribir manualmente métodos como getters, setters, construcciones como equals(), hashCode(), toString(), etc, lo que hace que el código sea más limpio, legible y mantenible
95
Frameworks o librerías que son Parsers XML y Procesors XSL.
- Xerces - Xalan - Woodstox - Apache FOP
96
En Java, ¿existen anotaciones predefinidas y personalizadas?
Sí, en Java existen tanto anotaciones predefinidas por el lenguaje como la posibilidad de que los desarrolladores creen sus propias anotaciones personalizadas. - Predefinidas: @Override, @Deprecated y @SuppressWarnings - Personalizadas: se crean usando la sintaxis @interface. Ej: public @interface MiAnotacion { // Definir elementos de la anotación (métodos) String valor(); int cantidad(); }
97
¿Puede haber código en un interface?
A partir de Java 8, con los métodos default, que pertenecen a la instancia de una clase y proporcionan una implementación por defecto dentro de una interfaz, permitiendo agregar nueva funcionalidad sin romper la compatibilidad, y los métodos static, en cambio, pertenecen a la clase en sí, no a sus instancias, y se pueden llamar directamente sin crear un objeto.
98
Diferencias entre Private, Default y Protected
La diferencia principal es el alcance de visibilidad: private solo es accesible dentro de la misma clase, default (o package-private) es accesible dentro del mismo paquete, y protected es accesible dentro del mismo paquete y por clases que heredan de ella (incluso si están en un paquete diferente)
99
Diferencias entre los interfaces Driver y Connection
La diferencia principal es que el Driver es una clase que implementa el API de JDBC, mientras que la Connection es una interfaz que representa la sesión entre la aplicación y la base de datos, y es creada por el Driver. En resumen, el Driver se encarga de la conexión de bajo nivel con el motor de base de datos específico, mientras que la interfaz Connection proporciona la interfaz de alto nivel para interactuar con esa sesión.
100
En qué consiste el interfaz Datasource
Un DataSource en Java es una interfaz de JDBC que representa una fuente de datos (como una base de datos) y actúa como una fábrica para crear conexiones a ella. Su principal ventaja es que generalmente se conecta a un pool de conexiones, lo que significa que las conexiones no se crean y destruyen constantemente, sino que se reutilizan para mejorar el rendimiento de la aplicación.
101
En qué consiste el interface Closeable
Closeable es una interfaz que representa una fuente o destino de datos que se puede cerrar para liberar recursos del sistema, como archivos o conexiones de red. Su método principal es close()
102
Qué es WSIMPORT
Generación automática de clases necesarias a partir de un WSDL (Web Service Description Language)
103
Qué es jarsigner
Herramienta de línea de comandos para firmar archivos .jar y verificar firmas de archivos .jar
104
Qué es keytools
Herramienta o utilidad de línea de comandos esencial para gestionar claves criptográficas y certificados, permitiendo generar certificados tls, importar/exportar certificados, crear almacenes (keystore), etc
105
Qué es xjc
XML to JAVA COMPILER. Utilidad de la JVK de Java y que forma parte de la JAXB (Java Architecture for XML Binding) automáticamente clases compiladas de java a partir de un esquema XML (XSD)
106
Qué es jbc
JDB (Java Debugger). Depurador de java incluido en la JDK
107
Qué es javap
Utilidad para desemsamblar ficheros .class
108
Qué es jmc y jconsole
Herramientas para la monitorización de la JVM
109
Librería de terceros para generar PDFs
itext (itext.jar)
110
Librería de terceros para criptografía
BouncyCastle
111
Librería de terceros para loggin
- Log4j - LogBack - SLF4J
112
Librería de terceros para manejo de documentos office
Apache POI
113
Librería de terceros para parses XML y Procesors XSL
- Xerces - Xalan - Woodstox - Fop
114
Alcance de los modificadores public, private, default y protected
- Public : desde la propia clase, desde el propio paquete, desde distintos paquetes - Private : sólo desde la propia clase - Default : desde la propia clase y desde el propio paquete - Protected : desde la propia clase, desde el propio paquete y desde otros paquetes si son clases hijas
115
116
Throw y Throws
con throw (dentro del método) sólo, se para la ejecución del programa en el momento en que ocurra la excepción, ya que no se captura, pero con try catch, se captura la excepción en el momento de ocurrir, y el resto de mi programa sigue ejecutándose con throws (desde donde se llama al método) java te obliga a utilizar try catch finally si heredas de Exception, si heredas de RunTimeException (que a su vez hereda de Exception) no te obliga
117
Diferencia entre Callable y Runnable
La diferencia es que Callable puede devolver un resultado y lanzar excepciones comprobadas (checked exceptions) a través de su método call(), mientras que Runnable no devuelve nada y no permite excepciones comprobadas en su método run(). Callable se usa con ExecutorService para obtener un Future, ideal para tareas con retorno de valor
118
Estándar de alto nivel en Java para convertir automáticamente objetos Java a/desde JSON (serialización/deserialización)
JSON-B (Binding)
119
API de Java de bajo nivel para generar, analizar y manipular datos JSON directamente
JSON-P (Processing)
120
Diferencia entre JSON-B y JSON-P
**JSON-B** (Jakarta JSON Binding): facilita la conversión automática entre objetos Java (POJOs) y documentos JSON, ideal para trabajar con datos estructurados y tipados en Java. **JSON-P** (Jakarta JSON Processing): sirve para procesar, parsear y manipular documentos JSON sin necesidad de mapearlos a objetos Java, permitiendo un manejo más fino del documento.