2. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
LENGUAJE DELENGUAJE DE
PROGRAMACIÓNPROGRAMACIÓN
JAVAJAVA
3. Índice
• ¿Definición de Java?¿Definición de Java?
• La plataforma Java 2La plataforma Java 2
• La Máquina Virtual de JavaLa Máquina Virtual de Java
• Características principalesCaracterísticas principales
• ¿Qué ventajas tengo como¿Qué ventajas tengo como
desarrollador?desarrollador?
• Tipos de datos.Tipos de datos.
• Operadores.Operadores.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
4. ¿Qué es Java?¿Qué es Java?
La tecnología Java es unLa tecnología Java es un
lenguaje de programaciónlenguaje de programación
y una plataforma.y una plataforma.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
5. La plataforma Java 2
• Una plataforma software que se ejecutaUna plataforma software que se ejecuta
sobre otra plataforma hardware/software.sobre otra plataforma hardware/software.
• La Máquina Virtual JavaLa Máquina Virtual Java La interfaz de ProgramaciónLa interfaz de Programación
(JVM)(JVM) de Aplicaciones (API)de Aplicaciones (API)
Intérprete de JavaIntérprete de Java Conjunto de clases ya desarrolladasConjunto de clases ya desarrolladas
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
6. La plataforma Java 2La plataforma Java 2
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
7. CaracterísticasCaracterísticas
PrincipalesPrincipales
• SencilloSencillo
• Orientado aOrientado a
objetosobjetos
• DistribuidoDistribuido
• InterpretadoInterpretado
• RobustoRobusto
• SeguroSeguro
• ArquitecturaArquitectura
neutraneutra
• PortablePortable
• AltasAltas
prestacionesprestaciones
• MultithreadMultithread
(multihilo)(multihilo)
• DinámicoDinámico
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
8. Características: SencilloCaracterísticas: Sencillo
• Elimina algunas de las características de C yElimina algunas de las características de C y
C++:C++:
– No aritmética de punteros.No aritmética de punteros.
– No existen referencias.No existen referencias.
– No existe typedef ni #define.No existe typedef ni #define.
– No sobrecarga operadores.No sobrecarga operadores.
– No herencia múltiple.No herencia múltiple.
– Posee clase String.Posee clase String.
– No necesidad de asignar y liberar memoriaNo necesidad de asignar y liberar memoria
(Garbage Collector).(Garbage Collector).
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
9. Características: Orientado aCaracterísticas: Orientado a
objetosobjetos
• Java trabaja con sus datos comoJava trabaja con sus datos como
objetos y con interfaces a esosobjetos y con interfaces a esos
objetos.objetos.
• Implementa:Implementa:
– Encapsulación.Encapsulación. - Interfaces.- Interfaces.
– Herencia simple.Herencia simple. - Paquetes.- Paquetes.
– Abstracción.Abstracción.
– Reutilización.Reutilización.
– Polimorfismo.Polimorfismo.LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
10. Características:Características:
DistribuidoDistribuido
• Concebido para trabajar en un entornoConcebido para trabajar en un entorno
conectado en red.conectado en red.
• En sí no es distribuido, proporcionaEn sí no es distribuido, proporciona
librerías y herramientas para que loslibrerías y herramientas para que los
programas puedan ser distribuidos,programas puedan ser distribuidos,
que los programas corran en variasque los programas corran en varias
máquinas interactuando.máquinas interactuando.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
11. Características: InterpretadoCaracterísticas: Interpretado
• Compilador tradicionalCompilador tradicional
» TrasladaTraslada
sentencias alto-sentencias alto-
nivel a múltiplesnivel a múltiples
instrucciones.instrucciones.
» Creación deCreación de
librerías comolibrerías como
resultado deresultado de
compilacionescompilaciones
previas.previas.
» Juntando, se creaJuntando, se crea
programaprograma
ejecutable.ejecutable.
• Intérprete de ByteCodesIntérprete de ByteCodes
» Compilador JavaCompilador Java
Traduce códigoTraduce código
fuente a códigofuente a código
intermedio.intermedio.
» Interprete de JavaInterprete de Java
VirtualVirtual
Machine(JVM)Machine(JVM)
(ByteCodes(ByteCodes
interpretadosinterpretados
(ejecutados))(ejecutados))
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
12. Características: RobustoCaracterísticas: Robusto
• No se interrumpe fácilmente.No se interrumpe fácilmente.
• Evita sobrescribir o corromperEvita sobrescribir o corromper
memoria mediante punteros.memoria mediante punteros.
• Manejo de excepciones.Manejo de excepciones.
• Verificación de ByteCodes (porVerificación de ByteCodes (por
ejemplo no acceso ilegal deejemplo no acceso ilegal de
memoria).memoria).
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
13. Características: SeguroCaracterísticas: Seguro
• Aplicaciones seguras ya que noAplicaciones seguras ya que no
acceden a zonas delicadas de memoriaacceden a zonas delicadas de memoria
o de sistemao de sistema
• No existen punteros, no acceso a zonasNo existen punteros, no acceso a zonas
delicadas de memoria.delicadas de memoria.
• Una applet no puede acceder al sistema,Una applet no puede acceder al sistema,
a los archivos de la persona que lo estáa los archivos de la persona que lo está
viendo.viendo.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
14. Características:Características:
Arquitectura neutraArquitectura neutra
• Java compila el código a un ficheroJava compila el código a un fichero
objeto de formato independiente de laobjeto de formato independiente de la
arquitectura de la máquina en que searquitectura de la máquina en que se
ejecutará.ejecutará.
• Cualquier plataforma donde exista unaCualquier plataforma donde exista una
JVM se puede ejecutar el código objetoJVM se puede ejecutar el código objeto
independientemente de la máquina enindependientemente de la máquina en
el que ha sido generado.el que ha sido generado.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
15. Características: ArquitecturaCaracterísticas: Arquitectura
neutraneutra
* Código fuente se compila* Código fuente se compila
a un código de bytesa un código de bytes
independientementeindependientemente
de la máquina.de la máquina.
* Los ByteCodes se* Los ByteCodes se
ejecutan en unaejecutan en una
máquina hipotéticamáquina hipotética
que se implementaque se implementa
por un sistemapor un sistema
run-time, que esrun-time, que es
dependientedependiente
de la máquina.de la máquina.
Tiempo de compilación
Tiempo de ejecución
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
16. Características: ArquitecturaCaracterísticas: Arquitectura
neutraneutra
• Elementos que forman parte de arquitectura de JavaElementos que forman parte de arquitectura de Java
sobre una plataforma genérica.sobre una plataforma genérica.
• Dependiente del sistema:Dependiente del sistema:
– JVM.
– Librerías fundamentales.
– APIs de Java que
entren en contacto
directo con el hardware.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
17. Características: Portable
• Más allá de la portabilidadMás allá de la portabilidad
básica por ser debásica por ser de
arquitectura independiente.arquitectura independiente.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
18. Características: AltasCaracterísticas: Altas
prestacionesprestaciones
• Compiladores JIT (Just in time):Compiladores JIT (Just in time):
Compilan en el momento de ejecución.Compilan en el momento de ejecución.
– Traslada los bytecodes alTraslada los bytecodes al
código máquina de la plataformacódigo máquina de la plataforma
según los va leyendo, realizandosegún los va leyendo, realizando
cierto grado de optimización.cierto grado de optimización.
– JIT no pierde tiempo enJIT no pierde tiempo en
optimizar código que no se ejecutará.optimizar código que no se ejecutará.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
19. Características: AltasCaracterísticas: Altas
prestacionesprestaciones
• Se introdujo un nuevo JIT: HotSpot.Se introdujo un nuevo JIT: HotSpot.
– Incluye compilador dinámicoIncluye compilador dinámico
y una máquina virtual paray una máquina virtual para
Interpretar bytecodes.Interpretar bytecodes.
– Mejor soporte para ordenadoresMejor soporte para ordenadores
con varios procesadores,con varios procesadores,
mayor escalabilidad.mayor escalabilidad.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
20. Características: MultithreadCaracterísticas: Multithread
• Ejecución de varias tareas a la vez.Ejecución de varias tareas a la vez.
Permite muchas actividadesPermite muchas actividades
simultáneas en un programa.simultáneas en un programa.
• Posee una serie de clases que facilitanPosee una serie de clases que facilitan
su utilización.su utilización.
• Mejor rendimiento interactivo y mejorMejor rendimiento interactivo y mejor
comportamiento en tiempo real.comportamiento en tiempo real.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
21. Características: DinámicoCaracterísticas: Dinámico
• No conecta todos los módulos queNo conecta todos los módulos que
comprenden una aplicación hasta elcomprenden una aplicación hasta el
mismo tiempo de ejecución.mismo tiempo de ejecución.
• Las librerías nuevas o actualizadas noLas librerías nuevas o actualizadas no
paralizan la ejecución de lasparalizan la ejecución de las
aplicaciones siempre que mantengan laaplicaciones siempre que mantengan la
API anterior.API anterior.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
22. Características:Características:
DinámicoDinámico
• Capaz de traer automáticamente cualquierCapaz de traer automáticamente cualquier
pieza que el sistema necesite para funcionar.pieza que el sistema necesite para funcionar.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
23. ¿Qué ventajas tengo como¿Qué ventajas tengo como
desarrollador?desarrollador?
• Comenzar rápidamente.Comenzar rápidamente.
• Escribir menos código, 4 veces menosEscribir menos código, 4 veces menos
que en C++.que en C++.
• Escribir mejor código.Escribir mejor código.
• Desarrollar programas más rápidamente.Desarrollar programas más rápidamente.
• Eliminar dependencias de la plataforma.Eliminar dependencias de la plataforma.
• Escribir una vez, ejecutar en cualquierEscribir una vez, ejecutar en cualquier
parte.parte.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
24. Tipos de datos.Tipos de datos.
• Tipos primitivosTipos primitivos
Sin métodos no necesitan unaSin métodos no necesitan una
invocación para ser creados.invocación para ser creados.
• byte, short, Int, long, float, double, char,byte, short, Int, long, float, double, char,
boolean.boolean.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
25. Tipos de datos.Tipos de datos.
• Tipos Objeto.Tipos Objeto.
Con métodos necesitan unaCon métodos necesitan una invocacióninvocación
para ser creados.para ser creados.
- Tipos de la biblioteca estándar de Java.Tipos de la biblioteca estándar de Java.
- Tipos definidos por el programador/usuario.Tipos definidos por el programador/usuario.
- Arrays.Arrays.
- Tipos envoltorio o wrapper.Tipos envoltorio o wrapper.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
26. Tipos de Operadores.Tipos de Operadores.
- Un operador lleva a cabo operaciones sobre unoUn operador lleva a cabo operaciones sobre uno
(operador unario), dos (operador binario) o tres(operador unario), dos (operador binario) o tres
(operador ternario) datos u operandos de tipo(operador ternario) datos u operandos de tipo
primitivo devolviendo un valor determinadoprimitivo devolviendo un valor determinado
también de un tipo primitivo.también de un tipo primitivo.
- Dentro de los tipos de operadores tenemos:Dentro de los tipos de operadores tenemos:
Operador asignación, Operadores aritméticos.Operador asignación, Operadores aritméticos.
Operadores aritméticos incrementales.Operadores aritméticos incrementales.
Operadores Aritméticos combinados.Operadores Aritméticos combinados.
Operadores de relación, Operadores lógicos.Operadores de relación, Operadores lógicos.
Operadores de bit, Operador concatenación de cadenas.Operadores de bit, Operador concatenación de cadenas.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
27. Operador asignaciónOperador asignación..
= Asignación.= Asignación.
+= Suma y asignación.+= Suma y asignación.
–– = Resta y asignación.= Resta y asignación.
*= Producto y asignación*= Producto y asignación
/= División y asignación./= División y asignación.
%= Resto de la división entera y asignación.%= Resto de la división entera y asignación.
<<= Desplazamiento a la izquierda y asignación.<<= Desplazamiento a la izquierda y asignación.
>>= Desplazamiento a la derecha y asignación.>>= Desplazamiento a la derecha y asignación.
>>>= Desplazamiento a la derecha y asignación>>>= Desplazamiento a la derecha y asignación
rellenando con ceros.rellenando con ceros.
&= and sobre bits y asignación.&= and sobre bits y asignación.
|= or sobre bits y asignación.|= or sobre bits y asignación.
^= xor sobre bits y asignación.^= xor sobre bits y asignación.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN