Java Flashcards

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
  • keytool: criptografía
  • wsimport: generación de clases automáticas para los clientes de web service de tipo SOAP (para hacer o consumir webservice)
  • xjc: compilador que genera clases a partir de un XSD
  • javap: desensamblador de ficheros .class
  • jdb: depurador
  • jmc 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
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

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 usen en tu programa y que no sean las tuyas ni las del fichero rt.jar?

A

CLASSPATH

Se manejan 3 “classpath” en realidad:
- variable de entorno CLASSPATH
- como property que se establece cuando se lanza el programa:
Java -classpath /…/…/lib.jar
- en el fichero Manifest.mf existe un “campo” llamado Class-Path:ruta(s) (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=interprete(maquina virtual Java) + 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

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

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
  • Métodos
  • Atributos de relación
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.

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).

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.
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: es una interface, un procedimiento para solo poder acceder a los atributos mediante los métodos.
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 que Java no guarde un objeto de memoria a disco o mandarlo por la red. No serialización.
34
¿Qué función tiene el modificador volatile?
Indicar al hilo que el valor de la variable local debe buscarlo en memoria principal, no en su caché, para evitar inconsistencias.
35
¿Qué función tiene el modificador native?
Definir un método que no va a definirse en Java, sino en otro lenguaje.
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.
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?
- peek () : recupera el primero pero no lo elimina (retorna y no elimina) - poll () : recupera el primero y lo elimina (retorna y elimina)
53