2. 2
Índice
• ¿Qué es Java?
• La plataforma Java 2
• La Máquina Virtual de Java
• Características principales
• ¿Qué ventajas tengo como desarrollador?
• Bibliografía
3. 3
¿Qué es Java?
La tecnología Java es un
lenguaje de programación y
una plataforma.
4. 4
• JDK (Java Development Kit)
• JDK 1.0, 1995
• JDK 1.1, 1996. Modificación en manejo de eventos; nuevas
bibliotecas (reflexión, métodos remotos, ...)
• http://java.sun.com/
• JDK 1.2, 1998. Mejora en la eficiencia de JDK 1.1, e inclusión de
productos como CORBA, JFC, etc.
– J2SE 1.2
• Java 2 Platform, Standard Edition, v 1.2
• Implementado por Java 2 SDK, v 1.2 (Software Development
Kit)
• J2SE 1.3.1, 2001
• J2SE 1.4.0, 2002
• J2SE 1.5.0 (septiembre 2004)
• j2se 1.6.0 a partir de 2005 y otros
Ubicación e historia
5. 5
La plataforma Java 2
• Una plataforma software que se ejecuta
sobre otra plataforma hardware/software.
• La Máquina Virtual Java La interfaz de Programación
(JVM) de Aplicaciones (API)
Intérprete de Java Conjunto de clases ya desarrolladas
8. 8
Características: Sencillo
• Elimina algunas de las características de C y
C++:
– No aritmética de punteros.
– No existen referencias.
– No existe typedef ni #define.
– No sobrecarga operadores.
– No herencia múltiple.
– Posee clase String.
– No necesidad de asignar y liberar memoria (Garbage
Collector).
9. 9
Características: Orientado a objetos
• Java trabaja con sus datos como objetos y
con interfaces a esos objetos.
• Implementa:
– Encapsulación. - Interfaces.
– Herencia simple. - Paquetes.
– Abstracción.
– Reutilización.
– Polimorfismo.
10. 10
Características: Distribuido
• Concebido para trabajar en un entorno
conectado en red.
• En sí no es distribuido, proporciona
librerías y herramientas para que los
programas puedan ser distribuidos, que
los programas corran en varias máquinas
interactuando.
11. 11
Características: Interpretado
• Compilador tradicional
Traslada sentencias
alto-nivel a
múltiples
instrucciones.
Creación de
librerías como
resultado de
compilaciones
previas.
Juntando, se crea
programa
ejecutable.
• Intérprete de ByteCodes
Compilador Java
Traduce código
fuente a código
intermedio.
Interprete de Java
Virtual
Machine(JVM)
(ByteCodes
interpretados
(ejecutados))
12. 12
Características: Robusto
• No se interrumpe fácilmente.
• Evita sobreescribir o corromper memoria
mediante punteros.
• Manejo de excepciones.
• Verificación de ByteCodes (por ejemplo no
acceso ilegal de memoria).
13. 13
Características: Seguro
• Aplicaciones seguras ya que no acceden a
zonas delicadas de memoria o de sistema
• No existen punteros, no acceso a zonas delicadas
de memoria.
• Una applet no puede acceder al sistema, a los
archivos de la persona que lo está viendo.
14. 14
Características: Arquitectura neutra
• Java compila el código a un fichero objeto
de formato independiente de la
arquitectura de la máquina en que se
ejecutará.
• Cualquier plataforma donde exista una
JVM se puede ejecutar el código objeto
independientemente de la máquina en el
que ha sido generado.
15. 15
Características: Arquitectura neutra
• Código fuente se compila
a un código de bytes
independientemente
de la máquina.
• Los ByteCodes se
ejecutan en una
máquina hipotética
que se implementa
por un sistema
run-time, que es
dependiente
de la máquina.
Tiempo de compilación
Tiempo de ejecución
16. 16
Características: Arquitectura neutra
• Elementos que forman parte de arquitectura de Java
sobre una plataforma genérica.
• Dependiente del sistema:
– JVM.
– Librerías fundamentales.
– APIs de Java que
entren en contacto
directo con el hardware.
18. 18
Características: Altas prestaciones
• Compiladores JIT (Just in time): Compilan
en el momento de ejecución.
– Traslada los bytecodes al
código máquina de la plataforma
según los va leyendo, realizando
cierto grado de optimización.
– JIT no pierde tiempo en
optimizar código que no se ejecutará.
19. 19
Características: Altas prestaciones
• Se introdujo un nuevo JIT: HotSpot.
– Incluye compilador dinámico
y una máquina virtual para
Interpretar bytecodes.
– Mejor soporte para ordenadores
con varios procesadores,
mayor escalabilidad.
20. 20
Características: Multithread
• Ejecución de varias tareas a la vez.
Permite muchas actividades simultáneas
en un programa.
• Posee una serie de clases que facilitan su
utilización.
• Mejor rendimiento interactivo y mejor
comportamiento en tiempo real.
21. 21
Características: Dinámico
• No conecta todos los módulos que
comprenden una aplicación hasta el
mismo tiempo de ejecución.
• Las librerías nuevas o actualizadas no
paralizan la ejecución de las aplicaciones
siempre que mantengan la API anterior.
23. 23
¿Qué ventajas tengo como
desarrollador?
• Comenzar rápidamente.
• Escribir menos código, 4 veces menos que
en C++.
• Escribir mejor código.
• Desarrollar programas más rápidamente.
• Eliminar dependencias de la plataforma.
• Escribir una vez, ejecutar en cualquier
parte.
24. 24
Tipos de Programas en Java
• Consola
• Applets
• Servlets
Visor de HTML
Visor de applets de Java
Intérprete de Java
Compilador de Java
Programa fuente Java Programa compilado Programa ejecutado
Archivo HTML
INTERNET
25. 25
Primeros pasos con Java
http://java.sun.com
• SDK (Software Development Kit)
– Necesario para crear (desarrollar y compilar) programas
• JRE (Java Runtime Environment)
– Necesario para ejecutar un programa Java
– SDK = JRE + herramientas de desarrollo
• La tecnología Java se organiza en subáreas:
– J2SE (Java 2 Platform, Standard Edition)
– J2EE (Java 2 Platform, Enterprise Edition)
• SDK + soporte para servicios web y componentes
– Java Web Services: aplicaciones basadas en la web que utiliza
estándar XML y protocolos de transporte para intercambiar datos con
los clientes que le invocan.
26. 26
Compilación y ejecución en la línea
de comandos
• Compilación:
c:javac fichero.java fichero.class
• Ejecución:
c:java fichero [argumentos]
• fichero.java es un fichero de texto que contiene la clase
principal (clase que contiene el main)
– public static void main (String [] args)
27. 27
Variables de entorno
• JAVA_HOME
– Directorio en el que está instalado el J2SE SDK
• CLASSPATH
– Ruta de acceso a las API’s de Java
– c:set CLASSPATH=.;%JAVA_HOME%libtools.jar;
%JAVA_HOME%libdt.jar;
– .; Carpeta o directorio actual de trabajo
• PATH del sistema
– Directorio donde se encuentran los ejecutables de java
– c:set PATH=%JAVA_HOME%bin;%PATH%
• Cambiar las variables de entorno en Windows
– Panel de Control >> Sistema >> Opciones avanzadas >>
Variables de entorno
29. 29
Ejemplo:
• class Ejemplo {
public static void main(String args[]){
System.out.println("Bienvenido a
Programacion III");
}
}
30. 30
Fundamentos del lenguaje 1
• Las clases se definen con la palabra reservada class.
public class Ejemplo { … }
• Los nombres de variables deben empezar con una letra o los caracteres
$ y _.
foobar // bien
ABCdef // bien
$abcd // bien
3_abc // mal
!algo // mal
• Hay dos tipos de comentarios:
int var; // comentarios de línea
/**
* comentarios varias líneas
*/
31. 31
Fundamentos del lenguaje 2
• Tipos de datos o
primitivos
• boolean char byte
long short int long
float double
• Tamaño en bits
Tipo bits Tipo bits
boolean 1 char 16
Byte 8 short 16
Int 32 long 64
Float 32 double 64
32. 32
Bibliografía
• Libro de texto: “JAVA 2”. Mc GrawHill
• Java Documentación:
http://java.sun.com/javase/6/docs/api//index.html
• Tutoriales de internet.