• No se han encontrado resultados

TEMA 067. ENTORNO DE DESARROLLO JAVA

N/A
N/A
Protected

Academic year: 2022

Share "TEMA 067. ENTORNO DE DESARROLLO JAVA"

Copied!
5
0
0

Texto completo

(1)

P á g i n a1 | 5

TEMA 067. ENTORNO DE DESARROLLO JAVA

Actualizado a 28/09/2020

(2)

P á g i n a2 | 5

1. TEMA 067. ENTORNO DE DESARROLLO JAVA

Se presenta a continuación una serie de conceptos importantes o novedosos relacionados con el lenguaje Java, así como algunas de las características que diferencian las distintas versiones.

1.1. LENGUAJE DE PROGRAMACIÓN JAVA

Las características de Java como lenguaje de programación son:

Cumple el paradigma de Orientación a Objetos, aunque para ser considerado puro (al estilo de otros lenguajes como Smalltalk) debería cumplir las siguientes características:

o Herencia o Encapsulación o Polimorfismo o Abstracción

o Todos los tipos predefinidos sean objetos

o Todas las operaciones se realizan mediante el paso de mensajes a objetos o Todos los tipos definidos por el usuario son objetos

En Java no se cumple que todos los tipos predefinidos son objetos, tal y como ocurre con los tipos primitivos:

o Números enteros (byte, short, int, long) o Números reales (float, double) o Carácter (char)

o Booleano o lógico (boolean)

Lenguaje fuertemente tipado el control de la memoria de las aplicaciones queda bajo el entorno de ejecución y S.O (proporciona más seguridad) a diferencia de C++ que es débilmente tipado (utiliza punteros), y por tanto no garantiza un entorno de ejecución estable de aplicaciones.

No soporta herencia múltiple de clases de forma estricta

o Extends: herencia de clases (una única clase): transmito métodos + propiedades

o Implements: implementación de interfaces (se pueden implementar varios interfaces en una misma clase). A partir de Java 8 (Ver más adelante) los interfaces pueden contener implementaciones por defecto de los métodos, y no sólo su signatura.

Compilado e interpretado: todo programa debe compilarse, generando un bytecode el cual es interpretado en una máquina virtual que lo interpreta.

 No permite sobrecarga de operadores, aunque:

o permite sobrecarga de métodos o polimorfismo estático (métodos de clases con el mismo nombre, pero distintos argumentos)

o permite polimorfismo dinámico empleando clases y métodos abstractos que podrán ser redefinidos en clases hijas, con implementaciones diferentes según la clase que herede. La consecuencia es que se podrán definir objetos del mismo tipo (clase padre abstracta), con métodos que devolverán valores distintos según la instancia del objeto sea de una clase hija u otra (heredan de la clase abstracta y redefinen el método en cuestión)

Lenguaje multiplataforma: Bytecode. Un programa Java puede ejecutarse en entornos con distintos sistemas operativos (Windows, Linux, OS…) sin necesidad de recompilarse.

(3)

P á g i n a3 | 5

1.2. PLATAFORMAS JAVA

Cuando hablamos de Java muchas veces no nos circunscribimos únicamente a Java como lenguaje de programación, sino a una plataforma de desarrollo de aplicaciones que utiliza componentes y librerías escritas en el lenguaje de programación Java.

Java SE (Java Platform Standar Edition) es el conjunto de APIs estándar del lenguaje de programación Java, forma la funcionalidad core de Java para el desarrollo de aplicaciones.

Java EE (Java Platform Enterprise Edition) es un superconjunto de Java SE. Añade una serie de librerías para el desarrollo de aplicaciones empresariales de gran escala.

Java ME (Java Platform Micro Edition) es un subconjunto de Java SE para el desarrollo de programas que van a ejecutarse en dispositivos de pequeño tamaño como teléfonos móviles o electrodomésticos.

JavaFX está pensado para la construcción de aplicaciones RIA (Rich Internet Applications) mediante el uso de un API ligero para interfaces de usuario.

1.3. RESUMEN DE VERSIONES DE JAVA Y CAMBIOS FUNDAMENTALES

VERSIÓN PRINCIPALES CAMBIOS

15 (09/2020) Clases e interfaces sealed (no pueden heredarse o extender) (Experimental)

 Nuevo recolector de basura ZGC 14 (03/2020) Mejora de las NullPointerException

 Registros: simplifica la creación de clases que sólo tienen datos públicos 13 (09/2019)  Bloques de texto

(4)

P á g i n a4 | 5

Expresiones switch mejoradas

12 (03/2019) Expresiones de conmutación o Switch expressions (experimental)

Shenandoah o nuevo recolector de basura (experimental) 11 (09/2018)

 Incorpora restricciones de licencia, la distribución Oracle es de pago

Palabra reservada var para simplificar la declaración de variables dejando al compilador inferirlo en función del constructor del objeto

10 (03/2018) Incorpora la inferencia de tipos para variables locales

9 (09/2017)

 Modularización, de manera que en tiempo de compilación puede restringirse el acceso a determinados paquetes, mediante la inclusión del archivo module- info.java

 jshell o The Java Shell o consola REPL (Read-Eval-Print Loop)

 Métodos privados en interfaces.

8 (03/2014)

 Soporte para expresiones lambda y programación funcional

 Soporte para la escritura de funciones en interfaces

Tipos Optional 7 (07/2011) Nueva biblioteca de E/S

6 (12/2006) Soporte de lenguaje de scripting: Javascript Rhino 5 (09/2004)  Introducción de genéricos y anotaciones

 Introducción de enumeraciones y varargs 1.4 (02/2002)

1.3 (05/2000) 1.2 (12/1998) 1.1 (02/1997) 1.0 (01/1996)

1.4. COMPILACIÓN

Modos de compilación / traducción

Compiladores AOT (Ahead-Of-time) y los compiladores JIT (Just in Time). La principal diferencia entre unos y otros es que los compiladores AOT compilan a código máquina nativo antes de la ejecución de la aplicación, mientras que los JIT compilan durante la ejecución. Dependiendo del tipo de aplicación puede convenir más un compilador u otro en caso de querer compilar a código nativo.

Método antiguo

1ª traducción: .java  comp  .class / .jar  bytecode (código intermedio válido para cualquier HW y S.O). Es .jar si lo queremos distribuir.

2ª traducción: Escenario cliente: JRE (contiene la JVM)  .jar / .class  intérprete ejecución en plataforma

La JVM es una para cada escenario de plataforma, también puede estar como plugin del navegador, pero cada vez se tiende menos a eso.

Método actual

Se producen 2 compilaciones para evitar la ejecución en entorno cliente.

Escenario servidor: .class  compilador JIT (Just in Time)  ejecutable para un entorno de ejecución concreto

(5)

P á g i n a5 | 5 JRE tiene un JIT. Detecta un bytecode y ejecuta el JIT automáticamente.

1.5. CONCEPTOS RELACIONADOS

A lo largo de la evolución del lenguaje, aparecen otras consideraciones que deben tenerse en cuenta:

 Empleo de anotaciones y tipos genéricos a partir de Java 5, actualización de la sintaxis y nuevas características desde Java 8, como las expresiones lambda, los streams, etc.

 Actualización de librerías relacionadas con aspectos como los logs, JSON, XML, pruebas, HTTP, HTML, BBDD, mensajes, seguridad, etc.

 En relación con el punto anterior, se mencionan algunos frameworks como Spring MVC, JSF, GWT, Grails, Struts 2, etc.

 Entornos de desarrollo integrado (IDE) como Apache NetBeans, Eclipse e IntelliJ IDEA

 Lenguajes basados en la plataforma Java: Kotlin, Clojure, Goovy, Scala

 Herramientas empleadas para la construcción de aplicaciones o proyectos Java: Apache Maven, Gradle y Apache Ant.

 Algunas certificaciones: Oracle Certified Professional Java SE 11 Developer, Oracle Certified Professional Java EE 7 Application Developer, Oracle Certified Professional Java EE 6 Enterprise Architetc

Referencias

Documento similar

Se propone crear un sistema bajo la programación orientada a objetos en Java ya que es el lenguaje que proporciona diversas ventajas, que nos permitirá hacer

R ESUMEN : El caso de uso se inicia cuando el médico procede a realizar una consulta al paciente, el sistema obtiene los datos del paciente almacenado en la tarjeta de las

Con el análisis desarrollado en este capítulo se puede llegar a la conclusión de que es necesario para definir una DSSA un ambiente de desarrollo, una arquitectura base, un framework

3.- A continuación creamos la primer variable CLASSPATH dando clic sobre el botón Nueva de las Variables de usuario para equipo.. Configuración De Las Variables Path

History and the Java type of environment, are the first steps of learning a simple language, powerful, reliable and secure, plus its versatility is most demanded. application

entorno algoritmo.

Para implementar las comunicaciones entre las aplicaciones Java y Matlab se han utilizado las funciones del paquete java.net (implementación en Java) y de la

a) Estudio de los fundamentos del desarrollo de Servicios Web en Java. En esta fase se abordan los fundamentos básicos del presente Proyecto, lo que incluye, entre otros aspectos, las