B3T6-JAVA Flashcards
JAVAC
Javac es el compilador de Java. Es una herramienta de línea de comandos que se utiliza para convertir el código fuente de Java (.java) en bytecode de Java (.class). Este bytecode puede ser ejecutado posteriormente por la Máquina Virtual de Java (JVM).
- Compilar el código fuent
Las principales funciones de javac incluyen:
Que es JDK
Java Development Kit
Concepto JRE
- JRE (Java Runtime Environment), incluye un interprete (mv) y librerías de clase base (rt.jar)
Concepto de VM
- Maquina Virtual
JIT, Just In Time compiler (compilador en tiempo de ejecución)
GC, Garbage Collector
ClassLoader, carga dinámicamente clases Java en la Java Virtual Machine
Heap, espacio de memoria dinámica único que se crea al inicio de la máquina virtual
Concepto de CLASSPATH
Concepto de CLASSPATH
Classpath, variable de entorno que sirve a la maquina virtual para localizar y cargar clases que se usen en tu programa.
CUANTAS CLASSPATH HAY?
- Variable de entorno CLASSPATH
- Property que establece cuando se llama al interprete
- En el fichero manifest.mf, en el campo llamado CLASS-PATH:ruta. Se modifica por comandos.
Modificadores de acceso DE JAVA
Modificadores de acceso
* public, se ve en cualquier parte del programa.
* protected, tendría visibilidad y acceso en las clases hijas de la clase padre que se herede(“extends”).
* private, solo se puede usar en el ámbito de la clase donde esta definido.
* “default”, Sino se especifica modificador de acceso para una clase, método o miembro de datos
Tratamiento de excepciones
- checked, heredan de exception y obligan al try/catch
- un-checked, heredan de RuntimeException, y no te obliga a tratarlas.
- try/catch/finally
- throw, palabra reservada nos permite lanzar una excepción propia
Concepto de Thread
- (interface Runnable), crear cuerpos de hilos implementando el interface Runnable
- Metodos wait/notify de Object,
unciones para los monitores para la concurrencia de los hilos.
wait()
notify()
Palabras reservadas
- final, aplica a:
clases: para que otras clases no puedan heredar.
atributos: para que funcione como una constante.
métodos: bloquea la sobreescritura. - static, método que se aplica a la clase y solo es visible en la clase definida.
- synchronized, gestión de la sincronización de los threads de los métodos para que solo se ejecute un único hilo.
- native, para codificar un método en un lenguaje diferente a Java.
- transient, indica al runtime que no serialice el objeto.
- abstract, método que definimos pero no sabemos implementar. Obliga a que la clase también sea abstract. No se pueden crear objeto de clases abstract.
- extends, herencia
- implements, para implementar un interface.
Concepto de:
* Anotacion
Elemento para configurar el código.
*COMIENZAN EN JAVA5. Se diferencia de interface
en la arroba antes de la palabra reservada interface.
public @interface Seguridad{
String rol():
}
Concepto de enum
- Enum, serie de valores definidos por el programador.
public enum Color{
rojo, blanco, negro;
}
Concepto de Clase
- Clase: conjunto de atributos y métodos.
public class ciudadano{
//atributos
//metodos
}
Concepto de INTERFACE
- Interface, declaración funcional (“plantilla”) que obliga a las clases a cumplir con un contrato (“interface”)
interface SATA{
public void escribir (int numSector, byte dato);
public byte leer (int numSector);
}
class SSD_IBM implements SATA{
}
Novedades:
API Java Time (1.8)
Modules (1.9)
Streams
Lamda
Optional
FunctionalInterface
Librerias de Terceros
- Log4j, logs
- Logback, logs
- Itext/PDFBox, generación de pdf
- Guava, propósito general.
- Junit+Mockito, pruebas unitarias.
- JMeter, pruebas de carga
- GSON/Jackson, manejo de información JSON.
- Tika, detección y extracción de contenido multiformato.
- BouncyCastle, criptografía.
- Array
asList(T….a) à List<T>
binerySearch (int[], int)
fill (…)
sort(…)</T> - Heredan del interface Collection
List
Set à SortedSet
Queue à DeQueue - Clases que representan colecciones completas
ArrayList
LinkedList (doblemente enlazada (lista,doble cola)
ArrayDeque
Vector à Stack
push(E)
pop() à E {si borra}
empty() {boolean}
search(Object) {int}
peek() à E {no borra}
Herramientas de la JDK
- java (interprete), ejecuta tú código en una máquina virtual java.
- javac (compilador), genera código en bitecode de los ficheros generados en .class
- jar (empaqueta clases compiladas),
- javadoc, generación de documentación html a partir del código fuente.
- jshell (interprete REPL (Read-Evaluate-Print-Loop)), a partir de v9
- jarsigner, firma y verificación de ficheros .jar
- keytool, módulo de criptografía.
- wsimport, generación de clases automáticas para los cliente web services (SOAP, REST….)
- xjc, compilador que genera clases java a partir de un XSD.
- javap, desensamblador de ficheros .class.
- jdb, depurador.
- jdeps, analizador de dependencias de clases o paquetes.
- jmc y jconsole, monitorización de JVM.