java

Post on 26-May-2015

1.717 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Java

Programación 301

• 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)

• 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.

• 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

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

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

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

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.

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.

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

• 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

Arquitectura Neutral y portable

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

• 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.

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

necesitan• Puede enlazarse código desde múltiples

fuentes:• (incluido Internet)

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)

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

• // 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

• 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

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

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.

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.

• 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

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

De asignación

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

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

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

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

pre-incrementopost-incrementopre-decrementopost-decremento

Fuentes Bibliográficas

• Ver bibliografía básica del programa

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

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

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

top related