34
1 Características generales del lenguaje Java María Consuelo Franky

Características generales del lenguaje Javacbustaca/docencia/POO-2016-01/... · en 1993 se quiso incorporar la tecnología de video por demanda ... .NET (usa lenguaje C# principalmente)

  • Upload
    hoangtu

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

1

Características generales del

lenguaje Java

María Consuelo Franky

Tema 2 Java - CincoSOFT

2

Temario

Historia del desarrollo de Java

Ventajas sobre otros lenguajes O.O.

applets vs. aplicaciones

Ambiente básico JDK

Vistazo inicial a las características de Java: Variables y expresiones aritméticas

Tipos de Estructuras de control

Tema 2 Java - CincoSOFT

3

1.

Historia del desarrollo de Java

4

Origen de Java

Proyecto Green de la SUN (1991) para desarrollar software controlador

de electrodomésticos (dirigido por James Gosling)

se requería un lenguaje compacto, confiable, OO, independiente de la

plataforma

C++ fue descartado (por ser complejo y no confiable) ==> se definió Java

en 1993 se quiso incorporar la tecnología de video por demanda

en 1993 apareció NCSA Mosaic 1.0 ==> de 1993 - 1995 Java se redefinió

para Internet

SUN (FirstPerson Inc.) siguió trabajando en aplicar Java como controlador

de televisión interactiva y de otros electrodomésticos

Java se popularizó como lenguaje general para aplicaciones modernas

2 plataformas dominantes para desarrollar aplicaciones empresariales: Java

EE (usa lenguaje Java), .NET (usa lenguaje C# principalmente)

Tema 2 Java - CincoSOFT

5

2.

Ventajas sobre otros lenguajes O.O.

Tema 2 Java - CincoSOFT

6

Java tiene las virtudes de C++

pero no sus defectos:

– Como C++, Java es compacto, expresivo, OO,

multithreading

– A diferencia de C++ :

Java obliga a usar el paradigma OO

no soporta apuntadores

recolección automática de basura

no permite variables globales ni funciones sueltas

ofrece objetos arreglos de dimensión arbitraria

menos alternativas en tipos y mayor chequeo de tipos

no hay preprocesamiento (#include) : dinámicamente se

importan las clases necesarias

código portable (independiente de cualquier plataforma)

menores costos en desarrollo y mantenimiento

Tema 2 Java - CincoSOFT

7

programa.java

compilador javac

programa.class en código bytecode para

la máquina JVM (Java Virtual Machine)

JRTS

(Java Run-Time System)

en el browser de la plataforma 1

interpretación del

programa.class

en la plataforma 1

JRTS para plataforma 2

JIT

(Just-In-Time compiler)

programa.exe en código

nativo de la plataforma 2

ejecución

ejecución del programa.exe en la

plataforma 2

Portabilidad de Java: se compila una vez

y se ejecuta en cualquier plataforma

Tema 2 Java - CincoSOFT

8

– el bytecode Java es neutral respecto a las arquitecturas => no puede explotarlas

– fuerte chequeo de tipos y manejo de excepciones

– ausencia de apuntadores => no hay referencias inválidas de memoria

– el JRTS (Java Run Time System) :

chequea que el bytecode esté bien construido

separa clases del JRTS || clases del usuario || clases que vienen por la red

– el web browser pone barreras de seguridad a las clases que vienen por la red en

forma de applets (en principio, no pueden consultar ni modificar archivos del

escritorio)

– mecanismos avanzados ofrecidos por Java:

encripción de datos antes de transmitirlos

generación de llaves y de firmas digitales para un archivo applet (javakey)

definición de políticas de seguridad basadas en la auntenticación de applets

Seguridad ofrecida por Java:

Tema 2 Java - CincoSOFT

9

3.

Applets versus aplicaciones Java

Tema 2 Java - CincoSOFT

10

Interacción de un applet

o de una aplicación Java

con múltiples servidores

escritorio

con browser y disco

servidor Web

y de Aplicaciones

aplicación 1

Java

applet

BD

servidor de BD

y de recursos

aplicación 3

Java

BD

servidor de BD

y de recursos

aplicación 2

Java

aplicación 4

JAVA

Tema 2 Java - CincoSOFT

11

Usos de los Applets y de las

Aplicaciones Java

Los applets permiten :

Mostrar información al interior de una empresa

Mostrar al público información sobre productos

servir de “Front end” para las aplicaciones operativas de la empresa

Comercio electrónico

Traer las aplicaciones de oficina a los escritorios livianos

Las aplicaciones Java :

Residen en escritorios pesados (de la empresa) o en los servidores

Pueden interactuar con Bases de Datos o con otras aplicaciones

JAVA de otros servidores

Pueden realizar servicios de procesamiento para los applets

Pueden interactuar con aplicaciones antiguas o heterogéneas

Tema 2 Java - CincoSOFT

12

5.

Ambiente básico JDK

(Java Development Kit)

4

Tema 2 Java - CincoSOFT

13

sitio internet donde se obtiene última versión del JDK (actualmente JDK 1.8): http://www.oracle.com/technetwork/java/javase/downloads/index.html

contenido del directorio jdk resultado de la instalación:

jdk1.8\bin : herramientas de desarrollo

jdk1.8\jre : soporte de ejecución básico (JVM)

jdk1.8\lib : librerías de soporte

jdk1.8\demo : ejemplos

jdk1.8\include: soporte para programar métodos

nativos.

tutorial oficial: http://download.oracle.com/javase/tutorial/

CLASSPATH: variable del sistema que especifica dónde buscar las

clases de JAVA en compilación y ejecución

ej de valor: C:/jdk/lib;C:/misclases

Instalación, directorios y

configuración del JDK :

Tema 2 Java - CincoSOFT

14

clase: modela un tipo de objeto

paquete: conjunto de clases

paquetes utilitarios:

• java.lang : clases básicas (importado por defecto)

• java.applet : manejo de applets

• java.io : manejo de E/S sobre archivos

• java.net : servicios de conectividad (sockets TCP/IP, URL)

• java.util : manejo de objetos flexibles: Lista, Vector, Mapa..

• java.awt : manejo de objetos de interacción gráfica

• java.sql : interacción con Bases de Datos (JDBC)

• java.rmi: interacción con objetos remotos (RMI)

• java.beans : manejo de componentes

• java.security : servicios de seguridad

• y muchos más

Principales paquetes que ofrecen las

librerías del JDK

Tema 2 Java - CincoSOFT

15

javac : compila applets o aplicaciones java

javac [opciones] MiClase.java

genera un archivo .class por cada clase definida en

MiClase.java

otro ej: javac javeriana\edu\co\miproy\MiClase.java

nota: importa la diferencia entre mayúsculas y minúsculas en

el nombre del archivo

principales opciones :

-verbose (da información al compilar)

-d directorio (donde se quieren dejar los .class)

-classpath ruta (donde buscar las clases, en lugar de lo

que indique CLASSPATH)

Principales herramientas del JDK :

Tema 2 Java - CincoSOFT

16

java : interpreta (ejecuta) una aplicación java

java [opciones] Miclase [argumentos]

debe existir el archivo Miclase.class

otro ej: java javeriana.edu.co.miproy.MiClase

principales opciones :

-verbose (da información sobre clases cargadas)

-classpath ruta (donde buscar las clases, en

lugar de lo que indique CLASSPATH)

Tema 2 Java - CincoSOFT

17

javadoc : genera la documentación de una aplicación java

javadoc javeriana\edu\co\miproy\*.java

muchas opciones :

-visibilidad

-paquetes a incluir o excluir

-apariencia

Tema 2 Java - CincoSOFT

18

appletviewer : interpreta un applet java sin requerir ningún

navegador

appletviewer [opciones] mihoja.html

appletviewer [opciones]

http://host/dir/mihoja.html

mihoja.html indica el archivo Miapplet.class que

quiere invocarse

principal opción :

-debug (permite hacer depuración con jdb)

Tema 2 Java - CincoSOFT

19

jdb : herramienta de depuración

javap : analiza archivos java informando cúales son sus clases, métodos y atributos

javadoc : herramienta que genera documentación HTML a partir de una aplicación o applet java

javah : herramienta que genera archivos .h en lenguaje C para la interacción entre aplicaciones java y aplicaciones C

rmic : herramienta que genera módulos stub y skeleton para la interacción RMI entre objetos java distribuidos

jar : comprime o descomprime archivos java

javaKey : genera firma digital para un applet

etc.....

Tema 2 Java - CincoSOFT

20

Ejercicio “Hola Mundo”

Desarrollar con JDK una aplicación Hola1.java que imprima

por la salida estándar, el mensaje :

“Hola Mundo: esta es la primera aplicacion

java de Fulanito de Tal”

la clase debe llamarse Hola1.class

archivos .class deben quedar en subdirectorio clases

ejemplo de código:

class Hola1 {

public static void main (String[] args) {

System.out.println (“Hola mundo...”);

}

}

Tema 2 Java - CincoSOFT

21

Parámetros para una aplicación java

En la línea de comandos de java pueden ir argumentos:

java miclase cadena1 cadena2 ....

El método main tiene como parámetro una arreglo de cadenas :

class miclase {

public static void main(String[] args ) {

....

}

}

args.length es el número n de argumentos

args[i] es la cadena usada como argumento i-ésimo

(se cuenta i desde 0 hasta n-1)

Tema 2 Java - CincoSOFT

22

Ejercicio “EcoJDK”

Desarrollar con JDK una aplicación Eco1.java que imprima por

la salida estándar los argumentos de la línea de comandos,

imprimiendo uno por línea:

la clase debe llamarse Eco1.class

archivos .class deben quedar en subdirectorio clases

debe chequear que haya argumentos

Tema 2 Java - CincoSOFT

23

5.

Variables

y expresiones aritméticas

5

Conceptos de Memoria Variables

– Una variable es un espacio en la memoria del PC

– Cada variable tiene un nombre, un tipo , un tamaño y un valor

24 Programación Orientada a Objetos

Declaración e inicialización de variables de

Memoria Para declarar una variable:

int number1;

Para inicializar una variable:

number1 = 45;

Se puede declarar e inicializar al mismo tiempo:

int number2 = 72;

int sum = number1 + number2;

25 Programación Orientada a Objetos

Expresiones Aritméticas

Programación Orientada a Objetos 26

Operación Operador Expresión algebráica Expresión Java

Adición + f + 7 f + 7

Substración – p – c p - c

Multiplicación * bm b * m

División / x / y ó ó x ÷ y x / y

La división entre enteros trunca el resultado:

7 / 5 es igual a 1

Operador módulo (%) obtiene el residuo

7 % 5 es igual a 2

Precedencia de los operadores

Algunos operadores aritméticos actúan antes que otros, por ejemplo, la

multiplicación antes de la adición

Coloque paréntesis para evitar ambigüedades y facilitar la lectura de la

expresión

Programación Orientada a Objetos 27

a + b + c / 3

( a + b + c ) / 3

Tipos primitivos de Java

Ejemplos

– double d1 = 123.4;

– double d2 = 1.234e2;

– float f1 = 123.4f;

– short edad;

Ver tamaños en el tutorial:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Valores por defecto para Tipos primitivos de

Java

Al crear las variables ellas se inicializan con un valor

por defecto solo si son atributos

Constantes

Si se quiere que un valor permanezca sin cambiar

durante la ejecución de un programa, se debe usar

una constante.

– Utilice la palabra reservada final para definir

una constante y asigne un valor en su

declaración.

Programación Orientada a Objetos 30

Tema 2 Java - CincoSOFT

31

5.

Tipos de Estructuras de control

6

Tipos de Estructuras de Control

En Java las sentencias de un programa se ejecutan normalmente en el orden en que son escritas.

Los programas Java se componen de tres tipos de estructuras de control – Estructuras de secuencia

– Estructuras de selección

– Estructuras de repetición

32 Programación Orientada a Objetos

Estructuras de selección

– Sentencia if Sentencia de selección simple

– Sentencia if else Sentencia de selección doble

– Sentencia switch Sentencia de selección múltiple

33 Programación Orientada a Objetos

Estructuras de repetición

– También conocidas como ciclos

– Ejecutan de manera repetida una acción mientras la condición del ciclo sea verdadera

– Sentencia while Ejecuta las acciones de su cuerpo 0 ó más veces

– Sentencia do while Ejecuta las acciones de su cuerpo 1 ó más veces

– Sentencia for Ejecuta las acciones de su cuerpo 0 ó más veces

34 Programación Orientada a Objetos