Bloque3-Tema6-Java Flashcards
Donde existe un atributo private?
Unicamente en la propia clase.
desde donde se ve un atributo public?
Desde cualquier parte del programa.
Quien puede ver un atributo protected?
La clase y sus hijos.
A que se refiere .this?
Al objeto actual
A que se refiere .super
A lo heredado.
Que es una interfaz en java?
Es una colección de métodos abstractos y propiedades constantes. En las interfaces se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la lógica del comportamiento de los métodos.
Cual es la palabra clave para heredar en java?
Extends
Cual es la palabra clave para implementar una interface en java?
Implements
Que es una anotacion en java
Es una forma de añadir metadatos al código fuente Java que están disponibles para la aplicación en tiempo de ejecución o de compilación.
Sirve para configurar nuestro codigo.
Como se hace una anotacion en java?
@Loquesea
Que anotacion java hay de proposito general?
Cuatro importados de java.lang.annotation: @Retention, @Documented, @Target, y @Inherited
Cinco de java.lang: @Override, @Deprecated, @SafeVarargs, @FunctionalInterface, y @SuppressWarnings.
Que compone una clase?
Atributos + metodos.
Hay herencia multiple en java?
No
Puedes implementar multiples interfaces en java?
Si
De que clase heredan todas las clases de java?
De la clase Object
Que es un enumerado en java
Nos permiten definir listas de elementos, cada uno de los cuales se identifica por su posición.
Cual es la palabra para definir un enumerado en java
enum
Cual es el orden si quieres hacer un extends y un implements?
Primero el Extends y luego el implements.
Que es la unica cosa de java que no son referencias?
Los datos primitivos.
Que es el IDE?
Entorno de desarrollo integrado. Es una aplicación de software que ayuda a los programadores a desarrollar código de software de manera eficiente.
Que IDE de java conoces?
Eclipse, IntelliJ, NEtbeans
BlueJ, Codenvy, Xcode, JGrasp
Que es la JDK?
Java Development Kit. es un software que provee herramientas de desarrollo para la creación de programas en Java.
Que es javac de la JDK?
Compilador
Que es java de la JDK?
Interprete
Que es jar de la JDK?
Para empaquetar clases compiladas.
Que es javadoc de la JDK?
Generador doc HTML a partir de las fuentes
Que es javap JDK?
desensamblador de ficheros .class
Que es jdb de la JDK?
Depurador
Que es jarsigner de la JDK?
Para firmar y verificar ficheros jar.
Que es jconsole de la JDK?
Para monitorizar la JVM (Java Virtual Machine)
Que es wsimport de la JDK?
Generacion de clases automaticas de ws SOAP.
Que es xjc de la JDK?
Compilador que genera clases java a partir de un WSD.
Que es JJS de la JDK (JDK8)
Interprete JavaScript
Que usa java para compilar el .java en un .class?
javac
Se puede instanciar una clase abstracta?
No. Solo se puede instanciar un objeto de una clase no abstracta.
Que es el bytecode de java y donde se encuentra?
Es el tipo de instrucciones que la máquina virtual Java espera recibir para posteriormente ser compiladas a lenguaje de máquina.
Se encuentra dentro del archivo de extensión .class
Que es la JRE?
Java Runtime Environment o JRE, es una capa de software que se ejecuta encima del software del sistema operativo de un sistema y proporciona las bibliotecas de clases y otros recursos que un programa Java específico necesita para ejecutarse.
Para que sirve el metodo finalize()
Para eliminar metodos, es llamada por el recolector de basura.
Para que se usa native en JAVA?
se usa para definir un metodo para codificar en otro lenguaje, por ejemplo C++.
Que es el JIT en java?
compila bytecode en código de máquina nativo en tiempo de ejecución.
Que componentes tiene el motor de ejecucion?
JIT y GC(Garbage Colector)
Que es el Java Classloader?
Es una parte del Java Runtime Environment que carga dinámicamente clases Java en la Java Virtual Machine.
Que es una variable local en java?
Es una variable que se declara dentro del cuerpo de un método
Que sucede en JAva cuando en una clase no modificamos su contructor?
Java crea uno por defecto.
Para que sirve Synchronized?
Hace que solo pueda pasar un hilo cada vez, a nivel de metodo.
Synchronized se puede usar a nivel de metodo o a nivel de bloque.
Que hace if (e2 == e3)
Comparara referencias (Zona de la memoria), no el contenido de esos objetos.
Empleado e3 == e4 igualaria las referencias en la memoria.
que se usa para comparar objetos en java?
equals
System.out.println(myStr1.equals(myStr2))
Un metodo abstracto, obliga a que la clase sea abstracta?
Si
Que hace @target en java?
Esta anotación sirve para delimitar en que partes de nuestro código podemos utilizar la anotación que esta debajo.
Que hace final en un atributo?
Hace que no pueda cambiar del valor inicial(Como si lo volviera una constante)
Que hace final a nivel de metodo?
Que no se puede sobrescribir cuando lo heredan los hijos.
Que hace final a nivel de clase?
Que no se pueda heredar de ella.
Como funciona un servidor web estatico (.jar)
Se descarga toda la app y se ejecuta en cada cliente.
Que compone el JRE?
MVJ(Maquina virtual de java) + libreria clases BASE
Que sera la MVJ a nivel de S.O?
UN proceso
Como es la estructura de JAVA en Web Browser?
Applets
‘’’’’’’’’’’’’’
JRE
Como es la estructura de JAVA en un cliente standalone?
APP JAVA
‘’’’’’’’’’’’’
JRE
‘’’’’’’’’’’
S.O
Que es un applet?
Es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo, en un navegador web.
Cual es la estructura de un servidor estandalone de JAVA?
App Java
‘’’’’’’’’’’’’
JRE
‘’’’’’’’’’’’
S.O
Cual es la estructura de un APP server en JAVA?
APP JAVA(J2EE)
‘’’’’’’’’’’’’’’’’’’’’’’’’’’
App server
’’’’’’’’’’’’’’’’’’’’
JRE
‘’’’’’’’’’’’’
S.O
Que contiene java.lang?
Que son las colecciones en java?
El marco de colecciones de Java es un conjunto de clases e interfaces que implementan estructuras de datos de colección comúnmente reutilizables.
Jerarquia de colecciones en java
Con que se gestiona las excepciones en java?
-try
-Catch
-finally
-throw
-throws
Cuando se va a ejecutar una sentencia finally
Podremos definir un conjunto de instrucciones necesarias tanto si se produce error o excepción como si no y que por tanto se ejecuta siempre.
Que hace throws?
La palabra reservada o cláusula throws permite lanzar un método. Por tanto tiene que ir declarada en el método.
Que hace throw?
Esta palabra reservada nos permite lanzar una excepción propia.
Para que se usa try?
todo el código que vaya dentro de esta sentencia será el código sobre el que se intentará capturar el error si se produce
Que hace catch?
En este bloque definimos el conjunto de instrucciones necesarias o de tratamiento del problema capturado con el bloque try
Se pueden poner multiples catch?
Si
Que es OutOfMemoryError en java?
is a runtime error in Java which occurs when the Java Virtual Machine (JVM) is unable to allocate an object due to insufficient space in the Java heap
Que es Stack Overflow?
Es un error que ocurre cuando el call stack pointer pasa por encima de su límite de pila. En otras palabras, se llaman demasiadas funciones.
De quien hereda unchecked exception?
De runtimeException y no te obliga a poner un try catch, ni poner el throws.
Jerarquia de clases de excepciones.
Que contiene el paquete java.lang
Contiene las clases e interfaces mas empleadas en la mayoria de los programas de Java. Es importado automaticamente por todos los programas java.
Que contiene el paquete java.io
Contiene clases que permiten las operaciones de entrada y salida de datos de un programa.
Que contiene el paquete java.util
Contiene clases e interfaces de utilidades: Operaciones con la fecha y la hora, generaciones de numeros aleatorios..
Que contiene el paquete java.applet
Contiene todas las clases e interfaces necesarias para la construccion de applets de java.
Que contiene el paquete java.net
Contiene clases que permite a un programa comunicarse a traves de redes(Internet o intranet)
Que contiene el paquete java.text
Contiene clases e interfaces que permiten operaciones de numeros, fechas, caracteres y cadenas.
Que contiene el paquete java.awt?
Es el paquete Abstract Windowing toolkit. Contiene muchas clases e interfaces necesarias para trabajar con la interfaz de usuario grafica clasica.
Que contiene el paquete java.beans?
Contiene clases para facilitar a los programadores la generaciones de componentes de software reutilizables.
Que maneras existen de loguearse en java?
-JAVA API Logging-> java.util.logging
-SLF4J API Logging (Simple logging facade for java)
De que librerias es una fachada SLF4J?
-Log4j
-Logback
-tinylog
-Apache commons logging
Que son los appender de log4j?
Es cada una de las salidas por las que puede ser enviado un mensaje de log.
Que es un logger en log4j?
Son responsables de capturar la informacion de logueo.
Que es un layout/encoder en log4j?
Responsable de formatear la informacion de logueo en diferentes estilos.
De que se compone log4J?
-Loggers
-Appenders
-layout/encoder.
Que es el level del logger de log4j?
Es un concepto que puede tomar valores como ERROR, WARN, INFO…
De tal forma que solo procesara mensajes DEL NIVEL con el que este configurado o superiores.
Jerarquia de nivel de log4j?
ALL<Debug<Info<WARN<ERROR<FATAL<OFF
Donde se configura el nivel de error en log4j?
log4j.properties
Quien planifica los hilos?
Los hilos los planifica el planificador de la maquina virtual. Al planificador se le invoca con Noseque.start(); El hilo siempre tiene un metodo run -> public void run() { patatin patatan }
Que dos formas hay de crear hilos?
-Herencia de la clase Thread y sobrescritura de run()
-Crear “cuerpos” de hilos implementando el interface Runnable.
Cada objeto de JAVA funciona como un monitor, pero que es un monitor?
Concepto de concurrencia. El monitor gobierna quien entra y quien no.
Nota: Cada thread tiene su propia zona de memoria para guardar variables locales.
Pueden por un mismo metodo atravesar muchos hilos de ejecucion?
Si
Para que sirve volatile?
En vez de buscar el valor en la cache, le estas diciendo a cada thread que vaya a buscar a la memoria principal el valor.
Que es serializacion en java?
Es la la conversion de un objeto en memoria a un array de bytes.
para que sirve Transient?
es para decirle al motor de java, que un determinado atributo no lo serialice.
para que sirve Transient
Que hace el metodo wait()
Cuando un hilo se bloquea temporalmente, llama a wait(). Esto ocasiona que el hilo quede en reposo y que se libere el monitor para ese objeto, permitiendo que otro hilo use el objeto.
Que hace el metodo notify()
El hilo en reposo se activa cuando otro hilo entra al mismo monitor y llama a notify() o notifyAll()
Despierta hilos.
Que provoca synchronized en un metodo?
Que ese objeto solo lo puede usar 1 hilo (Hasta que no acabe ese hilo, no entra el siguiente)
NOTA: Cada hilo tiene su propia variable x
NOTA: Todos los hilos comparten los atributos de obj1
Que harias para saber que hilo esta pasando po un objeto?
Thread.currentThread.getID
Que contiene el RT.jar?
rt.jar significa Runtime JAR y contiene clases de arranque, todas las clases de la API Core Java.
Que cosas nuevas añade java 9?
SE INTRODUJO EL CONCEPTO DE MODULE Y YA NO EXISTE EL RT.JAR SINO QUE ESTA EL MODULE JAVA.BASE
Que tipos de enlaces hay en java?
En los tempranos (Early binding) el enlace ocurre en tiempo de compilación
En los tardio (Late Binding) el enlace ocurre en el tiempo de ejecución.
Que compone el ecosistema Java SE?
Infraestructura Ejecución + Lenguaje + Herramientas/Librerias de terceros
Que es keytool de la JDK?
Para criptografia.
Que es rmic de la JDK?
compilador que genera clases java, stubs en cliente y skeletons en servidor, para su comunicacion C/S en programacion distribuida
que es rmiregistry de la JDK?
servicio de nombres para registrar objetos distribuidos
Que es jdeps de la JDK?
Analizador de dependencias, de clases o de paquetes
Que es jmc y jconsole de la JDK?
herramientas de monitorizacion de la JVM
Que es jshell de la JDK?
interprete ReadEvaluatePrintLoop - REPL de comandos interactivo). A partir de Java9
Que dos componentes tiene la infraestructura de JAVA?
-Construccion(JDK)
-Ejecucion (JRE)
Para que sirve la variable de entorno CLASSPATH?
le sirve a la maquina virtual para localizar y cargar clases que se usen en tu programa (las que no sean las tuyas propias, ni las del fichero rt.jar
En el fichero Manifest.mf existe un “campo” llamado Class-Path:ruta(s) (dentro de un fichero .jar)
Que es un Thread o hilo?
Son los recursos encargados de que los distintos metodos se ejecuten. Existen unos predefinidos, pero tambien podríamos crear nuestros propios Threads
Cual es la diferencia entre metodos y threads?
Metodo –> es algo pasivo
Thread–> es algo activo
Un hilo predefinido muy importante sería el Recoletor de Basura (GC
modificadores principales de clases?
-final
-static
-abstract
-protected,
-private,
-public,
-native,
-volatile,
-transient
-synchronized
-default
Para que sirven los paquetes en java?
Para organizar a las clases
A partir de la version 1.7, pueden tener codigo las interfaces?
Si, pero antes no.
Que son los streams de java?
Son “envoltorios” de colecciones de datos que nos permiten operar con estas colecciones y hacer que el procesamiento masivo de datos sea rápido y fácil de leer
Que son las expresiones lambda en java?
Programacion funcional.
Es una subrutina definida que no está enlazada a un identificador.
Que son los modules en java?
Un módulo es un conjunto de clases que pueden contener uno o varios packages y que define las dependencias con el resto de módulos así como la visibilidad de las clases que contiene.
Que es default method? (Java 8)
Nos permite definir métodos y que estos pertenezcan a las clases que queramos.
Que es java.time?
The main API for dates, times, instants, and durations
Herramientas java para la automatizacion del desarrollo?
-Ant
-Maven
-Gradle
-Ivy
-Jenkins
JDK de java?
-OpenJDK
-Amazon Corretto
-IBM JDK.
Para que sirven la librerias/framework Itext, PDFBox?
Generacion de PDF’s
Para que sirven la libreria BouncyCastle
Criptografia
Que librerias se usan para logging?
Log4j, Logback, SLF4J
Que librerias se usan como parsers XML y procesors XSL?
Xerces, Xalan, Woodstox y Apache FOP
Que librerias se usan para pruebas unitarias y de carga?
JUnit+Mockito y JMeter
Que librerias conoces de proposito general?
-Apache Commons
-Guava de Google
Que librerias conoces para Peticiones http a bajo nivel
Apache HttpComponents
Librerias para el manejo de informacion JSON?
Gson y Jackson
Librerias para el manejo de documentos de office?
Apache POI
Librerias para eteccion y extraccion de contenido de multitud de formatos.
Apache Tika
Librerias para ETL (extraccion de información, transformación y carga de ficheros)
Pentaho Kettle.
Que es un ORM?
Te permite convertir los datos de tus objectos en un formato correcto para poder guardar la información en una base de datos (mapeo)
Que es JPA?
Es una API de persistencia(Alto nivel). Mapeo Objetos/Relacional.
Implementaciones de JPA/ORM?
-Hiberneta
-TopLink (Ahora EclipseLink)
-OpenJPA
Que es un EntityManager?
Todas las operaciones relacionadas con la persistencia de las entidades se realizan a través de un gestor de entidades
Para que se usa la API JDBC?
Persistencia de bajo nivel.
Que es Maven?
Maven es una herramienta de software para la gestión y construcción de proyectos Java
En que se basa Maven?
En respositorios y dependencias.
Fichero principal de Maven?
POM.XML
Que fichero y que directorio obliga a crear Maven?
Fichero POM.XML
Directorio SRC/MAIN/JAVA
Que tendra cualquier dependencia de Maven?
Cualquier dependencia de maven tendra groupID, artifactID y version.
Para que sirve Try-With-Resources.
Sul objetivo es cerrar los recursos de forma automática en la sentencia try-catch-finally y hacer más simple el código.
Para que sirve libreria lombok?
Gestion de recursos automatica, getters, setters, equals, hashcode, toString.
Que es JTA?
PI de transacciones distribuidas-> sirve para hablar con el monitor transaccional.
Para que sirve la palabra reservada default?
para definir en una interface un metodo con codigo. Existe a partir de la 1.8
Para que sirve Graal vm?
Para programar varios lenguajes mezclados (java, python, ruby, etc…)
Cual es el caracter en blanco en ASCII?
32
Cual es el caracter ! en ASCII
33
Cual es el caracter * en ASCII?
42
Cual es el caracter a en ASCII
97
Cual es el caracter A en ASCII
65
Cual es el caracter 0 en ASCII
48
Lenguajes de programacion orientados a inteligencia artificial?
LISP; Prolog; R
Lenguaje de programacion orientado a programacion cientifica-formulas matematicas?
Fortran
Lenguaje de programacion orientado a negocios-transacciones?
COBOL
Con que extension se guarda el codigo fuente en JAVA?
.JAVA
A que traduce un compilador el codigo fuente en .JAVA
a .CLASS
Cuales son los componentes de un lenguaje?
Sintaxis (gramática): reglas que determinan de manera estricta el vocabulario, orden y formato de las instrucciones permitidas
Errores sintácticos: el programa no compila y/o no se puede interpretar
Semántica (sentido): el programa, al ejecutarlo, produce el resultado correcto que uno quiere
Es java strongly typed?
Si, para cada variable, desde definirse el tipo del dato asociado.
Que lenguajes strongly typed conoces?
-C (Esta en ambos)
-C++
-C#
-Java
-Pascal
-Python
-TypeScript
Que lenguajes loosely typed conoces?
-C (Esta en ambos)
-JavaScript
-Perl
-PHP
-Ruby
-shell
reglas para identificadores (Nombres de las variables) en java
-No pueden coincidir con una palabra reservada
-Distinción entre mayúsculas y minúsculas
-Secuencia de letras, dígitos, _ (subrayado) y $
-No se puede poner acentos en las ver antiguas.
-Siempre empiezan con una letra
Ejemplos:
Correcto: apellido, aula219, dos_veces, cantidad$250
Incorrecto: class, número, re-100, 80s
Tamaño tipos enteros en JAVA
Tamaño tipos reales en JAVA
NOTA: un entero del tipo long fuera del rango del tipo int necesita una L al final
long aLong = 562;
long badLong = 5124723163;
long goodLong = 5124723163L;
Para que se usa ‘\n’
Nueva linea
Para que se usa ‘\r’
Retorno de carro
Para que se usa ‘\t’
Tabulacion
para que se usa ‘"
Comilla simple
Para que se usa '”
Comilla doble
Para que se usa ‘\’
Barra inclinida inversa
Snetido de la conversion de tipos enteros?
byte -> short -> int -> long
NOTA:
En Java, el resultado de una división de enteros es siempre un entero (se trunca la parte decimal)
Como se hace un casting?
short goodShort = (short)(short1 * short2);
¡Casting tiene prioridad más alto que operadores aritméticos!
Si un real se convierte a un entero se trunca la parte decimal:
int entero = (int)8.9; // entero = 8
Se pueden realizar operaciones aritmeticas sobre caracteres en java?
Si
char myChar = ‘a’;
int resta = myChar – 32;
El resultado es siempre un entero
Incremento y decremento java
int a = 10;
int b = ++a; // resultado: a = 11, b = 11
int a = 10;
int b = a++; // resultado: a = 11, b = 10
Evaluacion perezosa
b = (5 < 3) && (6*2 == 12);
Si el resultado de la expresión a la izquierda es false, Java no evalúa la expresión a la derecha
If y else en java
if (<expresión-boolean1>)
<bloque-o-instruccion1>
else if (<expresión-boolean2>)
<bloque-o-instruccion2></bloque-o-instruccion2></expresión-boolean2></bloque-o-instruccion1></expresión-boolean1>
Ojo que cada else esta asociado a su if mas cercano
if (x > 0) {
if (y > 0)
System.out.println(“Ambos mayor que 0”);
}
else
System.out.println(“Alguno no mayor que 0”);
Sintaxis de switch en java
switch (<selector>) {
case <etiqueta1>: <sentencias1>;
break;
case <etiqueta2>: <sentencias2>;
break;
default: <sentenciasd>; // opcional
}</sentenciasd></sentencias2></etiqueta2></sentencias1></etiqueta1></selector>
Operador ? en java
Único operador ternario en Java (requiere tres operandos)
- Sintaxis:
<operando1> ? <operando2> : <operando3>
</operando3></operando2></operando1> - operando1 tiene que ser una expresión boolean
- operando2 y operando3 pueden ser expresiones de cualquier tipo siempre que sean ambos del mismo tipo
- El resultado de la expresión es
operando2 si operando1 es true
operando3 si operando1 es false
for en java
for (int i = 0; i < 10; i++) {
}
Que usa Java para recordar los metodos que se estan ejecutando?
Una pila (Stack), el metodo activo esta arriba de la pila.
Que tipos de operandos hay en java?
unario un operando
binario dos operandos
ternario tres operandos
Lenguajes imperativos? se basa en dar instrucciones al ordenador
BASIC
C
D1
Fortran
Pascal
Pauscalen español
Perl
PHP
Lua
Java
Python
Go
simple basic
Javascript
Kotlin
lenguajes declarativos? Está basado en describir el problema declarando propiedades y reglas que deben cumplirse.
SQL (Standard query language)
QML(QtMeta Language)
Ejemplos de lenguajes funcionales?
-Haskell
-Miranda
Que es F#
F# es un lenguaje de programación multiparadigma de código abierto, para la plataforma .NET, que conjunta la programación funcional con las disciplinas imperativa y orientada a objeto
Primeros lenguajes orientados a objetos.
Primer lenguaje OO: Simula-67
Primer lenguaje OO en sentido estricto: Smalltalk
Listado lenguajes orientados a objetos.
ABAP4
ABL5
ActionScript
ActionScript 3
C Sharp(C#)
Clarion
Clipper6
D
Object Pascal (Embarcadero Delphi)
Gambas
GObject
Genie
Harbour
Eiffel
Fortran90/95
Java
JavaScript7
Lexico8
Objective-C
Ocaml
Oz
R
Pauscal(en español)
Perl910
PHP11
PowerScript
Processing.12
Python
Ruby
Self
Smalltalk13
Swift
Magik
Vala
VB.NET
Visual FoxPro14
Visual Basic6.0
Visual DataFlex
Visual Objects
XBase++
DRP
Scala1516
C++
Visibilidad de paquetes.
PUBLICO (+)
Accesible desde cualquier otra clase
PRIVADO (-)
Solamente accesible desde otros métodos de la propia clase
PROTEGIDO (#)
Accesible desde otros métodos de la propia clase o desde métodos de clases derivada
DEFAULT O PACKAGE-PRIVATE
En java se considera otro tipo de acceso, sin palabra clave asociada, si no se especifica un modificador, accedido sólo por las clases que pertenezcan al mismo paquete
En c++ hay una visibilidad que es friend, que es como la protected para las clases con las que no tiene parentesco.
Principios fundamentales de la POO
-Abstracción
-Encapsulamiento
-Modularidad
-Herencia
-Polimorfismo
Que son las funciones sobrecarga?
-Dos o mas funciones comparten el nombre y distintos argumentos (nº y tipo y lugar). El nombre es polimórfico.
-Distintas definiciones y tipos (distintos comportamientos)
-Función correcta se determina en tiempo de compilación según la signatura.
Que son las funciones polimorficas
-Una única función que puede recibir una variedad de argumentos (comportamiento uniforme).
-La ejecución correcta se determina dinámicamente en tiempo de ejecución