SlideShare una empresa de Scribd logo
1 de 35
10/09/201710/09/2017
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
LENGUAJE DELENGUAJE DE
PROGRAMACIÓNPROGRAMACIÓN
JAVAJAVA
Í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
¿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
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
La plataforma Java 2La plataforma Java 2
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
¿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
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
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
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
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
Operadores aritméticos.Operadores aritméticos.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
AAritméticos incrementales.ritméticos incrementales.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
Aritméticos combinados.Aritméticos combinados.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
Operadores de relación.Operadores de relación.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
Operadores lógicos.Operadores lógicos.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
Operadores de bit.Operadores de bit.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
Operadores.Operadores.
Operador concatenación de cadenas.
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN

Más contenido relacionado

La actualidad más candente

Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. DetallesCursando Desarrollo Web
 
Lenguaje de Programación Java
Lenguaje de Programación JavaLenguaje de Programación Java
Lenguaje de Programación JavaAlfredito Aguayo
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conprejtk1
 
Java kaime con
Java kaime conJava kaime con
Java kaime conjtk1
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharudalrico
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma JavaEudris Cabrera
 
Fundamentos de Java
Fundamentos de Java Fundamentos de Java
Fundamentos de Java jmosorio777
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaSantiago Sora
 

La actualidad más candente (18)

Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
Java basico
Java basicoJava basico
Java basico
 
Java 2010: presente, límites y futuro
Java 2010: presente, límites y futuroJava 2010: presente, límites y futuro
Java 2010: presente, límites y futuro
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 
Lenguaje de Programación Java
Lenguaje de Programación JavaLenguaje de Programación Java
Lenguaje de Programación Java
 
Java de erlin
Java de erlinJava de erlin
Java de erlin
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Lenguaje de programación java
Lenguaje de programación javaLenguaje de programación java
Lenguaje de programación java
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java
 
Programación de Software - Java
Programación de Software - JavaProgramación de Software - Java
Programación de Software - Java
 
Fundamentos de Java
Fundamentos de Java Fundamentos de Java
Fundamentos de Java
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Ut
UtUt
Ut
 

Similar a Lenguaje de programación Java

Similar a Lenguaje de programación Java (20)

Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Java janner
Java   jannerJava   janner
Java janner
 
Programación java 1
Programación java 1Programación java 1
Programación java 1
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Clase ii
Clase iiClase ii
Clase ii
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Java
JavaJava
Java
 
Javajulian
JavajulianJavajulian
Javajulian
 
1.introduccion java
1.introduccion java1.introduccion java
1.introduccion java
 
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferenciaMi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferencia
 
Antecedentes java
Antecedentes java Antecedentes java
Antecedentes java
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
10 lenguajes de programacion
10 lenguajes de programacion10 lenguajes de programacion
10 lenguajes de programacion
 
JAVA
JAVAJAVA
JAVA
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
 
Introducción a Java
Introducción a JavaIntroducción a Java
Introducción a Java
 

Más de Eysin Lorenzo Delgado Mejía (11)

Controles de Android
Controles de AndroidControles de Android
Controles de Android
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Aplicaciones Móviles
Aplicaciones MóvilesAplicaciones Móviles
Aplicaciones Móviles
 
Desarrollo aplicaciones Móviles
Desarrollo aplicaciones Móviles Desarrollo aplicaciones Móviles
Desarrollo aplicaciones Móviles
 
App
AppApp
App
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Gobierno Electrónico
Gobierno ElectrónicoGobierno Electrónico
Gobierno Electrónico
 
Presentación1
Presentación1Presentación1
Presentación1
 
Connection
ConnectionConnection
Connection
 
Normalización de base de datos
Normalización de base de datosNormalización de base de datos
Normalización de base de datos
 
Jdbc lenguaje de programación
Jdbc lenguaje de programaciónJdbc lenguaje de programación
Jdbc lenguaje de programación
 

Lenguaje de programación Java

  • 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
  • 28. Operadores aritméticos.Operadores aritméticos. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 29. Operadores.Operadores. AAritméticos incrementales.ritméticos incrementales. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 30. Operadores.Operadores. Aritméticos combinados.Aritméticos combinados. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 31. Operadores.Operadores. Operadores de relación.Operadores de relación. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 32. Operadores.Operadores. Operadores lógicos.Operadores lógicos. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 33. Operadores.Operadores. Operadores de bit.Operadores de bit. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 34. Operadores.Operadores. Operador concatenación de cadenas. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN
  • 35. LOS LÍDERES DE LA PROGRAMACIÓNLOS LÍDERES DE LA PROGRAMACIÓN