INTRODUCCIÓN A JAVA



* Qué es java?


Java es un lenguaje de programación orientado a objetos, multi-plataforma, que se popularizó a partir del lanzamiento de su primera versión comercial de amplia difusión, la JDK 1.0 en 1996. Actualmente es uno de los lenguajes más usados para la programación en todo el mundo.

*Objetivos del lenguaje Java

El lenguaje Java se creó con cuatro objetivos principales:

ORIENTADO A OBJETOS

La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. 

Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. 

El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos. 

INDEPENDENCIA

La segunda característica, la independencia de la plataforma, significa que programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, "write once, run anywhere".

EL RECOLECTOR DE BASURA

En Java el problema fugas de memoria se evita en gran medida gracias a la recolección de basura (o automatic garbage collector). El programador determina cuándo se crean los objetos y el entorno en tiempo de ejecución de Java (Java runtime) es el responsable de gestionar el ciclo de vida de los objetos. 

SINTAXIS

La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido desde el principio para ser completamente orientado a objetos.

Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos).

* Características del lenguaje Java

Sun describe al lenguaje Java de la siguiente manera:

Simple
Orientado a Objetos
Tipado estáticamente
Distribuido
Interpretado
Robusto
Seguro
de Arquitectura Neutral
Multihilo
con Recolector de basura (Garbage Collector)
Portable
de Alto Rendimiento: sobre todo con la aparición de hardware especializado y mejor software
Dinámico

* Qué es una API?

(Es un conjunto de protocolos y herramientas usado por desarrolladores)

La abreviatura viene del término en inglés Application Programming Interfaces (Interfaces de programación de aplicaciones) y según explica el científico en computación Benjy Weinberger en su blog, una API es una especificación formal sobre cómo un módulo de un software se comunica o interactúa con otro.

En otras palabras, las API son un conjunto de comandos, funciones y protocolos informáticos que permiten a los desarrolladores crear programas específicos para ciertos sistemas operativos. Las API simplifican en gran medida el trabajo de un creador de programas, ya que no tiene que «escribir» códigos desde cero. Estas permiten al informático usar funciones predefinidas para interactuar con el sistema operativo o con otro programa.

* Qué es la API de Java?

es una interfaz de programación de aplicaciones (API, por sus siglas del inglés: Application Programming Interface) provista por los creadores del lenguaje de programación Java, que da a los programadores los medios para desarrollar aplicaciones Java.

Como el lenguaje Java es un lenguaje orientado a objetos, la API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa.

La API Java está organizada en paquetes lógicos, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.


Cuando un desarrollador instala el software Java en su ordenador, instala un paquete completo llamado JDK el cual, además de la máquina virtual de Java y el compilador, incluye también lo que se conoce como API.
Las siglas API tienen su origen en Application Programming Interface y consiste en un conjunto de librerías de código Java compilado o clases ofrecidas por la compañía multinacional ya listas para que sean usadas por todos los desarrolladores o programadores.
Estas “bibliotecas de clases” son utilizadas en la gran mayoría de lenguajes orientados a objetos, facilitando así el trabajo con dichos lenguajes de programación. El API de Java presenta una inmensa cantidad y variedad de paquetes y clases, cada uno de ellos destinados a una función determinada. Algunos de ellos son:
  • net provee soporte para sockets y contiene clases como IP, TCP, URL o UDP entre otras que permiten la implementación de aplicaciones distribuidas.
  • applet está integrado por clases que resultan útiles para crear y manipular applets, así como recursos que permiten reproducir audio.
  • io incluye clases para la serialización de objetos y manejar la entrada y salida.
  • awt contiene clases que permiten pintar imágenes y gráficos, manejar la GUI.
  • sql incluye clases que permiten el manejo de bases de datos relacionadas.
  • util facilita y permite el manejo de horas, fechas, excepciones, estructuras de datos o colecciones o más a través de las clases que lo integran.
  • lang incluye clases básicas o esenciales. Es el único paquete que se incluye de manera automática en cualquier programa Java y consta de strings, seguridad, números, threads y seguridad.
Existen muchísimos más APIs de Java 
 visitar la documentación aportada por a propia compañía en 
http://java.sun.com


* Qué es la máquina virtual de Java?

Cuando compilas una aplicación escrita en lenguaje Java, en realidad éste no se compila a lenguaje máquina, directamente entendible por el sistema operativo, sino a un lenguaje intermedio denominado Byte Code.

Entre el Byte Code (o el MSIL en el caso de .NET) y el sistema operativo se coloca un componente especial llamado Máquina virtual que es el que realmente va a ejecutar el código. Esta idea, por cierto, no tiene nada que ver con las máquinas virtuales a las que estamos acostumbrados hoy en día que ejecutan sistemas operativos completos, sino que es un concepto mucho más antiguo. Es más, tampoco te vayas a pensar que esto lo inventó Java. Ni mucho menos. Ya en los años '80, mucho antes de Java, el lenguaje Pascal generaba p-Code que era algo muy similar, e incluso había compiladores de COBOL (¡sí, de COBOL!) que hacían lo mismo.

En el caso de Java, La Java Virtual Machine o JVM toma el código Byte Code resultante de compilar tu aplicación Java y lo compila a su vez a código nativo de la plataforma en la que se está ejecutando. La ventaja principal de este esquema es que es muy fácil crear un programa en Java y que luego éste se pueda ejecutar en cualquier sistema operativo para el cual exista una implementación de la JVM (hoy en día, casi literalmente todos).

Esquema de funcionamiento de la compilación Java



  • Los programas Java se compilan a un formato binario .class que contiene instrucciones en un lenguaje de bajo nivel especial independiente de la plataforma, llamado Byte Code.

  • Existe un componente de Java que debe estar instalado en cada sistema operativo que se llama Java Virtual Machine o JVM. La JVM es capaz de entender el Byte Code y ejecutarlo con las instrucciones equivalentes que haya en el sistema operativo y procesador actuales en el que estemos ejecutándolo.

  • Esto es una gran ventaja porque nos permite ejecutar código Java en cualquier plataformapara la que exista una JVM (en la práctica, casi cualquiera).

  • Dado que la ejecución mediante la JVM es más lenta que la nativa, en ocasiones puede notarse cierta lentitud. Para ello un componente especial de la JVM llamado Compilador JIT o Compilador en Tiempo Real, compila a código nativo las partes de código más comunes o que requieren mayor desempeño.

https://www.campusmvp.es/recursos/post/que-es-la-maquina-virtual-de-java-o-java-virtual-machine.aspx


* Qué es el compilador de Java?

Un compilador de java es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es un lenguaje de máquina, pero también puede ser un código intermedio, o simplemente texto. Este proceso de traducción se conoce como compilación.

funcion del compilador

http://www.buscaminegocio.com/cursos-de-java/compilador-de-java.html


* Cuales son las vesiones del Java?

Versiones de Java (1.0 -1.2)
Java aparece en 1995 como un nuevo lenguaje de programación con soporte multiplataforma desarrollado por James Gosling y Sun MicroSystems.
versiones de Java





Versión 1.0: La primera versión del lenguaje contiene las clases principales , la maquina virtual y el API gráfico de AWT es un lenguaje que acaba de nacer.

Versión 1.1: Aparece en 1997 e incorpora al lenguaje varias clases que faltaban como Readers /Writers  ,Calendars y Bundles . Pero sin ningún lugar a duda su mayor aportación es la inclusión del estandar de JavaBeans y el API de JDBC para conexión a bases de datos. Este último supone un salto importante en cuando a la utilización del lenguaje.

Versión 1.2: En 1998 aparece otra evolución importante con la llegada del framework de Collections y el API de Swing que permite desarrollar interfaces de ventanas más complejos.

Versiones de Java (1.3 -1.5)
Java en estos momentos ya es una plataforma madura a la cual el fabricante va añadiendo nuevas características.
VersionesDeJavaAvance

VersionesDeJavaAvance

Versión 1.3: Avances pequeños en cuanto a APIs , se añade soporte JNDI. Sin embargo el avance en cuento a la arquitectura de la maquina virtual es importante ya que aparece la máquina HotSpot con compilación JIT (Just-in Time).

Versión 1.4: Se produce un salto importante en cuanto a nuevas APIs. Se incorpora un fuerte soporte de XML , Expresiones Regulares , Criptografía etc.

Versión 1.5: También denomina Java 5 se producen dos saltos importantes a nivel del core del lenguaje. Por una parte la inclusión de tipos Genéricos que se echaban en falta en el mundo de las colecciones. Por el otro lado la inclusión del concepto de metadatos con el uso de anotaciones. Se amplía el soporte de APIs orientadas a programación concurrente.

Versiones de Java (1.6 -1.8)
Java ha madurado mucho y es una de las plataforma de referencia.
VersionesDeJavaUltimas

VersionesDeJavaUltimas

Versión 1.6: Esta versión contiene avances muy puntuales con la inclusión de un API de compilación “on-the-fly” que permitirá gestionar servicios web de forma cómoda.

Versión 1.7: Otra versión cuyos cambios a nivel del lenguaje son limitados. Se produce una mejora de la máquina virtual incluyendo nuevos recolectores de basura.

Versión 1.8: Llega Java 8 el gran salto en cuanto al lenguaje se refiere. Se abren las puerta a la programación funcional con el uso de expresiones Lambda y Streams. Se realiza una revisión de APIS y se actualiza de forma importante la gestión de fechas.

Pronto llegará Java 9 que añadirá mayor modularidad a la plataforma y permitirá la creación de nuevas arquitecturas.


https://www.arquitecturajava.com/las-versiones-de-java/



* Requerimientos para programar en Java

1) Java JDK 
Lo primero que necesitas para poder desarrollar en Java es el "Java Development Kit". Es un software gratuito que contiene todo aquello que requiere tu máquina para trabajar con el lenguaje, tanto la JVM como las librerías para realizar programas de Java, desde los más básicos hasta los más complejos y específicos.

Para obtener el JDK necesitas descargarlo desde la página de Oracle. A menudo resulta un poco complicado navegar por este tipo de "macrositios"; te recomendamos ir por la vía rápida y buscar en Google "download java jdk". Esto te llevará a la página principal de descarga del JDK en el sito de Oracle.

Hay diferentes "entregas", "sabores" o "paquetes", de Java. Cada una tiene un nombre y a veces resulta un poco lioso por tener tantas siglas que aprenderse. Puedes ver en la imagen siguiente un resumen del "Java SE Platform", que es un diagrama que Oracle nos ofrece para saber lo que estamos bajando cuando descargamos una de estas entregas de Java.


Como puedes apreciar, cuando descargas el JDK, en realidad estás descargando Java por completo, incluyendo todas las librerías y también por supuesto el Java VM (JVM). Si te descargas el JRE, en realidad estás trayéndote un subconjunto de Java. Así pues, simplemente tienes que fijarte qué es lo que estás descargando para traerte aquello que necesites.

Desde la página de Oracle podrás descargar el JDK en la última versión publicada y luego tendrás que usar aquella que sea para tu sistema operativo. Si estás en Windows tendrás que escoger además la versión x86 para procesadores de 32bit y la x64 para procesadores de 64bits.
Cuando instalas Java ya se configura todo en tu sistema, por lo que no deberías tener ningún problema para empezar a usarlo.

2) JVM 
Lo más seguro es que tú ya tuvieras la Java Virtual Machine en tu sistema (es común que Java esté instalado en tu ordenador porque incluso sin saberlo estés usando algún programa desarrollado con Java.) Si tenías o no Java realmente no es preocupante, pues como pudiste apreciar en la imagen anterior, la JMV se instala también cuando instalas el JDK para Java.

3) IDE para desarrollo 

El tercer paso sería contar con un IDE para el desarrollo. IDE son las siglas de "Integrated Development Environment" o en español, Entorno de Desarrollo Integrado. Te recomendamos usar Eclipse, luego veremos algo más sobre cómo obtener y usar Eclipse.

https://desarrolloweb.com/articulos/iniciacion-java-caracteristicas-programacion-ideeclipse.html


* Qué es un IDE?

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, o sea, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. 

el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ)


Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, o sea, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

Un IDE debe tener las siguientes características:

Multiplataforma
Soporte para diversos lenguajes de programación
Integración con Sistemas de Control de Versiones
Reconocimiento de Sintaxis
Extensiones y Componentes para el IDE
Integración con Framework populares
Depurador
Importar y Exportar proyectos
Múltiples idiomas
Manual de Usuarios y Ayuda



* Cuales son los IDE's más utlizados para programar con Java

Sin importar qué tipo de lenguaje aprendas, siempre es necesario tener algunas herramientas para organizar mejor nuestro proceso de trabajo y tener acceso a funciones de manera más rápida (como puede ser, por ejemplo, la facilidad de realizar pruebas). Java no es una excepción a esta regla y muchos desarrolladores, tanto principiantes como expertos, optan por elegir una IDE que haga su vida más sencilla. 

*NetBeans
*Eclipse
*Intellij Idea
*Android Studio
*BlueJ
*JGrasp
*JCreator
*JDeveloper
*Dr. Java
*Codenvy

Para mayor informacion acerca de los anteriores, puedes visitar el enlace
https://blog.aulaformativa.com/alternativas-de-ide-para-java/


Nada de lo anterior es de mi propiedad, toda la información fue adquirida de Google.

Comentarios

Entradas populares