Está en la página 1de 43

INTRODUCCIÓN A JAVA

Índice

• ¿Qué es Java?
• La plataforma Java 2
• La Má quina Virtual de Java
• Características principales
• ¿Qué ventajas tengo como desarrollador?

22/11/2005 .2
Introduccion Objetos
• Historia Java • Conceptos bá sicos
• Programació n Orientada a Objetos • Variables miembro
• Java y la Industria. Tecnologías • Variables finales
• Herramientas de desarrollo • Métodos
JDK Java Development Kit • Clases y métodos finales
RAD’s: Jbuilder, Java • Clases internas
Workshop… • Transformaciones (Casting)
• Paquetes
• Herencia

• Sintaxis Interfaces y clases abstractas
• Permisos de acceso
• Variables
• Polimorfismo
• Operadores
• Estructuras de programació n Documentació n
• Filosofía
• Javadoc
Historia Java

• 1991: Sun Microsystems diseña un lenguaje diseñado para


sistemas embebidos,(set-top-boxes), electrodomésticos.
• Lenguaje sencillo, pequeño, neutro.
• Ninguna empresa muestra interés por el lenguaje
• 1995: Java se introduce en Internet, lenguaje muy apropiado
• Netscape 2.0 introduce la primera JVM en un navegador WWW
(Máquina virtual Java)
• Filosofía Java: “Write once, run everywhere”
• 1997: Aparece Java 1.1. Muchas mejoras respecto a 1.0
• 1998: Java 1.2 (Java 2). Plataforma muy madura
• Apoyado por grandes empresas: IBM, Oracle, Inprise, Hewtlett-
Packard, Netscape, Sun
• 1999: Java Enterprise Edition. Java comienza a ser una plataforma
de desarrollo profesional.
¿Qué es Java?

La tecnología Java es un
lenguaje de programació n y
una plataforma.

22/11/2005 .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

22/11/2005 .6
La plataforma Java 2

22/11/2005 .7
Características Principales

• Arquitectura neutra
Sencillo
• Orientado a objetos
Portable
• Distribuido
Altas prestaciones
• Interpretado(multihilo)
Multithread
• Robusto
Diná mico
• Seguro

22/11/2005 .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).

22/11/2005 .9
Programación Orientada a objetos

• Rapidez desarrollo
Directores proyecto • Menores costes
• Mantenimiento sencillo

• Modelado rápido
Diseñadores y analistas • Diseño claro

• Elegancia
Programadores • Claridad
• Reutilización código
• ...

Inconvenientes • Curva de aprendizaje


Características
• Encapsulación: CONTROL DE ACCESO
• Herencia: REUTILIZACIÓN DE CODIGO
• Polimorfismo: MODELADO JERARQUIZADO

Lenguajes
• SmallTalk: Curva de aprendizaje dificil
• C++: No hay librerías estándar, gestión de memoria

Java • OOP puro


• Sencillo
• No hay gestión de memoria (Garbage Collector)
• Librerías estándar
• Multiplataforma
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.

22/11/2005 .12
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.

22/11/2005 .13
Características: Interpretado

• Intérprete
Compiladordetradicional
ByteCodes
» Compilador Java
» Traslada sentencias alto-nivel a mú ltiples instrucciones.
» Creació n de librerías como resultado de compilaciones previas.
» Juntando, se crea programa ejecutable.
Traduce có digo fuente a có digo intermedio.

» Interprete de Java

Virtual Machine(JVM)
(ByteCodes interpretados (ejecutados))

22/11/2005 .14
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).

22/11/2005 .15
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.

22/11/2005 .16
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.

22/11/2005 .17
Introducción: Plataforma java
Java: Tecnologías

JNI
Programación UI
Programación
java.* AWT Swing

JavaBeans
Java3D
WWW
Programación gráfica Java2D

Applets

Java Server Pages

Servlets
Servidor Sistemas embebidos
RMI
Programación distribuida CORBA
JINI JavaSpaces

Enterprise JavaBeans
Bases de datos JDBC
Herramientas

JDK Java Development Kit


• java (Máquina Virtual)
• javac (Compilador bytecode)
• javadoc (Documentación)
• jdb (Depurador consola)
• clases java.*
• Documentación
• ...

IDE
• Jbuilder 3.0 • Modelado visual
• Jgrasp • Depuración
• Eclipse • Rapidez de desarrollo
• Netbeans
Características: Arquitectura neutra

• Có digo fuente se compila


a un có digo de bytes Tiempo de ejecución
Tiempo de compilación
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.

22/11/2005 .21
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.

22/11/2005 .22
Características: Portable

• Má s allá de la portabilidad bá sica


por ser de arquitectura
independiente.

22/11/2005 .23
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á .

22/11/2005 .24
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.

22/11/2005 .25
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.

22/11/2005 .26
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.

22/11/2005 .27
Características: Dinámico

• Capaz de traer automá ticamente cualquier pieza


que el sistema necesite para funcionar.

22/11/2005 .28
¿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.
22/11/2005 .29
Consulta !!!

• “Thinking in Java”.
• “Como programar en Java”
• www.javahispano.org.
• www.javafarm.com
• http://www.jtech.ua.es/plj/docs/apuntes/tema01-apuntes.htm !!!

22/11/2005 .30

También podría gustarte