Java Flashcards
Herramientas del JDK (conjunto de utilidades)
- 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
¿Como se ponen comentarios para documentar? (Javadoc)
Con /**
(Con /* sólo es para comentar en java)
Metadatos de Javadoc
- @throws
- @param
- @since
- @author
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
¿Qué se almacena en la Pila (Java Stack) de la máquina virtual Java?
- 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)
¿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
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 usen en tu programa y que no sean las tuyas ni las del fichero rt.jar?
CLASSPATH
Se puede indicar:
- 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)
De qué está formado el JRE
JRE=interprete(maquina virtual Java) + librerías de clases BASE (rt.jar)
¿Donde está el fichero Manifest.mf?
Dentro del .jar, en un directorio llamado /META-INF/Manifest.mf, además de las clases que pueda haber
¿Cual es el equivalente a los procesos de Linux dentro de la maquina virtual de java?
THREADS o Hilos de ejecución.
- Existen predefinidos pero también podríamos crear nuestros propios Threads
¿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
- Atributos de datos
- Métodos
- Atributos de relación
¿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
- 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).
¿Qué dos tipos de sobreescritura de métodos (del padre) existen?
- 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.