Herramientas del JDK (conjunto de utilidades)
¿Como se ponen comentarios para documentar? (Javadoc)
Con /**
(Con /* sólo es para comentar en java)
Metadatos de Javadoc
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.
En qué consiste el JIT (just-in-time) compiler
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
¿Qué se almacena en la Pila (Java Stack) de la máquina virtual Java?
(Stack como estructura de datos)
¿Qué es el Heap dentro de la máquina virtual Java?
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.
Sintaxis de llamada a métodos sobre un objeto
objeto.metodo(parámetro);
¿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?
CLASSPATH
Se manejan 3 “classpath” en realidad:
De qué está formado el JRE
JRE=intérprete (maquina virtual Java (JVM)) + librerías de clases BASE (rt.jar)
¿Donde está el fichero Manifest.mf?
Está dentro del .jar, además de las clases que pueda haber, en un directorio llamado /META-INF/Manifest.mf
¿Cuál es el equivalente a los procesos de Linux dentro de la maquina virtual de java?
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
¿Cuál es un ejemplo importante de Threads predefinidos?
El Recolector de Basura (GC) que borra objetos de no referenciado automáticamente
Cuales son los tipos de datos primitivos de JAVA
Byte, short, int, long, float, double, boolean, char
Cuales son los tipos de datos objeto de JAVA
Son referencias o punteros. Variables que apuntan a zonas de memoria.
En qué consiste la sobrecarga
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)
Elementos de programación básicos dentro de Clases
Los arrays primitivos copian los valores al asignarse, mientras que los arrays de referencia comparten el mismo objeto en la memoria
¿Para qué sirven los paquetes?
Para organizar lógicamente las clases
¿Se tienen que importar todas las clases que no están en tu paquete?
Si. Menos las clases que estén dentro de java.lang, dado que se importan automáticamente (ejemplo: string)
Para qué una clase se pueda utilizar desde otros paquetes con qué modificador hay que ponerlas
Con public
¿Qué se indica en el método para que no devuelva nada?
Void
Cuando se hace una herencia con extends, ¿qué se hereda de la clase heredada?
Atributos y métodos, aunque no esté visualmente en la clase hija, simplemente los nuevos métodos que la entienden en ella
¿Cuándo se utiliza el modificador static?
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.
Diferencia entre métodos no estáticos y estáticos
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.
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).
¿Qué dos tipos de sobreescritura de métodos (del padre) existen?