Java Flashcards

(47 cards)

1
Q

Conjunto de herramientas y librerías necesarias para ejecutar programas escritos en Java, pero no para desarrollarlos.

A

Java Runtime Environment (Entorno de Ejecución de Java)

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

Arquitectura de JRE (Java Runtime Environment)

De que se compone?

A
  • Class loader: Programa, que sirve para cargar los ficheros .class del disco duro y cargarlos en la memoria
  • Method área: Zona de memoria reservada a los métodos
  • Operating Systtem: Sistema operativo
  • JIT compiler: Sirve para traducir todo el bytecode a código nativo internamente.
  • PC register: Registros
  • JAVA Stack: zona de la memoria muy importante, se almacena en el contexto de llamadas a funciones se almacenan las variables, los parámetros de entrada antes de llamar a la función que tiene que estar almacenado (lo almacena el intérprete) y también se almacena la dirección de retorno de la función a la que vamos a llamar (siguiente función *)
  • Heap: 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
3
Q

Que es un objeto en Java y que contiene

A

En Java, un objeto es una instancia de una clase, es decir, algo creado a partir de un molde (la clase) y que contiene:

  • Atributos → datos (estado). Mas atributos mayor tamaño de objeto en función de su clase
  • Métodos → acciones (comportamiento)

Una clase es el molde.
Un objeto es el producto del molde.

Clase: Coche (describe cómo puede ser un coche)

Objeto: un coche específico (con color, marca, etc.)

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

Que es un JIT compiler (Just-In-Time Compiler)

A

Es una parte de la JVM (Java Virtual Machine) que convierte el bytecode de Java en código máquina nativo justo en el momento en que se va a ejecutar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  • Construcción JDK (Java Development Kit) Conjunto de utilidades como el compilador, depurador, generación de código… Nombra 15 de ellas. Desarrollador
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cuáles son los comentarios de Java.doc (documento) y sus tags (etiquetas)

A

Serían los que empiezan por /**

@param: parámetro de un método o constructo

@throws/@exception: Indica qué excepción puede lanzar un método

@since: Indica desde qué versión del código o librería existe el elemento documentado.

@autor: Indica el autor del código o clase.

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

Nombra los 7 tipos de ficheros en Java y sus ejemplos

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

Ejecución (JRE Java runtime enviroment) Como esta compuesto?

A

Interprete (máquina virtual java) + librerías de clases BASE (rt.jar) (Típica librería de clases que viene predefinida)

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

Para que sirve la variable de entorno llamada CLASSPATH

A

Sirve a la máquina virtual para localizar y cargar clases

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

Nombra el hilo predefinido que hemos visto en clase

A

GC (recolector de basura): liberar automáticamente la memoria ocupada por objetos que ya no se están usando

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

Java es un lenguaje orientado a objetos, cuales son los conceptos mas importantes

A

Clase

Objeto/encapsulación

Herencia: Un mecanismo de extensión, de especialización. No todas las clases son distintas, se pueden parecer a nivel conceptual, pero tiene un comportamiento un poco diferente

Sobrecarga (overloading): es una característica que permite tener varios métodos con el mismo nombre, siempre que cambien sus parámetros

Polimorfismo: es uno de los pilares de la programación orientada a objetos.
Significa, literalmente, “muchas formas”: que un mismo objeto o método puede comportarse de distintas maneras según el contexto.

Interface: es una lista de métodos (y constantes) que una clase debe cumplir. No describe cómo se hacen las cosas, solo qué se debe poder hacer.

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

En cuanto a los tipos de datos en Java, los objetos que tipos tiene

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

Nombra 8 tipos de datos primitivos

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

Al sobreuso de atributos (datos) en una clase se le llama…

A

Anemic domain model (Martin Fowler)

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

Cual es la diferencia entre una clase y un interface

A

El interface no tiene código

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

En Java, extends e implements se usan para herencia y para interfaces, pero NO significan lo mismo, cuando se usa cada una?

A

Extends:

  • Se usa cuando una clase hereda de otra clase. “Soy una subclase de…”
  • También se usa cuando una interfaz hereda de otra interfaz. “Estoy ampliando la funcionalidad de…”

Implements:

  • Se usa cuando una clase implementa una o varias interfaces. “Prometo cumplir el contrato de la interfaz y escribir sus métodos.”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Que es Abstract y para que se usa

A

En Java, abstract es una palabra clave que se usa para crear clases abstractas y métodos abstractos.
Sirve para definir conceptos incompletos que deben ser completados por las subclases.

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

Cuando ponemos la palabra reservada final, que impide

A

La palabra reservada “final” impide la sobreescritura y los hijos en un método

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

Para que se utiliza la palabra reservada native

A

La palabra reservada native se usa para indicar que un método está escrito en un lenguaje no Java, normalmente C o C++, y que pertenece a código nativo del sistema operativo.

Es decir, se declara en Java, pero su implementación real NO está en Java, sino en una librería externa

20
Q

Para que se utiliza la palabra reservada static

A

Indica que algo pertenece a la clase, no a los objetos.
Es decir, un miembro static existe aunque no se cree ningún objeto, y es compartido por todas las instancias.

👉 static = algo global dentro de la clase

Cuando declaras algo como static:

  • No pertenece a cada objeto, sino a la clase en sí
  • Se puede acceder sin crear objetos
  • Solo existe una única copia en memoria
21
Q

Para que se usa la palabra reservada transient

A

Se usa para indicar que un atributo NO debe ser serializado (La serialización es el proceso de convertir un objeto en una secuencia de bytes para Guardarlo en un fichero, Enviarlo por red, Mantener su estado. Cuando el objeto se “reconstruye”, se hace mediante deserialización.)

Es decir, cuando un objeto se guarda en un archivo, se envía por red o se convierte en bytes, los campos marcados como transient no se guardan.

22
Q

Para que se utiliza la palabra reservada “synchronized”

A

La palabra reservada synchronized en Java se usa para controlar el acceso concurrente a un método o a un bloque de código.

Sirve para evitar que dos o más hilos (threads) accedan al mismo recurso al mismo tiempo, lo cual puede generar errores, inconsistencias o corrupción de datos.

23
Q

Que son los modificadores de acceso y cuales son los 4 principales

24
Q

7 Elementos de programación Java basicos

A
  • Clases: Atributos de datos, métodos y atributos de relación. Suelen empezar por mayúscula.
  • Paquetes: Agrupación de clases.
  • Modules: técnica de agrupación por encima de los paquetes.
  • Interfaces: definición funcional pura, sin código (a partir de java8+ existen métodos default y static con código)
  • Enum: valores enumerados.
  • Anotaciones: usados para configurar el código. Metainformación.
  • Record: usado para almacenar valores y agruparlos en un único identificador. Implementación del patrón DAO. Desde la JDK 14 y estable desde la 17.
25
Nombra los 11 modificadores principales
26
Que son las sentencias de control y que tipos hay
Sentencias de control son estructuras que permiten decidir qué instrucciones ejecutar y repetir código según ciertas condiciones. Se dividen en tres tipos principales: - Condicionales: if, else, switch → tomar decisiones - Bucles: for, while, do-while → repetir instrucciones - Saltos: break, continue, return → controlar flujo dentro de bucles o métodos
27
API de java. Colections, menciona los nombres mas importantes
- Interface Iterable: Interface padre, sobre una collecion de objetos yo quiero iterar (repetir). Es simplemente. - Interface Collection: Listas y conjuntos a nivel muy muy alto tengan algo común que estará en interface collection. Es la raíz de las jerarquías de las colecciones (Padre de todas las colecciones). - Interface List: Hereda de collection, es una colección ordenada también llamada secuencia. Las listas permiten duplicados - Interface Queve (Cola): Son unos elementos que entran por un sitio y salen por otro FIFO (first-in – first-out) Metodos especiales - Interface SET (E) Conjunto): Una colección que no contiene elementos duplicados. Métodos especiales - Interface MAP: es un objeto que mapea, hace corresponder una determinada clave con un valor.
28
En relación con Interface MAP, que es Hashtable y Hashmap
Son clases que implementan la interfaz Map, es decir, almacenan pares clave-valor. Pero tienen diferencias importantes en comportamiento y uso: - Hashmap: Introducida en JDK 1.2. No sincronizada → no es segura para hilos sin ayuda externa (Collections.synchronizedMap). Permite una clave nula y muchos valores nulos. Más rápida que Hashtable. - Hashtable: Forma parte de java.util desde JDK 1.0 (antigua). Sincronizada → es thread-safe (segura para hilos). No permite claves ni valores nulos (null). Más lenta que HashMap debido a la sincronización.
29
En cuanto a las excepciones (problemas que pueden ocurrir durante la ejecución del programa y que normalmente pueden manejarse para evitar que el programa termine abruptamente) que tipos hay
- Checked (verificadas): Deben ser declaradas o capturadas usando throws o try-catch. Ejemplos: IOException, SQLException, FileNotFoundException. Unchecked: No requieren declaración ni captura obligatoria. Se producen generalmente por errores de programación. Ejemplos: NullPointerException (surje cuando tu en un programa Java, hay un objeto que no esta inicializado), ArithmeticException, ArrayIndexOutOfBoundsException.
30
Los errores son problemas graves de la JVM (Java Virtual Machine) que normalmente no se pueden manejar. que representan?
Representan situaciones fuera del control del programa. Ejemplos: OutOfMemoryError, StackOverflowError (Hago un bucle infinito y de repente me quedo sin stack (pila)) No se recomienda capturarlos con try-catch salvo casos muy específicos
31
LENGUAJE JAVA – APIs – Clases y paquetes importantes Nombra las 17 clases y paquetes mas importantes del API de java
32
Para que sirven los bucles en Java?
Los bucles en Java sirven para repetir un bloque de código varias veces, ya sea: - Un número determinado de veces - Mientras se cumpla una condición - Para recorrer colecciones o arreglos Son fundamentales para automatizar tareas repetitivas.
33
Que queremos de decir con Casting, hay dos tipos
Se usa cuando quieres tratar un valor o un objeto como si fuera de otro tipo compatible Hay dos grandes tipos: 🔢 Casting entre tipos primitivos 🧩 Casting entre objetos (herencia)
34
Que es un atributo de relación?
(en Java y en modelado orientado a objetos) es un atributo cuya finalidad es representar la relación entre una clase y otra
35
Método especial que se utiliza para crear e inicializar objetos de una clase
Constructor
36
Para que usamos la palabra volatile en java?
Se usa en programación concurrente (multihilos) para garantizar visibilidad de cambios de una variable entre distintos hilos
37
Siempre se implementan las interfaces en las clases?
Sí, siempre se implementan interfaces en clases, porque las interfaces definen un contrato que las clases deben cumplir
38
Que significa la declaración static final?
Define constantes globales de clase, muy usado dentro de .class o .jar. Valores fijos, compartidos por todos los objetos de la clase, que se pueden usar en cualquier lugar del programa sin crear una instancia
39
Diferencia entre .class y .jar
40
Cual es la superclase de los errores y las excepciones
Throwable
41
Que son las excepciones en Java
Las excepciones en java valen para comunicar informacion, situaciones, estados.
42
Que es el error Class stackoverflowerror (error)
Hago un bucle infinito y de repente me quedo sin stack (pila)
43
Que clase utilizamos para definir la ejecucion del codigo
Thread
44
Que API se utiliza en Java para la persistencia de bajo nivel
JDBC (Java Database Connectivity): Sirve para guardar, recuperar y borrar información de la BBDD relacional. Trabaja directamente con SQL (tablas directamente)
45
Que API se utiliza en Java para la persistencia de alto nivel
JPA (Java Persistence API): Es una capa de abstracción sobre JDBC, rabaja con objetos Java (entidades) en lugar de tablas directamente
46
Objetos DataSource y Driver en JPA y JDBC
- DataSource: crea X conexiones a BD según arranca y establece un límite (alias = pool de conexiones) - Driver: hay un .jar para que cada fabricante implementa
47
Que son las interfaces Statement / PreparedStatement / CallableStatement y ResultSet en JDBC/JPA