Java Javita Flashcards

1
Q

Compiladores

A

-javac
-xjc (compilador que genera clases java a partir de un XSD)
-rmic (compilador que genera clases java, stubs en cliente y skeletons en servidor, para su comunicación C/s en programación distribuida)

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

Intérpretes

A

-java
-jshell: intérprete REPL (ReadEvaluatePrintLoop) de comandos interactivo. A partir de Java 9

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

javadoc

A

Generación de documentación html a partir de las fuentes

NOTA: Los comentarios de javadoc empiezan por /**
NOTA: Dentro de los comentario podemos usar ciertos “metadatos” ej. @see @since @author…

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

jar

A

Empaquetar clases compiladas

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

jarsigner

A

Firmar y verificar ficheros jar

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

wsimport

A

Generación de clases automáticas para los clientes de web services de tipo SOAP

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

rmiregistry

A

Servicio de nombres para registrar objetos distribuidos

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

javap

A

Desamblador de ficheros .class

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

jdb

A

Depurador

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

jdeps

A

Analizador de dependencias, clases o paquetes

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

jmc y jconsole

A

Herramienta de monitorización de la JVMb

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

Relación entre una clase y un interface

A

Es una relacion de implementación (mediante la palabra reservada implements)

    NOTA: Una clase puede implementar varios interfaces
    NOTA: Un interface "funciona" como un tipo
    NOTA: Un interface es un contrato funcional que debe de cumplir la clase
    NOTA: Un interface puede extender a otro interface (mediante la palabra reservada extends)
    NOTA: Un interface (java8+) puede tener métodos CON CODIGO (default y static)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Uso de palabra reservada final y static

A

a) final
- En una clase: impedir que se pueda heredar de dicha clase
- En un atributo: no puede modificarse
- En un metodo: aquel que no se puede sobrescribir en las posibles clases hijas

    b) static --> Tanto en atributos como en métodos sirve para definir miembros que pertenecen a la "Clase"
        NOTA: Para poderlos "usar" no hace falta instanciar ningún objeto (sintaxis: NombreClase.metodo(...))
        NOTA: En una Clase tú puedes tener miembros estáticos y no estáticos (de instancia)
        NOTA: En un metodo static de una clase no puede usar/acceder/ver atributo no-estáticos
    NOTA: el uso de final + static en Java nos sirve para definir constantes
        (ej. static final int PI=3141592...)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Modificador de acceso “protected”…clases que pueden acceder a dichos miembros

A
  • Desde la propia clase
    * Desde los hijos de la clase (estén donde estén a nivel de paquetes)
    * Desde cualquier clase del mismo paquete
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Podemos añadir texto a un objeto de la clase String?

A

Nop, porque los objetos de la clase String son “inmutables”
NOTA: Las cadenas variables serian StringBuffer y StringBuilder

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

Uso de palabra reservada synchronized

A

En un método lo que provoca es que los distintos hilos de ejecución entren de 1 en 1
NOTA: A esto se le llama thread-safe

17
Q

Diferencias entre una Hashtable y un ArrayList

A

Hashtable es un tipo de “Map” (aqui los objetos se “colocan” en función de una clave)
ArrayList es un tipo de “List” (aquí los objetos tienen un índice dentro de la secuencia/conjunto)

18
Q

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

A

Throwable

19
Q

Nombre dos librerías para generar ficheros de log

A

log4j y logback
NOTA: slf4j es una “fachada” para no depender de ningún fabricante concreto

20
Q

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

A

Es una anotación y nos sirve para decirle al compilador que estamos intentando sobrescribir un método de nuestra clase/Interface Padre. No es obligatorio ponerla para hacer dicha sobreescritura

21
Q

¿Cuál es la herramienta para empaquetar los ficheros resultantes de la compilación?

A

jar
NOTA: A partir de java9 existen otros ficheros de empaquetado físico que son los modules (.jmod)
NOTA: Otros “jar” más específicos serían los .war o .ear (tienen que ver con Jakarta EE)
NOTA: un jar físicamente es un zip

22
Q

¿Cómo podemos obtener la fecha y hora actual a partir de JDK1.8?

A

ANTES: GregorianCalendar.getInstance().getTime() –> objeto de java.util.Date
HOY (jdk1.8+): LocalDate.now() –> objeto de java.time.LocalDate

23
Q

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

A

Statement representa una sentencia SQL SIN parámetros ni precompilación
PreparedStatement representa una sentencia SQL CON parámetros y precompiladas

NOTA: Otro detalle importante de que se “precompilen” es evitar los ataques de SQL Injection

24
Q

¿Cuál es la utilidad de interface Iterable?

A

Acceder al objeto “iterador” de cualquier colección y así poder recorrerla de forma “genérica”

25
Q

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

A

Metodo peek()

26
Q

Utilidad del bloque “finally”

A

Después de un try/catch el bloque finally se ejecutará SIEMPRE (tanto si hubo excepción, como si no)

27
Q

Nombre el método que sirve para lanzar un hilo

A

Metodo start() de la clase java.lang.Thread
NOTA: El método run() solo representa el cuerpo del hilo
NOTA: Flujo
1) Creo una clase que herede de Thread y sobreescriba run()
2) Creo un objeto de esa clase con new
3) Llamo al método start() sobre ese objeto

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

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

A

Método equals(Object o) –> boolean
Método toString() –> String

29
Q

Utilidad de la herramienta Apache Maven

A

Es una herramienta Java para ayudarnos a la automatización de la construcción de proyectos Java
a) Descargar las libreras de terceros que queremos usar en nuestro proyecto (gestión de dependencias)
b) Compilar nuestras clases
c) Ejecuta los posibles test unitarios/integración que se hubieran programada (ej. con JUnit)
d) Empaquetar nuestras clases en ficheros .jar / .war o .ear (segun le digamos)

Toda esa info de configuración de tu proyecto se especifica en un fichero llamado pom.xml

NOTA: Antes de Maven se usaba otra herramienta Apache Ant que no tiene nada que ver
NOTA: Competidores de Maven –> Gradle

30
Q

Utilidad del interface java.io.Closeable

A

Es un interface que proporciona el método close() para que lo implemente todo tipo de clases (sobre todo las que tienen que ver con e/s, bbdd, …)

    En la jdk1.7 se inventó un nuevo try/catch llamado try-catch-with-resources