java

29
Java Programación 301

Upload: maria-luisa-velasco

Post on 26-May-2015

1.717 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java

Java

Programación 301

Page 2: Java

• Sun Microsystems (Patrick Naughton y• James Gosling)• Java: Marca de Café• Necesaria portabilidad de código• Inicialmente orientado a Internet• Impulsado por compatibilidad con Netscape• Navigator (navegador de Internet)

Page 3: Java

• Orientado a Objetos• Totalmente Portable• Lenguaje Interpretado (compilado a código• intermedio, no a código máquina)• Java Virtual Machine (JVM)• ByteCode: Independiente de la maquina• Gestión Automática de Memoria Dinámica• Recolector de basura (Garbage Collector)• Case Sensitive (Sensible a Mayús. / Minus.

Page 4: Java

• Compilador: javac• Interprete: java• Plataforma de ejecución: JRE (Java Runtime• Environment):• Incluye JVM• Plataforma de desarrollo: Java SDK (Java• Software Development Kit):• Incluye Compilador, etc.• Incluye JRE

Page 5: Java

• Lenguaje de programación Java:• · Seguro• · Robusto · Dinámico• · Interpretado · Multitarea• · Distribuido · Altas prestaciones• · Orientado a objetos · Portable• · Simple · Arquitectura neutral

Page 6: Java

• Lenguaje simple: Sintaxis similar a C++, pero sin las

complejidades de éste (no hay punteros)• Orientado a objetos

Page 7: Java

Robusto

• Comprobaciones restrictivas en tiempo de compilación.

• Ej: No se permite usar variables sin inicializarlas ni herencia múltiple.

• Mecanismos de manejo de excepciones en• tiempo de ejecución.• Eliminación de las características del lenguaje• que pueden conducir a errores (Ej: punteros).• Gestión de memoria de forma automática.

Page 8: Java

Seguro

• Java implementa mecanismos de seguridad que limitan el acceso a recursos de las máquinas donde se ejecuta la aplicación, sobre todo en los Applets.

• Pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc.

Page 9: Java

Arquitectura Neutral y portable

• Java: diseñado para implementar aplicaciones que deben ser ejecutadas en entornos de redes

• distribuidas.• Problemas:• Múltiples arquitecturas hardware• Diversos sistemas operativos• Solución:• El compilador genera un código neutral

intermedio: bytecode

Page 10: Java

• Este código es interpretado sobre la maquina virtual de Java

• (Java Virtual Machine, JVM) La JVM convierte el código neutro al código

particular de la máquina

Page 11: Java

Arquitectura Neutral y portable

Page 12: Java

Java Virtual Machine (JVM)

• El compilador genera un código neutro:• Los bytecodes → ficheros compilados con• extensión *.class Java Virtual Machine• Interpreta el código neutro y lo convierte a

código particular de la CPU

Page 13: Java

• Interpretado• El intérprete Java puede ejecutar bytecodes sobre cualquier máquina en

la que el intérprete haya sido portado.

• Multitarea:

• Java permite construir aplicaciones multitarea• (múltiples hilos de ejecución), Java soporta sincronización de múltiples

hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.

Page 14: Java

• Dinámico• Las clases son enlazadas sólo conforme se

necesitan• Puede enlazarse código desde múltiples

fuentes:• (incluido Internet)

Page 15: Java

Ejemplo Programa en Java

• import java.io.*;• 2. // Clase HolaMundo• 3. class HolaMundo• 4. {• 5. public static void main(String arg[])• 6. {• 7. System.out.println("Hola Mundo");• 8. }// fin metodo principal• 9. }// fin clase HolaMundo• Debe guardarse en un archivo llamado HolaMundo.java (el

nombre del archivo debe coincidir con el de la clase)

Page 16: Java

• import java.io.*;• Importa las clases del package java.io.

Page 17: Java

• // Clase HolaMundo• Comentarios (como en C++)• También es válido: /* Clase HolaMundo */• 3. class HolaMundo• Indica que se va a definir la clase HolaMundo• En Java todo son clases: no se puede definir una• variable o una función fuera de una clase• La clase HolaMundo tiene como finalidad contener• al método main

Page 18: Java

• Compilación del programa:• javac HolaMundo.java• Genera el archivo HolaMundo.class• Ejecución del programa:• java HolaMundo• Provoca:• 1. El intérprete cargue el archivo HolaMundo.class• 2. Encuentre la clase del mismo nombre con un método• público y estático llamado main• 3. Proceda a ejecutar el programa invocando dicho• método

Page 19: Java

• Ficheros Java:• Fuentes: *.java• Compilados: *.class

Page 20: Java

Introducción al lenguaje Java

• VARIABLES Y TIPOS DE DATOS Obligado• No pueden contener espacios en blanco.• Dos variables no pueden tener el mismo nombre.• No podemos utilizar palabras reservadas de Java.• Recomendado• Las variables comienzan por una letra minúscula.• Si la variable está compuesta por dos o más palabras, la

segunda ( y siguientes) comienzan por letra mayúscula.• Los nombres de las clases comienzan por letra mayúscula.

Page 21: Java

Tipos de datos

byteshortintlongfloatdoublecharboolean

Número entero de 16 bits.Número entero de 32 bits.Número entero de 64 bits.Número de punto flotante de 32 bits.Número de punto flotante de 64 bits.Carácter ASCII.Valor verdadero o falso.

Page 22: Java

• Enteros• Siempre con signo• Cuatro tipos: byte, short, int, long• Rango independiente de la plataforma• Enteros por defecto son tipo “int”• Para long añadir “L” al final• 989493849859L• -284829848L• Para float añadir “F” al final

Page 23: Java

OPERACIONES Y OPERADORES• Asignación• Aritmética• Relacional• Lógica• A nivel de bit.

Page 24: Java

De asignación

a+=ba-= ba*= ba/=ba%=b

a= a+ba= a-ba= a*ba= a/ba= a% b

Page 25: Java

Operadores relacionalesa > ba < ba >= ba <= ba = = ba != b

true si a es mayor que btrue si a es menor que btrue si a es mayor o igual que btrue si a es menor o igual que btrue si a es igual que btrue si a es distinto que b

Page 26: Java

Operadores de incremento+ + aa + +- - aa - -

pre-incrementopost-incrementopre-decrementopost-decremento

Page 27: Java

Fuentes Bibliográficas

• Ver bibliografía básica del programa

Page 28: Java

Operadores lógicosa & & ba | | b!a

true si a y b son verdaderostrue si a o b son verdaderostrue si a es false

Page 29: Java

Operadores de bitsa >> ba << ba <<< ba & ba | ba ^ b˜ a

Desplaza los bits de a hacia la derecha b vecesDesplaza los bits de a hacia la izquierda b vecesigual que el anterior pero sin signoSuma lógica entre a y bO lógico entre a y bO exclusivo entre a y bNegación lógica de a