PDF de programación - lenguaje Java

Imágen de pdf lenguaje Java

lenguaje Javagráfica de visualizaciones

Publicado el 17 de Septiembre del 2018
835 visualizaciones desde el 17 de Septiembre del 2018
980,9 KB
128 paginas
Creado hace 7a (15/12/2012)
Lenguaje java



Ing° Pedro Beltrán Canessa
pbeltranc@uladech.pe



L i c e n c i a d e U s o



Acerca de este documento

Ing° Pedro Beltrán Canessa
pbeltranc@uladech.pe

Se otorga permiso para copiar, distribuir y/o modificar este
documento bajo los términos de la Licencia de Documentación Libre
de GNU en su versión 1.2 o cualquier otra versión posterior publicada
por la Free Software Foundation, siendo todo él invariante. Una copia
de la licencia está disponible en la web de la Free Software
Foundation, dentro de la sección titulada GNU Free Documentation
License.

Este documento ha sido realizado íntegramente con software libre.



2



Í n d i c e

● Licencia de uso de este documento

● Introducción a la programación orientada a objetos

● Introducción a la tecnología java

● Sintaxis básica

● Funciones básicas de E/S

● Clases y Objetos

● Herencia



Interfaces

● Arrays y Strings

● Paquetes

● Excepciones



3



I n t r o d u c c i ó n a l a O O P



● Formas de programación:

– Procedural: divide cada tarea de un programa en un conjunto de

estructuras de datos y funciones

– Orientada a Objetos (OOP): divide cada tarea de un programa en

un conjunto de objetos que tienen asociados atributos y métodos

● Los lenguajes pueden ser mezcla de ambas técnicas.

Ejemplos de lenguajes que tienen OOP:
smalltalk, C++, java, python, ruby, C#, php5

4



I n t r o d u c c i ó n a l a O O P



Conceptos

● Clase: abstracción de las entidades de la vida real,

incluyendo:

– Atributos o características de la clase

– Métodos u operaciones realizables sobre la clase.

(Miembros = atributos + métodos)

● Objeto: instancia concreta de una clase

● Mensaje: lo que se intercambia entre objetos



5



I n t r o d u c c i ó n a l a O O P



Conceptos

● Herencia: posibilidad de que una clase adquiera atributos

y/o métodos de otra ya existente, pudiendo además
añadirse otros miembros, y redefinirse métodos heredados.
A la clase madre se le llama “superclase” y a la hija
“subclase”.

● Polimorfismo: métodos con igual nombre implementan

distintas funcionalidades según las clases sobre las que se
apliquen. Concepto relacionado: sobrecarga

● Encapsulamiento: ocultación de código y datos de objetos



6



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a

Características generales del lenguaje

● Es mucho más que un lenguaje

● Especificación completa del lenguaje:
http://java.sun.com/docs/books/jls/

● Más información en:

http://java.sun.com/j2se/1.5.0/docs/guide/language/
http://en.wikipedia.org/wiki/Java_%28programming_language%29
http://en.wikipedia.org/wiki/Java_version_history

● Nacido en la década de 1990. Antepasado: OAK



7



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



Características generales del lenguaje

● Orientado a objetos

● Lenguaje compilado (bytecodes) e interpretado (JVM).

– JVM: Es el intérprete de bytecodes a código binario nativo

de cada plataforma.

– La JVM está implementada en bastantes plataformas HW y de S.O.

y se habla de independencia de plataforma. Ej: teléfonos móviles

– A pesar de ello, también hay:

● Compiladores puros para java que traducen el código fuente a código

máquina nativo.

● Plugins JIT (Just In Time) para la JVM que aceleran la ejecución en la
JVM mediante la compilación de bytecodes a código máquina nativo.

● Proporciona herramientas y librerías para desarrollar

código distribuido (ej. RMI)

8







I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



JVM

Programa fuente

F.java

Compilación

Byte-codes

Clase1.class
Clase2.class
ClaseN.class

Máquina 1

Máquina 2

Máquina 3

JVM para la
máquina 1

JVM para la
máquina 2

JVM para la
máquina 3

Interpretación

Interpretación

Interpretación

Código

máquina 1

Código

máquina 2

Código

máquina 3

9



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



JVM

● Gestión de la memoria:

– El programador no ha de liberar memoria. Esto lo hace la JVM

mediante el recolector de basura (“garbage collector”), lanzando
un thread de forma automática.

– No hay punteros. Más seguro que C.

● Gestión del código en ejecución:

– Carga dinámica y distribuida: distintas partes de un programa se

van cargando según se van necesitando, y pueden estar en
máquinas diferentes.

– Ejecución de hilos paralelos (“threads”) con sincronización. Mejor

rendimiento para los procesadores de hoy en día

● Acceso a hardware restringido (sólo mediante métodos

nativos de otros lenguajes, no utilizables por applets)

10



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



JVM
● Seguridad:

– Comprobación de punteros y de límites de arrays

– Excepciones

– Verificación de bytecodes

● No desbordamientos de pila
● Parámetros conocidos y correctos
● No conversiones ilegales de tipos
● Accesos legales a atributos/métodos de objetos
● No intentos de violar normas acceso/seguridad

– Cargador de clases:

● Separa el espacio de nombres local de los recursos procedentes de la red

● No caballos de Troya. Las clases se buscan primero entre las locales y

luego en exteriores

– Apertura de ficheros y arranque de otras aplicaciones en máquina 11

remota, no en local



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a

JVM

● Distinguir:

– Especificación

– Implementación. Ej. Sun HotSpot (1999) escrita en C++

● Más info en:

– http://en.wikipedia.org/wiki/Java_Virtual_Machine

– http://en.wikipedia.org/wiki/List_of_Java_virtual_machines

– http://en.wikipedia.org/wiki/HotSpot



12



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a

Comparación con C

● Algunas diferencias con C:

– No tiene preprocesado ni ficheros de cabecera

– No hay estructuras

– Gestión de memoria automática (“garbage collector”).

– No hay punteros.

– No es posible acceder a elementos fuera de rango (strings y array)

● En general:

– Más seguro

– Más lento por ser intepretado, aunque hay compiladores JIT

(pierde portabilidad)



13



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a

Aplicaciones

● Programas “standalone” convencionales. Ej.

– Software para teléfonos móviles

– Software para PC (Windows o GNU/Linux), ej. azureus

– Software para servidor, ej. páginas web dinámicas generadas por

un servidor que ejecute servlets o jsp

● Applets: programas ejecutados en un navegador web que

tenga cargado un plugin

● Aplicaciones de tipo “Java Web Start”, descargadas a través

de internet sin necesidad de un navegador.



14



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a

Interfaces gráficos de usuario

● Principales:

– AWT (de Sun) es el más antiguo

– Swing (de Sun)

– SWT (de IBM Eclipse). Apariencia de la plataforma sobre la que

corre.

● Bindings para entornos gráficos específicos, ej. KDE/qt,

GNOME/gtk,...



15



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



Tecnologías Java de Sun

● Sun tiene distintas familias de Tecnologías:

– Java Platform, Micro Edition

(Java ME): dispositivos ej. móviles

– Java Platform, Standard Edition
(Java SE): entornos workstation

– Java Platform, Enterprise Edition
(Java EE): entornos distribuidos

– Otras: Java Card,...

● Ver http://java.sun.com/reference/api



16

I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



Tecnologías Java de Sun - Familia SE



17



I n t r o d u c c i ó n a l a t e c n o l o g í a
j a v a



Tecnologías Java de Sun - Familia SE

● Tiene dos partes:

– El entorno de ejecución (JRE) consta de:

● Librerías java (bytecodes de los paquetes compilados) o APIs

(Application Program Interface)

● JVM Hotspot
● Plugins para ejecutar los applets en los navegadores
● Entorno “Java Web Start” para descargar y lanzar aplicaciones java a

través de internet sin necesidad de un navegador.

● Documentación y Licencia

– El entorno de desarrollo (JDK) incluye herramientas como:

Compilador javac, javadoc, depurador jdb, desensamblador javap,...

● Licencia: en Nov'06 Sun libera el compilador javac, la JVM y la

herramienta de ayudas bajo licencia GPL2. Faltan algunas
librerías, debido a que no fueron desarrolladas directamente por
18
Sun. También deja bajo GPLv2 JME y JEE



I n t r o d u c c i ó n a l a t e c
  • Links de descarga
http://lwp-l.com/pdf13525

Comentarios de: lenguaje Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad