resumen JAVA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

JRE significa entorno de tiempo de ejecución Java y es obligatorio para ejecutar aplicaciones

Java.
JDK es un kit de desarrollo de Java, que proporciona herramientas para desarrollar programas
en Java.
JIT significa compilación Just In Time, que ayuda a aumentar el rendimiento de la aplicación
Java al convertir el código de bytes de Java en código nativo en cierto umbral.
JVM significa máquina virtual Java y es el proceso que ejecuta la aplicación Java.
Cuando compilamos un archivo .java, el compilador Java genera un archivo .class (contiene
byte-code) con el mismo nombre del archivo. Este archivo .class entra en varios pasos cuando
lo ejecutamos.
Subsistema Java Class Loader
1. Carga: genera los datos binarios correspondientes y los guarda en el área de
métodos (“method area” –vea la imagen anterior)
2. Vinculación o Enlace
• Verificación: asegura la exactitud del archivo .class, es decir, comprueba si este
archivo está formateado correctamente y generado por un compilador válido o no.
Si la verificación falla, obtenemos la excepción de tiempo de
ejecución java.lang.VerifyError.
• Preparación: JVM asigna memoria para las variables de clase e inicializa la
memoria a los valores predeterminados.
• Resolución: es el proceso de reemplazar referencias simbólicas del tipo con
referencias directas. Se realiza buscando en el área del método (method area) para
localizar la entidad a la que se hace referencia.
3. Inicialización
• Cargador de clases Bootstrap (Bootstrap class loader): cada implementación de
JVM debe tener un cargador de clases de arranque, capaz de cargar clases
confiables. Carga las clases API centrales de java presentes en el
directorio JAVA_HOME/jre/lib. Esta ruta se conoce popularmente como ruta de
arranque. Se implementa en lenguajes nativos como C, C++.
• Cargador de clases de extensiones (Extension class loader): es un elemento
secundario del Bootstrap class loader. Carga las clases presentes en los directorios
de extensiones JAVA_HOME/jre/lib/ext (Ruta de extensión) o cualquier otro
directorio especificado por la propiedad del sistema java.ext.dirs. Está
implementado en Java por la clase sun.misc.Launcher$ExtClassLoader.
• Cargador de clases de sistema/aplicación (system/Application class loader): es
secundario del cargador de clases de extensión. Es responsable de cargar las clases
desde la ruta de la clase de aplicación. Internamente utiliza la variable de entorno
asignada a java.class.path. También se implementa en Java mediante la clase
sun.misc.Launcher$AppClassLoader.
Memoria JVM
• Área de método (Method area): en el área de método, se almacena toda la
información del nivel de clase, como el nombre de clase, el nombre inmediato de la
clase principal, la información de métodos y variables, etc., incluidas las variables
estáticas. Solo hay un área de método por JVM, y es un recurso compartido.
• Área Heap (Heap area): la información de todos los objetos se almacena en el área
heap. También hay un área heap por JVM. También es un recurso compartido.
• Área de pila (Stack area): para cada subproceso, JVM crea una pila en tiempo de
ejecución que se almacena aquí. Cada bloque de esta pila se llama registro de
activación/marco de pila que almacena los métodos de llamadas. Todas las variables
locales de ese método se almacenan en su marco correspondiente. Una vez que
finaliza un hilo, JVM destruirá la pila en tiempo de ejecución. No es un recurso
compartido.
• Registros de PC (PC Registers): Almacena la dirección de la instrucción de ejecución
actual de un hilo. Obviamente, cada hilo tiene registros de PC separados.
• Pilas de métodos nativos (Native method stacks): para cada hilo, se crea una pila
nativa separada. Almacena información del método nativo.
Motor de ejecución
• Intérprete: interpreta el bytecode línea por línea y luego lo ejecuta. La desventaja aquí
es que cuando se llama un método varias veces, cada vez se requiere interpretación.
• Compilador Just-In-Time (JIT): se usa para aumentar la eficiencia del intérprete.
• Recolector de basura: destruye objetos no referenciados.
Interfaz nativa de Java
Es una interfaz que interactúa con las Bibliotecas de métodos nativos y proporciona las
bibliotecas nativas (C, C++) necesarias para la ejecución
Bibliotecas de métodos nativos
Es una colección de bibliotecas nativas (C, C ++) que requiere el motor de ejecución.

Palabras reservadas o keywords en Java:

Entre las palabras más utilizadas y por lo tanto más conocidas se encuentran las de la
siguiente lista:
Int define un dato o variable como de tipo entero, generalmente números negativos o
positivos.
Float define un dato de tipo flotante, es decir valores con coma (,) por ejemplo 12,2.
Char un char es un carácter, una letra, un espacio, una coma, un punto, etc.
Boolean define un dato de tipo lógico, cuyo resultado es verdadero o falso
Const crea una variable constante de alcance global o local y no puede cambiarse
posteriormente.
Break fuerza la salida de un bucle (sale completamente del mismo).
Continue sale de la iteración actual y salta directamente a la siguiente.
For estructura que se utiliza para ejecutar un bloque de código un número determinado de
veces.
While bucle que repite una acción siempre y cuando se cumpla una condición booleana de
control.
True representa el valor verdadero de una expresión booleana.
False representa el valor falso de una expresión booleana.

Modificadores de acceso en Java


1. Default – No se requiere palabra clave
Cuando no se especifica ningún modificador de acceso para una clase, método o miembro
de datos, se dice estar teniendo modificador de acceso default por defecto.
Los miembros de datos, clase o métodos que no se declaran utilizando ningún modificador
de acceso, es decir, que tengan un modificador de acceso predeterminado, solo son
accesibles dentro del mismo paquete.
2. Private
El modificador de acceso privado se especifica con la palabra clave private. Los métodos o
los miembros de datos declarados como privados solo son accesibles dentro de la clase en
la que se declaran.
• Cualquier otra clase del mismo paquete no podrá acceder a estos miembros.
• Las clases e interfaces no se pueden declarar como privadas (private).
3. Protected
El modificador de acceso protegido se especifica con la palabra clave protected.
• Los métodos o miembros de datos declarados como protected son accesibles
dentro del mismo paquete o sub-clases en paquetes diferentes.
4. Public
El modificador de acceso público se especifica con la palabra clave public.
• El modificador de acceso público tiene el alcance más amplio entre todos los
demás modificadores de acceso.
• Las clases, métodos o miembros de datos que se declaran como públicos son
accesibles desde cualquier lugar del programa. No hay restricciones en el alcance
de los miembros de datos públicos.

Modificadores que no son de acceso


• static
• final
• abstract
• synchronized
• transient
• volatile
• native
Puntos importantes
Si otros programadores usan tu clase, intente usar el nivel de acceso más restrictivo que tenga
sentido para un miembro en particular. Use private a menos que tenga una buena razón para
no hacerlo. También evite los campos públicos, excepto las constantes.
¿Qué es un constructor en Java?
Un método constructor en Java es
un método especial que se invoca cada
vez que se genera un objeto de la clase a
la que él pertenece. Dependiendo de las
necesidades que tenga el proyecto, una
clase puede tener uno o varios
constructores.
Esto le permitirá, al desarrollador, darle
valores iniciales a los atributos que tiene
ese objeto y manejar estos según sea
conveniente para la lógica del código que
está escribiendo.
Características de un constructor en
Java
• Debe tener el mismo nombre de
la clase a la que pertenece.
• Se declaran como públicos para
que puedan ser invocados desde
fuera de la clase, aunque no se
utiliza la palabra reservada void
en la sintaxis.
• Generalmente, es el primer
bloque de código que se
construye cuando se está
haciendo una clase.
• Pueden tener parámetros o no,
depende del proyecto en
desarrollo.
• Solo se ejecuta cuando es
invocado para crear una instancia
de un objeto.
Tipos de constructores en Java
• Constructores por defecto
Se trata del constructor que asume el compilador por defecto, en caso de que la persona
que esté codificando no declare de manera explícita al constructor, tal como se describe
en los apartados anteriores.
Como no se han inicializado los atributos, estos toman los valores predeterminados
dependiendo del tipo de dato que se haya declarado.
• Constructores con parámetros
Es lo que se hace cuando se le quiere dar valores específicos a los atributos de un objeto
creado. Se debe codificar cuidadosamente el método constructor, respetando las
características que establece Java para que funcione correctamente.
El uso de constructores es imprescindible para trabajar con el paradigma de programación
orientada a objetos (POO), por lo tanto, es recomendable dedicar tiempo a comprender su
funcionamiento y practicar la manera correcta de codificarlos.

SOBRECARGA DE MÉTODOS EN JAVA


Sobrecarga de funciones o métodos a la creación de varias funciones dentro de nuestro
programa, que tienen el mismo nombre, pero sus argumentos son distintos y realizan distinta
acción.
¿Cómo funciona la Sobrecarga de Funciones en Java?
Dependiendo de los tipos y la cantidad de argumentos, Java puede identificar cuál de los
métodos existentes debe utilizar.
Esto significa que para sobrecargar una función o método, al llamarla debemos cambiar el tipo
y / o número de argumentos, este proceso se conoce como method overloading.
La importancia de la sobrecarga radica en poder relacionar los métodos a través de un nombre
común, aunque cumplan distintas funciones.
Que debemos tener en cuenta para sobrecargar un método en Java:
• Se debe cambiar la lista de argumentos.
• Se puede cambiar el tipo de retorno.
• Puede ser sobrecargado en la misma clase o en una subclase.
Pero no solo podemos sobrecargar métodos o funciones normales, también
podemos sobrecargar métodos Constructores, de hecho es esto lo más común.
Si tenemos un método constructor con tres parámetros, las declaraciones que hagamos de
nuestros objetos precisarán que les pasemos tres parámetros, pero tal vez, necesitemos que
algún objeto tenga una cantidad distinta de parámetros, eso lo solucionamos aplicando
sobrecarga al constructor.
Básicamente sobrecargar significa definir nuevos métodos con parámetros distintos para
ampliar las funcionalidades del método original, manteniendo la calidad en el código,
reutilizando las funciones, sin extender la cantidad de líneas en nuestro programa.
No debemos confundir sobrecarga con sobreescritura, la diferencia fundamental entre estos
dos conceptos es que la sobrecarga no implica herencia, aunque puede haberla y la
sobreescritura sí.
La condición para el uso de sobrecarga de métodos, consiste en que no debe haber dos de
ellos con el mismo número y tipo de parámetros.

La Palabra Clave this


Cuando se llama a un método, se pasa automáticamente un argumento implícito que es una
referencia al objeto invocado (es decir, el objeto sobre el que se llama el método).
Uso de this en Java
Se puede acceder directamente a los otros miembros de una clase, sin ningún objeto o
calificación de clase, la declaración return valor; significa que se devolverá la copia
del valor asociado con el objeto invocado. Por ejemplo, la sintaxis de Java permite que
el nombre de un parámetro o una variable local sea el mismo que el nombre de una variable
de instancia. En esta versión, los nombres de los parámetros son los mismos que los nombres
de las variables de instancia, por lo tanto, los ocultan. Sin embargo, this se usa para
“descubrir” las variables de instancia.
¿Qué son las Interfaces de Java?
Una interfaz de Java es un mecanismo que tiene este lenguaje de programación para enunciar
un conjunto de especificaciones y comportamiento que otras clases van a implementar.
¿Para qué se usan las interfaces de Java?
Si ya tienes conocimiento sobre el concepto de herencia en Java, posiblemente estarás
pensando que esto es igual, y de hecho es muy similar. Sin embargo, en Java no existe la
herencia múltiple.
Esto quiere decir que una clase solo puede heredar de una superclase, no de varias. Por esta
razón entra en escena el concepto de interfaces.
Entonces, una clase podrá heredar métodos de varias interfaces en Java y con este
mecanismo, el lenguaje logra ofrecer una mayor abstracción a los programadores que lo
utilizan.

Resumiendo entonces, la palabra reservada para crear interfaces es interface y la palabra


reservada necesaria para implementar los métodos abstractos de esa interface es implements.
Cuando una clase implementa una o más interfaces, usarás la palabra reservada implements, y
vas a separar por comas el nombre de las interfaces.
Si estás enunciando los métodos abstractos de la interface, no es necesario que utilices la
palabra reservada public, ya que por defecto estos métodos son de acceso público.
Diferencias entre clases e interfaces

Una interface es una especie de mapa que dice lo que hay que hacer y los métodos abstractos,
cuando son implementados en una clase, dicen cómo se hace.

Introducción a Spring Boot


Spring anotaciones y Dependencias
Spring Boot como simplificador
Dependencias y Starters
Application.properties

¿Qué es Spring Boot?


Spring nace de la complejidad que se tenía que hacer a la hora de crear proyectos java
enterprise edition, los EJBeans eran muy complejos y la forma en que se realizaba el
despliegue del proyecto era muy engorroso.
Spring Boot contiene una infraestructura ligera que elimina la mayor parte del trabajo de
configurar las aplicaciones basadas en Spring. El objetivo de Spring Boot es proporcionar un
conjunto de herramientas para construir rápidamente aplicaciones de Spring que sean fáciles
de configurar.
Spring Boot facilita la creación de aplicaciones independientes basadas en Spring de grado de
producción que puede "simplemente ejecutar".
Existen tres pasos a realizar.
• Primero se crea un proyecto Maven/Gradle y se descargan las dependencias
necesarias.
• En segundo lugar se desarrolla la aplicación.
• Tercero se despliega en un servidor.
¿Porque Spring Boot trae integrado Tomcat? . Muy sencillo porque a partir de ahora los
despliegues no se van a realizar en Servidores Web Standard que almacenan decenas de
aplicaciones sino que cada una de las aplicaciones se va a desplegar en un contenedor
Docker completamente aislada del resto e independiente . El contenedor necesita que la
aplicación sea completamente operativa por si sola.

¿Cuándo usar la sobrecarga de constructores?


Algunas veces hay una necesidad de inicializar un objeto de diferentes maneras. Esto se puede
hacer usando la sobrecarga de constructor. Hacerlo le permite construir objetos de varias
maneras.
Objeto inicializa otro objeto
Una de las razones más comunes por las que los constructores están sobrecargados es permitir
que un objeto inicialice otro. Por ejemplo, considere este programa que usa la clase
Summation para calcular la suma de un valor entero:
Usando this() en sobrecarga de constructores
La referencia this() se puede utilizar durante la sobrecarga del constructor para llamar
implícitamente al constructor predeterminado desde el constructor parametrizado. Tenga en
cuenta que this() debería ser la primera declaración dentro de un constructor.
Puntos importantes que deben tenerse en cuenta al hacer sobrecarga de constructores:
• La llamada del constructor con this(), debe ser la primera declaración del constructor
en Java.
• Si hemos definido cualquier constructor parametrizado, el compilador no creará el
constructor predeterminado. Y viceversa, si no definimos ningún constructor, el
compilador crea el constructor predeterminado (también conocido como
constructor sin-argumentos) de forma predeterminada durante la compilación
• La invocación recursiva al constructor no es válida en java.
Sobrecarga de constructores vs Sobrecarga de métodos
Estrictamente hablando, la sobrecarga del constructor es algo similar a la sobrecarga de
métodos. Si queremos tener diferentes formas de inicializar un objeto usando un número
diferente de parámetros, entonces debemos hacer una sobrecarga de constructor ya que
hacemos sobrecarga de método cuando queremos diferentes definiciones de un método
basadas en diferentes parámetros.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy