SlideShare una empresa de Scribd logo
1 de 32
INTRODUCCIÓN
A JAVA
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
¿Qué es Java?
La tecnología Java es un
lenguaje de programación y
una plataforma.
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
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
6
La plataforma Java 2
7
Características Principales
• Sencillo
• Orientado a objetos
• Distribuido
• Interpretado
• Robusto
• Seguro
• Arquitectura neutra
• Portable
• Altas prestaciones
• Multithread (multihilo)
• Dinámico
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
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
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
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
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
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
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
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
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.
17
Características: Portable
•Más allá de la portabilidad básica
por ser de arquitectura
independiente.
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
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
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
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
Características: Dinámico
• Capaz de traer automáticamente cualquier pieza
que el sistema necesite para funcionar.
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
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
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
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
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
28
Modificar variables de entorno
29
Ejemplo:
• class Ejemplo {
public static void main(String args[]){
System.out.println("Bienvenido a
Programacion III");
}
}
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
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
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.

Más contenido relacionado

Similar a Introduccion Java.ppt

Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Javapbcanessa
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloAngelDX
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avilaadezhiz
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_javaSaviotec
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos javaayreonmx
 
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenIniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenVíctor Leonel Orozco López
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.Internet Security Auditors
 
Lps 18 basesdedatos
Lps 18 basesdedatosLps 18 basesdedatos
Lps 18 basesdedatosdevsco63
 

Similar a Introduccion Java.ppt (20)

todo sobre java
todo sobre javatodo sobre java
todo sobre java
 
Javajulian
JavajulianJavajulian
Javajulian
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de Desarrollo
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avila
 
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
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos java
 
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenIniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Java de erlin
Java de erlinJava de erlin
Java de erlin
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Seminario Jade 2014
Seminario Jade 2014Seminario Jade 2014
Seminario Jade 2014
 
Lps 18 basesdedatos
Lps 18 basesdedatosLps 18 basesdedatos
Lps 18 basesdedatos
 

Introduccion Java.ppt

  • 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
  • 7. 7 Características Principales • Sencillo • Orientado a objetos • Distribuido • Interpretado • Robusto • Seguro • Arquitectura neutra • Portable • Altas prestaciones • Multithread (multihilo) • Dinámico
  • 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.
  • 17. 17 Características: Portable •Más allá de la portabilidad básica por ser de arquitectura independiente.
  • 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.
  • 22. 22 Características: Dinámico • Capaz de traer automáticamente cualquier pieza que el sistema necesite para funcionar.
  • 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.