SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
INSTITUTO UNIVERSITARIO POLITÉCNICO
"SANTIAGO MARIÑO"
EXTENSIÓN PORLAMAR
ESCUELA DE INGENIERÍA DE SISTEMAS
CÁTEDRA: No Numérica II
PROGRAMACIÒN NO NÙMERICA II, LENGUAJE JAVA
Autor:
Br. José Cortez C.I: V-17.898.476
Porlamar, Junio 2013
Introducción
Java es un lenguaje de programación de propósito general,
concurrente, orientado a objetos y basado en clases que fue diseñado
específicamente para tener tan pocas dependencias de implementación
como fuera posible. Su intención es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier
dispositivo (conocido en inglés como WORA, o "write once, run
anywhere"), lo que quiere decir que el código que es ejecutado en una
plataforma no tiene que ser recompilado para correr en otra.
Java es, a partir del 2012, uno de los lenguajes de programación
más populares en uso, particularmente para aplicaciones de cliente
servidor de web, con unos 10 millones de usuarios reportados.
El lenguaje de programación Java fue originalmente desarrollado
por James Gosling de Sun Microsystems (la cual fue adquirida por la
compañía Oracle) y publicado en el 1995 como un componente
fundamental de la plataforma Java de Sun Microsystems. Su sintaxis
deriva mucho de C y C++, pero tiene menos facilidades de bajo nivel que
cualquiera de ellos. Las aplicaciones de Java son generalmente
compiladas a bytecode (clase Java) que puede ejecutarse en cualquier
máquina virtual Java (JVM) sin importar la arquitectura de la computadora
subyacente.
Entrada y Salida de Datos en Java.
La mayoría de los programas no pueden alcanzar sus metas sin
acceder a datos externos. Estos datos se recuperan a partir de un origen
de entrada. Los resultados de un programa se envían a un destino de
salida.
La noción genérica de una fuente de entrada puede representar
muchos tipos de entrada distintos: desde un archivo de disco, un teclado
o un conector (socket) de red. Estas abstracciones son una manera limpia
de tratar la E/S sin necesitar que todo el código comprenda la diferencia
entre un teclado y una red.
Java llama flujo a esta abstracción y la implementa con varias
clases del paquete java.io. El flujo de E/S representa todos los orígenes y
destinos de los datos detrás de una interfaz uniforme. La entrada está
encapsulada en la clase InputStream y la salida en la clase OutputStream.
Estas dos clases abstractas son las que todos los objetos deberían
referenciar cuando tratan la E/S en general.
InputStream
InputStream es una clase abstracta que define el modelo de Java
para el flujo de entrada. Todos los métodos de esta clase lanzarán una
IOException si se producen condiciones de error. Este es un breve
resumen de los métodos de InputStream:
• read() devuelve una representación como entero del siguiente
byte de entrada disponible.
• read(byte[]) intenta leer hasta b.length bytes situándolos en b y
devuelve el número real de bytes que se leyeron con éxito.
• read(byte b[], int off, int len) intenta leer hasta len bytes
situándolos en b comenzando en b[off], y devuelve el número de bytes
que se leyeron con éxito.
• skip(long n) omite n bytes de la entrada, y devuelve el número de
bytes que se han omitido.
• available() devuelve el número de bytes de entrada disponibles
actualmente para su lectura.
• close() cierra el origen de entrada. Los intentos de lectura
posteriores generarán una IOException.
• mark(int limitelectura) coloca una marca en el punto actual del
flujo de entrada que seguirá siendo válida hasta que se lean limitelectura
bytes.
• reset() devuelve el puntero de entrada ala marca establecida
previamente.
• markSupported() devuelve true si se admiten mark/reset en este
flujo.
OutputStream
Igual que InputStream, OutputStream es una clase abstracta que
define el flujo de salida. Todos los métodos de esta clase devuelven un
valor void y lanzan una IOException en caso de error. Esta es una lista de
los métodos de OutputStream:
• write(int b) escribe un único byte en un flujo de salida. Observar
que el parámetro en un int, lo que permite que se llame a write con
expresiones sin tener que convertir su tipo a byte.
• write(byte b[]) escribe una matriz completa de bytes en un flujo de
salida.
• write(byte b[], int off, int len) escribe len bytes de la matriz b,
comenzando a partir de b[off].
• flush() inicializa el estado de la salida de manera que se limpian
todos los buffers.
close() cierra el flujo de salida. Los intentos de escritura
posteriores generarán una IOException.
Clases de Java para Lectura y Escritura de Dato.
El package java.io contiene las clases necesarias para
lacomunicación del programa con el exterior.dentro de este package
existen dos familias de jerarquías distintas para laentrada/salida de
datos.la diferencia principal consiste en que una opera con bytes y la otra
con caracteres (el carácter de java está formadopor dos bytes porque
sigue el código unicode). En general,para el mismo fin hay dos clases que
manejan bytes (unaclase de entrada y otra de salida) y otras dos que
manejancaracteres.desde java 1.0, la entrada y salida de datos del
programa se podía hacer conclases derivadas de inputstream (para
lectura) y outputstream (para escritura). Estas clases tienen losmétodos
básicos read () y write() que manejan bytes y que nose suelen utilizar
directamente. La figura muestra las clases que derivan de inputstream y la
figura las que derivan de outputstream.
En java 1.1 aparecieron dos nuevas familias de clases, derivadas
de reader y writer, que manejan caracteres en vez de bytes. Estas clases
resultan másprácticas para las aplicaciones en las que se maneja texto.
Las clases que heredan de reader están incluidas en la figura y las que
heredan de writer enla figura.
La intención es que se combinen para obtener elcomportamiento
deseado. Por ejemplo:
Bufferedreader in = new bufferedreader(new filereader("autoexec.bat"));
Con esta línea se ha creado un stream que permite leer del
archivoautoexec.bat. Además, se ha creado a partir de él un objeto
bufferedreader (que aporta la característica de utilizar buffer6). Los
caracteres que lleguena través del filereader pasarán a través del
bufferedreader, es decir utilizarán el buffer.a la hora de definir una
comunicación con un dispositivo siempre se comenzarádeterminando el
origen o destino de la comunicación (clases en gris) y luego se le
añadiran otras características (clases en blanco).se recomienda utilizar
siempre que sean posibles las clases reader y writer,dejando las de java
1.0 para cuando sean imprescindibles. Algunas tareas comola
serialización y la compresión necesitan las clases inputstream
y outputstream.
Entrada y Salida Estándar (teclado y pantalla)
En java, la entrada desde teclado y la salida a pantalla están
reguladas atraves de la clase system. Esta clase pertenece al package
java.lang y agrupadiversos métodos y objetos que tienen relación con el
sistema local. Contiene,entre otros, tres objetos static que son:
System.in:
Objeto de la clase inputstream preparado para recibir datos
desde la entrada estándar del sistema (habitualmente el teclado).
System.out:
Objeto de la clase printstream que imprimirá los datos en la
salidaestándar del sistema (normalmente asociado con la pantalla).
System.err:
Objeto de la clase printstream. Utilizado para mensajes de error que salen
también por pantalla por defecto.
Lectura y Escritura de Archivos
Existen las clases fileinputstream y fileoutputstream (extendiendo
inputstreamy outputstream) que permiten leer y escribir bytes en archivos.
Para archivosde texto son preferibles filereader (desciende de reader) y
filewriter (desciende de writer), que realizan las mismas funciones. Se
puede construir unobjeto de cualquiera de estas cuatro clases a partir de
un string que contengael nombre o la dirección en disco del archivo o con
un objeto de la clase file que representa dicho archivo. Por ejemplo el
código
Filereader fr1 = new filereader("archivo.txt"); es equivalente a:file f = new
file("archivo.txt"); filereader fr2 = new filereader(f);
Si no encuentran el archivo indicado, los constructores de filereader
y fileinputstream pueden lanzar la excepción
java.io.filenotfoundexception.los constructores de filewriter y
fileoutputstream pueden lanzar java.io.ioexception. Si no encuentran el
archivo indicado, lo crean nuevo. Por defecto, estas dos clases
comienzan a escribir al comienzo del archivo. Paraescribir detrás de lo
que ya existe en el archivo (“append”), se utiliza unsegundo argumento de
tipo boolean con valor true:
Filewriter fw = new filewriter("archivo.txt", true);
Lectura de Archivo:
Se puede crear un objeto bufferedreader para leer de un archivo de
texto de la siguiente manera:
Bufferedreader br = new bufferedreader(new filereader("archivo.txt"));
Utilizando el objeto de tipo bufferedreader se puede conseguir
exactamente lomismo que en las secciones anteriores utilizando el
método readline() y la clase stringtokenizer. En el caso de archivos es
muy importante utilizar el buffer puesto que la tarea de escribir en disco es
muy lenta respecto a los procesosdel programa y realizar las operaciones
de lectura de golpe y no de una enuna hace mucho más eficiente el
acceso. Por ejemplo:
// lee un archivo entero de la misma manera que de tecladostring texto =
new string();try {filereader fr = new filereader("archivo.txt");entrada = new
bufferedreader(fr);string s;while((s = entrada.readline()) != null)texto +=
s;entrada.close();}catch(java.io.filenotfoundexceptionfnfex)
system.out.println("archivo no encontrado: " +
fnfex);}catch(java.io.ioexception ioex) {}.
Escritura de Archivos
La clase printwriter es la más práctica para escribir un archivo de
textoporque posee los métodos print(cualquier tipo) y println(cualquier
tipo),idénticos a los de system.out (de clase printstream).un objeto
printwriter se puede crear a partir de un bufferedwriter (paradisponer de
buffer), que se crea a partir del filewriter al que se la pasa elnombre del
archivo. Después, escribir en el archivo es tan fácil como enpantalla. El
siguiente ejemplo ilustra lo anterior:
Try {filewriter fw = new filewriter("escribeme.txt");bufferedwriter bw = new
bufferedwriter(fw);printwriter salida = new
printwriter(bw);salida.println("hola, soy la primera línea");salida.close(); //
modo appendbw = new bufferedwriter(new filewriter("escribeme.txt",
true));salida = new printwriter(bw);salida.print("y yo soy la segunda.
");double b =
123.45;salida.println(b);salida.close();}cacth(java.io.ioexception ioex) { }.
SERIALIZACION
Para que un programa java pueda convertir un objeto en un montón
de bytes y pueda luego recuperarlo, el objeto necesita ser Serializable. Al
poder convertir el objeto a bytes, ese objeto se puede enviar a través de
red, guardarlo en un fichero, y después reconstruirlo al otra lado de la red,
leerlo del fichero. Para que un objeto sea serializable basta con que
implemente la interfaz Serializable. Como la interfaz Serializable no tiene
métodos, es muy sencillo implementarla, basta con un implements
Serializable y nada más. Por ejemplo, la clase Datos siguiente es
Serializable y java sabe perfectamente enviarla o recibirla por red, a
través de socket o de rmi. También java sabe escribirla en un fichero o
reconstruirla a partir del fichero.
?
1
2
3
4
public class Datos implements Serializable
{
public int a;
public String b;
5
6
public char c;
}
Si dentro de la clase hay atributos que son otras clases, éstos a su vez
también deben ser Serializable. Con los tipos de java (String, Integer, etc.)
no hay problema porque lo son. Si ponemos como atributos nuestras
propias clases, éstas a su vez deben implementar Serializable. Por
ejemplo
?
1
2
3
4
5
6
7
8
9
/* Esta clase es Serializable porque implementa Serializable y todos sus
* campos son Serializable, incluido "Datos f;"
*/
public class DatoGordo implements Serializable
{
public int d;
public Integer e;
Datos f;
}
Java Foundation Classes (jfc) y Java 2d
Las jfc, jav foundation classes son un conjunto de componentes
y características para ayudar a construir los entornos gráficos de
losprogramas o guis (graphical user interfaces). Incluye prácticamente
todo tipode elementos gráficos como botones, paneles, menús y
ventanas, con muchasventajas sobre el awt. Swing es una parte de las jfc
que permite incorporar enlas aplicaciones elementos gráficos de una
forma mucho más versátil y con máscapacidades que utilizando el awt
básico de java.algunas de las características más interesantes son:
• Cualquier programa que utiliza componentes de swing puede elegir
elaspecto que desea para sus ventanas y elementos gráficos:
entornowindows 95/98/nt, entorno motif (asociado a sistemas unix) o
metal (aspectopropio de java, común a todas las plataformas).
• Cualquier componente gráfico de swing presenta más propiedades que
elcorrespondiente elemento del awt: los botones pueden
incorporanimágenes, hay nuevos layouts y paneles, menús, posibilidad de
drag & drop,es decir de seleccionar componentes con el ratón y arrastrara
otrolugar de la pantalla.
Java beans
Cursos intensivos y soluciones computacionales
En la versión jdk 1.2 se incorpora como parte de las jfc el llamado
java 2d, que permite a los desarrolladores incorporar texto, imágenes y
gráficos en dos dimensiones de gran calidad. A partir de la versión 1.2 de
java las jfc forman parte del propio jdk. Si se desea utilizar desde la
versión 1.1 es necesario instalar las jfc de forma independiente.
Java Media Framewo RK (jmf)
El api jmf (java media framework) especifica una arquitectura, un
protocolo de transmisión de datos y unos elementos gráficos simples y
unificados para lareproducción de contenidos multimedia, esto es vídeo,
audio y animaciones,principalmente. Los distintos jdk aparecidos hasta la
publicación de este manual no incorporan este api de jmf. Es necesario
instalar un software que complementa el jdk.
Java 3D
El api de java 3d es un conjunto de clases para crear aplicaciones y
appletscon elementos 3d. Ofrece a los desarrolladores la posibilidad de
manipular geometrías complejas en tres dimensiones. La principal ventaja
que presenta este api 3d frente a otros entornos de programación 3d es
que permite crear aplicaciones gráficas 3d independientes del tipo de
sistema.java 3d es un conjunto de clases, interfaces y librerías de alto
nivel que permiten aprovechar la aceleración gráfica por hardware que
incorporan muchas tarjetas gráficas, ya que las llamadas a los métodos
de java 3d son transformadas en llamadas funciones de opengl o
direct3d. aunque tanto conceptualmente como oficialmente java 3d forma
parte del apijmf, se trata de unas librerías que se instalan
independientemente del jmf.
Javabeans
El api de javabeans hace posible escribir "componentes de
software" en el lenguaje java. Los componentes son elementos
reutilizables que pueden incorporarse gráficamente a otros componentes
como applets y aplicaciones utilizando herramientas gráficas de
desarrollo. Cada componente ofrece sus características concretas (por
ejemplo sus métodos públicos y sus eventos) a los entornos gráficos de
desarrollo permitiendo su manipulación visual. Son análogos a otros
componentes de algunos entornos visuales, como por ejemplo los
controles de visual basic.el bdk (beans developer kit) es un conjunto de
herramientas para desarrollar javabeans. Se trata de un kit no incorporado
en los distintos jdk de java.
Rmi y Java idl
Tanto rmi (remote method invocation) como java idl (java interface
definitionlanguage) son herramientas para desarrollar aplicaciones
distribuidas. Estas aplicaciones presentan la característica de que una
aplicación puede ejecutar funciones y métodos en varios ordenadores
distintos. Utilizando una referencia a un objeto que se encuentra en un
ordenador remoto, es posible ejecutar métodos de ese objeto desde una
aplicación que se ejecuta en un ordenador distinto. Rmi y java idl
proporcionan los mecanismos mediante los cuales los distintos objetos
distribuidos se comunican y se transmiten la información. Son por lo tanto
tecnologías que permiten la creación y uso de objetos distribuidos, esto
es, objetos o programas que interactúan en diferentes plataformas
y ordenadores a través de una red.
Java Native Interface (JNI)
Jni (java native interface) es el interface de programación de java
para ejecutar código nativo, es decir código compilado al lenguaje binario
propio de una plataforma o sistema de ordenador. Se incluye en el jdk las
herramientas necesarias para su utilización jni, permite al código de java
que se ejecuta dentro de la jvm interactuar con aplicaciones y librerías
escritas en otros lenguajes, como c/c++ o incluso lenguaje ensamblador.
Incorpora a su vez las herramientas para ejecutar código java desde
aplicaciones desarrolladas en otros lenguajes el entorno jni ofrece por lo
tanto a los métodos nativos utilizar objetos de java de igual forma que el
código java puede utilizar estos objetos nativos. Tanto la parte de java
como la parte nativa de una aplicación pueden crear, actualizar y acceder
a los objetos programados en java y compartir dichos objetos.
Conclusión
Java es un lenguaje de programación con el que podemos realizar
cualquier tipo de programa.
En la actualidad es un lenguaje muy extendido y cada vez cobra
más importancia tanto en el ámbito de Internet como en la informática en
general.
Java está desarrollado por la compañía Sun Microsystems con gran
dedicación y siempre enfocado a cubrir las necesidades tecnológicas más
punteras.
La independencia de plataforma es una de las razones por las que
Java es interesante para Internet, ya que muchas personas deben tener
acceso con ordenadores distintos. Pero no se queda ahí, Java está
desarrollándose incluso para distintos tipos de dispositivos además del
ordenador como móviles, agendas y en general para cualquier cosa que
se le ocurra a la industria.
Referencias Bibliográficas
• http://es.scribd.com/doc/51830722/184/CLASES-DE-JAVA-PARA-
LECTURA-Y-ESCRITURA-DE-DATOS

Más contenido relacionado

La actualidad más candente

ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlosKarlytozdj
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaIngeniería Nica
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en javarsalazar16988
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gioRobert Wolf
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Javakunno10
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en javamariasuarezsalazar
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javaingyon
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en javatensanti
 
Tipos de datos entrada y salida
Tipos de datos entrada y salidaTipos de datos entrada y salida
Tipos de datos entrada y salidaBrahyan Marquez
 
Portafolio parcial 2
Portafolio parcial 2Portafolio parcial 2
Portafolio parcial 2EmmanuelAv
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Cap4
Cap4Cap4
Cap4CJAO
 

La actualidad más candente (20)

ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlos
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en Java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en java
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gio
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Java
 
Java io
Java ioJava io
Java io
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en java
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en java
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Tipos de datos entrada y salida
Tipos de datos entrada y salidaTipos de datos entrada y salida
Tipos de datos entrada y salida
 
Grupo1
Grupo1Grupo1
Grupo1
 
Librerias java
Librerias javaLibrerias java
Librerias java
 
Portafolio parcial 2
Portafolio parcial 2Portafolio parcial 2
Portafolio parcial 2
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Cap4
Cap4Cap4
Cap4
 

Destacado

(29 10-12)serializacion
(29 10-12)serializacion(29 10-12)serializacion
(29 10-12)serializacionMilton Paredes
 
1 eldocentefacilitador-120313144933-phpapp01
1 eldocentefacilitador-120313144933-phpapp011 eldocentefacilitador-120313144933-phpapp01
1 eldocentefacilitador-120313144933-phpapp01Jose Cortez
 
Presentacion java
Presentacion javaPresentacion java
Presentacion javaJose Cortez
 
Josecortez.presentacion
Josecortez.presentacionJosecortez.presentacion
Josecortez.presentacionJose Cortez
 
Modelado de negocios
Modelado de negocios Modelado de negocios
Modelado de negocios Jose Cortez
 
Josecortez.presentacion
Josecortez.presentacionJosecortez.presentacion
Josecortez.presentacionJose Cortez
 

Destacado (8)

(29 10-12)serializacion
(29 10-12)serializacion(29 10-12)serializacion
(29 10-12)serializacion
 
1 eldocentefacilitador-120313144933-phpapp01
1 eldocentefacilitador-120313144933-phpapp011 eldocentefacilitador-120313144933-phpapp01
1 eldocentefacilitador-120313144933-phpapp01
 
Auditoria
AuditoriaAuditoria
Auditoria
 
Presentacion java
Presentacion javaPresentacion java
Presentacion java
 
Josecortez.presentacion
Josecortez.presentacionJosecortez.presentacion
Josecortez.presentacion
 
Modelado de negocios
Modelado de negocios Modelado de negocios
Modelado de negocios
 
Josecortez.presentacion
Josecortez.presentacionJosecortez.presentacion
Josecortez.presentacion
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 

Similar a Java

Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IIrafaelrojas91
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gilreyking3000
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasAnel Sosa
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosDoris Aguagallo
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointJ_cordero
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostreamTensor
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadS2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadLuis Fernando Aguas Bucheli
 
Bibliotecas de C
Bibliotecas de CBibliotecas de C
Bibliotecas de CLorenaCMtz
 
No numerica ii
No numerica iiNo numerica ii
No numerica iiJ_cordero
 

Similar a Java (20)

Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica II
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power point
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Java
JavaJava
Java
 
Ap01 java
Ap01 javaAp01 java
Ap01 java
 
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadS2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
 
Bibliotecas de c_
Bibliotecas de c_Bibliotecas de c_
Bibliotecas de c_
 
Bibliotecas de C
Bibliotecas de CBibliotecas de C
Bibliotecas de C
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Clase 4 java 2011
Clase 4 java 2011Clase 4 java 2011
Clase 4 java 2011
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
Java script
Java scriptJava script
Java script
 
Portafoliojava
PortafoliojavaPortafoliojava
Portafoliojava
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (16)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Java

  • 1. INSTITUTO UNIVERSITARIO POLITÉCNICO "SANTIAGO MARIÑO" EXTENSIÓN PORLAMAR ESCUELA DE INGENIERÍA DE SISTEMAS CÁTEDRA: No Numérica II PROGRAMACIÒN NO NÙMERICA II, LENGUAJE JAVA Autor: Br. José Cortez C.I: V-17.898.476 Porlamar, Junio 2013
  • 2. Introducción Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir del 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente servidor de web, con unos 10 millones de usuarios reportados. El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva mucho de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.
  • 3. Entrada y Salida de Datos en Java. La mayoría de los programas no pueden alcanzar sus metas sin acceder a datos externos. Estos datos se recuperan a partir de un origen de entrada. Los resultados de un programa se envían a un destino de salida. La noción genérica de una fuente de entrada puede representar muchos tipos de entrada distintos: desde un archivo de disco, un teclado o un conector (socket) de red. Estas abstracciones son una manera limpia de tratar la E/S sin necesitar que todo el código comprenda la diferencia entre un teclado y una red. Java llama flujo a esta abstracción y la implementa con varias clases del paquete java.io. El flujo de E/S representa todos los orígenes y destinos de los datos detrás de una interfaz uniforme. La entrada está encapsulada en la clase InputStream y la salida en la clase OutputStream. Estas dos clases abstractas son las que todos los objetos deberían referenciar cuando tratan la E/S en general. InputStream InputStream es una clase abstracta que define el modelo de Java para el flujo de entrada. Todos los métodos de esta clase lanzarán una IOException si se producen condiciones de error. Este es un breve resumen de los métodos de InputStream: • read() devuelve una representación como entero del siguiente byte de entrada disponible. • read(byte[]) intenta leer hasta b.length bytes situándolos en b y devuelve el número real de bytes que se leyeron con éxito. • read(byte b[], int off, int len) intenta leer hasta len bytes situándolos en b comenzando en b[off], y devuelve el número de bytes que se leyeron con éxito. • skip(long n) omite n bytes de la entrada, y devuelve el número de bytes que se han omitido.
  • 4. • available() devuelve el número de bytes de entrada disponibles actualmente para su lectura. • close() cierra el origen de entrada. Los intentos de lectura posteriores generarán una IOException. • mark(int limitelectura) coloca una marca en el punto actual del flujo de entrada que seguirá siendo válida hasta que se lean limitelectura bytes. • reset() devuelve el puntero de entrada ala marca establecida previamente. • markSupported() devuelve true si se admiten mark/reset en este flujo. OutputStream Igual que InputStream, OutputStream es una clase abstracta que define el flujo de salida. Todos los métodos de esta clase devuelven un valor void y lanzan una IOException en caso de error. Esta es una lista de los métodos de OutputStream: • write(int b) escribe un único byte en un flujo de salida. Observar que el parámetro en un int, lo que permite que se llame a write con expresiones sin tener que convertir su tipo a byte. • write(byte b[]) escribe una matriz completa de bytes en un flujo de salida. • write(byte b[], int off, int len) escribe len bytes de la matriz b, comenzando a partir de b[off]. • flush() inicializa el estado de la salida de manera que se limpian todos los buffers. close() cierra el flujo de salida. Los intentos de escritura posteriores generarán una IOException.
  • 5. Clases de Java para Lectura y Escritura de Dato. El package java.io contiene las clases necesarias para lacomunicación del programa con el exterior.dentro de este package existen dos familias de jerarquías distintas para laentrada/salida de datos.la diferencia principal consiste en que una opera con bytes y la otra con caracteres (el carácter de java está formadopor dos bytes porque sigue el código unicode). En general,para el mismo fin hay dos clases que manejan bytes (unaclase de entrada y otra de salida) y otras dos que manejancaracteres.desde java 1.0, la entrada y salida de datos del programa se podía hacer conclases derivadas de inputstream (para lectura) y outputstream (para escritura). Estas clases tienen losmétodos básicos read () y write() que manejan bytes y que nose suelen utilizar directamente. La figura muestra las clases que derivan de inputstream y la figura las que derivan de outputstream. En java 1.1 aparecieron dos nuevas familias de clases, derivadas de reader y writer, que manejan caracteres en vez de bytes. Estas clases resultan másprácticas para las aplicaciones en las que se maneja texto.
  • 6. Las clases que heredan de reader están incluidas en la figura y las que heredan de writer enla figura. La intención es que se combinen para obtener elcomportamiento deseado. Por ejemplo: Bufferedreader in = new bufferedreader(new filereader("autoexec.bat")); Con esta línea se ha creado un stream que permite leer del archivoautoexec.bat. Además, se ha creado a partir de él un objeto bufferedreader (que aporta la característica de utilizar buffer6). Los caracteres que lleguena través del filereader pasarán a través del bufferedreader, es decir utilizarán el buffer.a la hora de definir una comunicación con un dispositivo siempre se comenzarádeterminando el origen o destino de la comunicación (clases en gris) y luego se le añadiran otras características (clases en blanco).se recomienda utilizar siempre que sean posibles las clases reader y writer,dejando las de java 1.0 para cuando sean imprescindibles. Algunas tareas comola serialización y la compresión necesitan las clases inputstream y outputstream. Entrada y Salida Estándar (teclado y pantalla) En java, la entrada desde teclado y la salida a pantalla están reguladas atraves de la clase system. Esta clase pertenece al package
  • 7. java.lang y agrupadiversos métodos y objetos que tienen relación con el sistema local. Contiene,entre otros, tres objetos static que son: System.in: Objeto de la clase inputstream preparado para recibir datos desde la entrada estándar del sistema (habitualmente el teclado). System.out: Objeto de la clase printstream que imprimirá los datos en la salidaestándar del sistema (normalmente asociado con la pantalla). System.err: Objeto de la clase printstream. Utilizado para mensajes de error que salen también por pantalla por defecto. Lectura y Escritura de Archivos Existen las clases fileinputstream y fileoutputstream (extendiendo inputstreamy outputstream) que permiten leer y escribir bytes en archivos. Para archivosde texto son preferibles filereader (desciende de reader) y filewriter (desciende de writer), que realizan las mismas funciones. Se puede construir unobjeto de cualquiera de estas cuatro clases a partir de un string que contengael nombre o la dirección en disco del archivo o con un objeto de la clase file que representa dicho archivo. Por ejemplo el código Filereader fr1 = new filereader("archivo.txt"); es equivalente a:file f = new file("archivo.txt"); filereader fr2 = new filereader(f);
  • 8. Si no encuentran el archivo indicado, los constructores de filereader y fileinputstream pueden lanzar la excepción java.io.filenotfoundexception.los constructores de filewriter y fileoutputstream pueden lanzar java.io.ioexception. Si no encuentran el archivo indicado, lo crean nuevo. Por defecto, estas dos clases comienzan a escribir al comienzo del archivo. Paraescribir detrás de lo que ya existe en el archivo (“append”), se utiliza unsegundo argumento de tipo boolean con valor true: Filewriter fw = new filewriter("archivo.txt", true); Lectura de Archivo: Se puede crear un objeto bufferedreader para leer de un archivo de texto de la siguiente manera: Bufferedreader br = new bufferedreader(new filereader("archivo.txt")); Utilizando el objeto de tipo bufferedreader se puede conseguir exactamente lomismo que en las secciones anteriores utilizando el método readline() y la clase stringtokenizer. En el caso de archivos es muy importante utilizar el buffer puesto que la tarea de escribir en disco es muy lenta respecto a los procesosdel programa y realizar las operaciones de lectura de golpe y no de una enuna hace mucho más eficiente el acceso. Por ejemplo: // lee un archivo entero de la misma manera que de tecladostring texto = new string();try {filereader fr = new filereader("archivo.txt");entrada = new bufferedreader(fr);string s;while((s = entrada.readline()) != null)texto += s;entrada.close();}catch(java.io.filenotfoundexceptionfnfex) system.out.println("archivo no encontrado: " + fnfex);}catch(java.io.ioexception ioex) {}. Escritura de Archivos La clase printwriter es la más práctica para escribir un archivo de textoporque posee los métodos print(cualquier tipo) y println(cualquier
  • 9. tipo),idénticos a los de system.out (de clase printstream).un objeto printwriter se puede crear a partir de un bufferedwriter (paradisponer de buffer), que se crea a partir del filewriter al que se la pasa elnombre del archivo. Después, escribir en el archivo es tan fácil como enpantalla. El siguiente ejemplo ilustra lo anterior: Try {filewriter fw = new filewriter("escribeme.txt");bufferedwriter bw = new bufferedwriter(fw);printwriter salida = new printwriter(bw);salida.println("hola, soy la primera línea");salida.close(); // modo appendbw = new bufferedwriter(new filewriter("escribeme.txt", true));salida = new printwriter(bw);salida.print("y yo soy la segunda. ");double b = 123.45;salida.println(b);salida.close();}cacth(java.io.ioexception ioex) { }. SERIALIZACION Para que un programa java pueda convertir un objeto en un montón de bytes y pueda luego recuperarlo, el objeto necesita ser Serializable. Al poder convertir el objeto a bytes, ese objeto se puede enviar a través de red, guardarlo en un fichero, y después reconstruirlo al otra lado de la red, leerlo del fichero. Para que un objeto sea serializable basta con que implemente la interfaz Serializable. Como la interfaz Serializable no tiene métodos, es muy sencillo implementarla, basta con un implements Serializable y nada más. Por ejemplo, la clase Datos siguiente es Serializable y java sabe perfectamente enviarla o recibirla por red, a través de socket o de rmi. También java sabe escribirla en un fichero o reconstruirla a partir del fichero. ? 1 2 3 4 public class Datos implements Serializable { public int a; public String b;
  • 10. 5 6 public char c; } Si dentro de la clase hay atributos que son otras clases, éstos a su vez también deben ser Serializable. Con los tipos de java (String, Integer, etc.) no hay problema porque lo son. Si ponemos como atributos nuestras propias clases, éstas a su vez deben implementar Serializable. Por ejemplo ? 1 2 3 4 5 6 7 8 9 /* Esta clase es Serializable porque implementa Serializable y todos sus * campos son Serializable, incluido "Datos f;" */ public class DatoGordo implements Serializable { public int d; public Integer e; Datos f; } Java Foundation Classes (jfc) y Java 2d Las jfc, jav foundation classes son un conjunto de componentes y características para ayudar a construir los entornos gráficos de losprogramas o guis (graphical user interfaces). Incluye prácticamente todo tipode elementos gráficos como botones, paneles, menús y ventanas, con muchasventajas sobre el awt. Swing es una parte de las jfc que permite incorporar enlas aplicaciones elementos gráficos de una forma mucho más versátil y con máscapacidades que utilizando el awt básico de java.algunas de las características más interesantes son: • Cualquier programa que utiliza componentes de swing puede elegir elaspecto que desea para sus ventanas y elementos gráficos:
  • 11. entornowindows 95/98/nt, entorno motif (asociado a sistemas unix) o metal (aspectopropio de java, común a todas las plataformas). • Cualquier componente gráfico de swing presenta más propiedades que elcorrespondiente elemento del awt: los botones pueden incorporanimágenes, hay nuevos layouts y paneles, menús, posibilidad de drag & drop,es decir de seleccionar componentes con el ratón y arrastrara otrolugar de la pantalla. Java beans Cursos intensivos y soluciones computacionales En la versión jdk 1.2 se incorpora como parte de las jfc el llamado java 2d, que permite a los desarrolladores incorporar texto, imágenes y gráficos en dos dimensiones de gran calidad. A partir de la versión 1.2 de java las jfc forman parte del propio jdk. Si se desea utilizar desde la versión 1.1 es necesario instalar las jfc de forma independiente. Java Media Framewo RK (jmf) El api jmf (java media framework) especifica una arquitectura, un protocolo de transmisión de datos y unos elementos gráficos simples y unificados para lareproducción de contenidos multimedia, esto es vídeo, audio y animaciones,principalmente. Los distintos jdk aparecidos hasta la publicación de este manual no incorporan este api de jmf. Es necesario instalar un software que complementa el jdk. Java 3D El api de java 3d es un conjunto de clases para crear aplicaciones y appletscon elementos 3d. Ofrece a los desarrolladores la posibilidad de manipular geometrías complejas en tres dimensiones. La principal ventaja que presenta este api 3d frente a otros entornos de programación 3d es que permite crear aplicaciones gráficas 3d independientes del tipo de sistema.java 3d es un conjunto de clases, interfaces y librerías de alto nivel que permiten aprovechar la aceleración gráfica por hardware que incorporan muchas tarjetas gráficas, ya que las llamadas a los métodos
  • 12. de java 3d son transformadas en llamadas funciones de opengl o direct3d. aunque tanto conceptualmente como oficialmente java 3d forma parte del apijmf, se trata de unas librerías que se instalan independientemente del jmf. Javabeans El api de javabeans hace posible escribir "componentes de software" en el lenguaje java. Los componentes son elementos reutilizables que pueden incorporarse gráficamente a otros componentes como applets y aplicaciones utilizando herramientas gráficas de desarrollo. Cada componente ofrece sus características concretas (por ejemplo sus métodos públicos y sus eventos) a los entornos gráficos de desarrollo permitiendo su manipulación visual. Son análogos a otros componentes de algunos entornos visuales, como por ejemplo los controles de visual basic.el bdk (beans developer kit) es un conjunto de herramientas para desarrollar javabeans. Se trata de un kit no incorporado en los distintos jdk de java. Rmi y Java idl Tanto rmi (remote method invocation) como java idl (java interface definitionlanguage) son herramientas para desarrollar aplicaciones distribuidas. Estas aplicaciones presentan la característica de que una aplicación puede ejecutar funciones y métodos en varios ordenadores distintos. Utilizando una referencia a un objeto que se encuentra en un ordenador remoto, es posible ejecutar métodos de ese objeto desde una aplicación que se ejecuta en un ordenador distinto. Rmi y java idl proporcionan los mecanismos mediante los cuales los distintos objetos distribuidos se comunican y se transmiten la información. Son por lo tanto tecnologías que permiten la creación y uso de objetos distribuidos, esto
  • 13. es, objetos o programas que interactúan en diferentes plataformas y ordenadores a través de una red. Java Native Interface (JNI) Jni (java native interface) es el interface de programación de java para ejecutar código nativo, es decir código compilado al lenguaje binario propio de una plataforma o sistema de ordenador. Se incluye en el jdk las herramientas necesarias para su utilización jni, permite al código de java que se ejecuta dentro de la jvm interactuar con aplicaciones y librerías escritas en otros lenguajes, como c/c++ o incluso lenguaje ensamblador. Incorpora a su vez las herramientas para ejecutar código java desde aplicaciones desarrolladas en otros lenguajes el entorno jni ofrece por lo tanto a los métodos nativos utilizar objetos de java de igual forma que el código java puede utilizar estos objetos nativos. Tanto la parte de java como la parte nativa de una aplicación pueden crear, actualizar y acceder a los objetos programados en java y compartir dichos objetos.
  • 14. Conclusión Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Java está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras. La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria.