Introducción a Java 2
Objetivos
Al final de esta lección el estudiante sería capaz de:
Conocer brevemente la historia de Java.
Describir las características de la tecnología Java
Describir las diferentes fases de un programa Java.
Introducción a Java 3
Historia de Java
Java
-Fue creado en 1991 para una aplicación para Set-top box.
-Sun Microsystems creo un grupo compuesto por trece personas y
dirigido por James Gosling para su desarrollo.
-Inicialmente se denominó Oak por un roble cerca de las oficinas de
Gosling, el nombre fue cambiado por la existencia de otro lenguaje
llamado Oak.
Introducción a Java 4
Historia de Java
¿Por qué se llamó Java?
-El término Java fue acuñado en una cafetería frecuentada por algunos
de los miembros del equipo
-JAVA = James Gosling, Arthur Van Hoff, y Andy Bechtolsheim.
-JAVA = Just Another Vague Acronym ("sólo otro acrónimo ambiguo
más").
-Tipo de cafe en la cafetería cercana
Introducción a Java 5
Historia de Java
Duke, Mascota de Java
-Duke era "el agente de Software", era el que "hacia" las cosas que el
usuario pedia por medio de la pantalla animada en uno de los primeros
desarrollos “start 7”
Introducción a Java 6
Java
-La motivación original para crear Java
proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución
ligero y gratuito, para poder implementarlo en electrodomésticos tipo neveras o
tostadoras. (Write Once, Run Anywhere)
-Uno de los primeros proyectos desarrollados en Java
Un control remoto llamado Star 7.
-Al mismo tiempo, el World Wide Web e Internet estaban ganando
popularidad. Gosling se dio cuenta de que Java podría ser usado para la
programación en Internet.
-El 9 de enero de 1996, Sun fundó el grupo empresarial JavaSoft para que
se encargase del desarrollo tecnológico. Dos semanas más tarde la
primera versión de Java fue publicada.
Historia de Java
Introducción a Java 7
Tecnología Java:
¿Qué es la Tecnología Java?
La Tecnología Java es:
-Un lenguaje de programación
-Un entorno de desarrollo
-Es una aplicación
-Un entorno de ejecución
Introducción a Java 8
Tecnología Java:
Lenguaje de programación
Como lenguaje de programación, Java puede crear todo
tipo de aplicaciones que se podrían crear usando cualquier
lenguaje de programación convencional.
Introducción a Java 9
Como entorno de desarrollo, la Tecnología Java provée con
un gran número de herramientas:
-Compilador (javac)
-Intérprete (java)
-Generador de documentación (javadoc)
-Una herramienta para empaquetar los .class
Y mucho más…
Tecnología Java:
Entorno de desarrollo
Introducción a Java 10
Tecnología Java:
Una aplicación y un entorno de ejecución
Las aplicaciones con Tecnología Java son generalmente
programas de uso general que funcionan en cualquier
máquina donde el Java runtime enviroment (JRE) está
instalado.
Existen dos entornos de ejecución principales:
1. El JRE suministrado por el Java 2 Software Development Kit (SDK)
contiene un conjunto completo de clases.
2. La otra se encuentra en el navegador Web. La mayoría de los
navegadores suministran un intérprete para la Tecnología Java y un
entorno de ejecución.
Introducción a Java 11
Características de Java
Algunas características de Java:
-La máquina virtual de Java
-Interoperabilidad de Plataforma
-Recolección de Basura “Garbage Collection”
-Java es Simple
-Java es Orientado a Objetos
-Java es seguro
-Java es Multi-hilo
-Code Security
Introducción a Java 12
Características de Java
The Java Virtual Machine
Máquina Virtual de Java - Java Virtual Machine (JVM)
-Una máquina imaginanaria que es implementada emulando un
software en una máquina real
-Provée las especificaciones de la plataforma hardware donde se
compila el código de la Tecnología Java
Bytecode
-Un código especial que es entendido por la Máquina Virtual de Java
(JVM)
-Independientemente de cualquier hardware, por lo que cualquier
ordenador con intérprete de Java puede ejecutar el programa
compilado en Java, da igual en que tipo de ordenador se haya
compilado.
Introducción a Java 13
Características de Java
Interoperabilidad de Plataforma
•"Write once, run everywhere" (Escribalo una vez,
ejecútalo en todos lados)
Introducción a Java 14
Características de Java
Garbage Collection
Recolector de basura - Garbage collection thread
-Responsible de liberar cualquier memoria que pueda ser liberada.
Esto se realiza de manera automática durante la vida del programa
Java.
-El programador se liberaa de la carga de tener que liberar la
memoria no utilizada.
Introducción a Java 15
-Java fue diseñado para hacer más fácil el desarrollo de código sin
bugs.
-Fácil de leer y escribir
-Es muy difícil escribir un programa Java que colapse tu sistema
Características de Java
Java es Simple
Introducción a Java 16
Características de Java
Seguridad de Código
Seguridad en el código es conseguido mediatne la
implementación del Java Runtime Enviroment (JRE)
JRE
-Ejecuta código compilado por una JVM y realiza la carga de clases
(Class Loader), verificación de código(Verificador de Código -
Bytecode verifier) y finalmente ejecución de código.
Introducción a Java 17
Características de Java
Code Security
Class Loader
-Responsable de la carga de las clases necesarias para el programa
Java
-Tras cargar las clases, la memoria dispuesta del ejecutable es
determinada. Esto añade protección contra acceso no autorizado a
areas restringidas del código ya que la memoria está determinada
durante la ejecución.
Introducción a Java 18
Características de Java
Code Security
Bytecode verifier
-Comprueba el formato del código y chequea el código en busca de
código ilegal que puede violar el acceso correcto a objetos.
Introducción a Java 19
Fases de un programa Java
La siguiente figura describe el proceso de compilación y
ejecución de un programa Java.
Introducción a Java 20
Fases de un programa Java
Salida
programa
Intérprete Java
(java)
Ejecutar el
programa
Fichero .class
(Java
bytecodes)
Compilador
Java
(javac)
Compilar el
programa
Fichero .javaCualquier
editor de texto
o IDE
Escribir el
programa
SalidaHerramienta a
usar
Tarea
Introducción a Java 21
Desventajas de Java
Velocidad
Al tener que ser ejecutado medianta la JVM hace que no sea
tan rápido como con otras tecnologías, por ejemplo C++.
No es tan simple
Adquirir un estilo de programación orientada a objetos es
difícil. También saber sobre la filosofía y los componentes
en las clases de librerías es difícil y consume mucho
tiempo.