UNIVERSIDAD POLITÉCNICA AMAZÓNICA
Ingeniería de Sistemas y Telemática
Java
DOCENTE: Marco
Aurelio Porro Chulli
INTEGRANTES: Yosmer Aguilar
Cabrera
Erlin Darwin Herrera Cieza
Erlin Darwin Herrera Cieza
CICLO: V
Bagua Grande setiembre del 2016
DEFINICIÓN
Sun Microsystems desarrolló, en 1991,
el lenguaje de programación orientado a objetos que se conoce como Java.
El objetivo era utilizarlo en un set-top box, un
tipo de dispositivo que se encarga de la recepción y la descodificación de la
señal televisiva. El primer nombre del lenguaje fue Oak,
luego se conoció como Green y finamente adoptó la denominación de Java.
La
intención de Sun era crear un lenguaje con una estructura y una sintaxis
similar a C y C++, aunque con
un modelo de objetos más simple y eliminando las herramientas de bajo nivel.
Java es un lenguaje de programación orientado a objetos que se
popularizó a partir del lanzamiento de su primera versión comercial de amplia
difusión, la JDK 1.0 en 1996. Actualmente es uno de los lenguajes más
usados para la programación en todo el mundo.
Java es un lenguaje útil para casi todo tipo de
problemas. Podemos citar como funcionalidades de Java varias:
1.
Aplicaciones “cliente”: son las que se ejecutan en un solo ordenador
(por ejemplo el portátil de tu casa) sin necesidad de conectarse a otra
máquina. Pueden servirte por ejemplo para realizar cálculos o gestionar datos.
2.
Aplicaciones “cliente/servidor”: son programas que necesitan conectarse
a otra máquina (por ejemplo un servidor de datos) para pedirle algún servicio
de forma más o menos continua, como podría ser el uso de una base de datos.
Pueden servir por ejemplo para el teletrabajo: trabajar desde casa pero
conectados a un ordenador de una empresa.
3. Podemos
hablar también de “aplicaciones web”, que son programas Java que se
ejecutan en un servidor de páginas web. Estas aplicaciones reciben
“solicitudes” desde un ordenador y envían al navegador (Internet Explorer,
Firefox, Safari, etc.) que actúa como su cliente páginas de respuesta en HTML.
Los
pilares en los que se sustenta Java son cinco: la programación orientada a
objetos, la posibilidad de ejecutar un mismo programa en diversos sistemas
operativos, la inclusión por defecto de soporte para trabajo en red, la opción
de ejecutar el código en sistemas remotos
de manera segura y la facilidad de uso.
Lo
habitual es que las aplicaciones Java se encuentren compiladas en un bytecode (un fichero binario que tiene un
programa ejecutable), aunque también pueden estar compiladas en código máquina nativo.
Sun
controla las especificaciones y el desarrollo del lenguaje, los compiladores,
las máquinas virtuales y las bibliotecas de clases a través del Java
Community Process. En los últimos años, la empresa (que fue
adquirida por Oracle) ha liberado gran
parte de las tecnologías Java bajo la licencia GNU
GPL.
La aplicación de Java es muy
amplia. El lenguaje se utiliza en una gran variedad de dispositivos móviles,
como teléfonos y pequeños electrodomésticos. Dentro del ámbito de Internet,
Java permite desarrollar pequeñas aplicaciones (conocidas con el nombre de applets)
que se incrustan en el código HTML de una página, para su directa ejecución
desde un navegador; cabe mencionar que es necesario contar con el plug-in
adecuado para su funcionamiento, pero la instalación es liviana y sencilla.
Razones
para escoger Java por sobre otros lenguajes
*
Es orientado a objetos: si bien existen detractores de esta modalidad, la programación orientada a objetos
resulta muy conveniente para la mayoría de las aplicaciones, y es esencial para
los videojuegos. Entre las ventajas más evidentes que ofrece se encuentra un
gran control sobre el código y una mejor organización, dado que basta con escribir
una vez los métodos y las propiedades de un objeto, independientemente de la
cantidad de veces que se utilicen.
*
Es muy flexible:
Java es un lenguaje especialmente preparado para la reutilización del código;
permite a sus usuarios tomar un programa que hayan desarrollado tiempo atrás y
actualizarlo con mucha facilidad, sea que necesiten agregar funciones o
adaptarlo a un nuevo entorno.
*
Funciona en cualquier plataforma: a diferencia de los
programas que requieren de versiones específicas para cada sistema operativo
(tales como Windows o Mac), las aplicaciones desarrolladas en Java funcionan en
cualquier entorno, dado que no es el sistema quien las ejecuta, sino
la máquina virtual (conocida como Java Virtual Machine o JVM).
*
Su uso no acarrea inversiones económicas: programar en Java es absolutamente gratis;
no es necesario adquirir ninguna licencia, sino simplemente
descargar el kit de desarrollo (Java
Development Kit o JDK)
y dar riendas sueltas a la imaginación.
*
Es de fuente abierta:
Java ofrece el código de casi todas sus librerías nativas para que los
desarrolladores puedan conocerlas y estudiarlas en profundidad, o bien ampliar
su funcionalidad, beneficiándose a ellos mismos y a los demás.
*
Es un lenguaje expandible: continuando con el punto anterior, cada programador
tiene la libertad de revisar y mejorar el código nativo de Java, y su trabajo puede convertirse en
la solución a los problemas de muchas personas en todo el mundo. Infinidad de
desarrolladores han aprovechado esta virtud del lenguaje y continúan
haciéndolo.
PRINCIPALES
CARACTERÍSTICAS DE JAVA.
Sun describe al lenguaje Java de la siguiente manera:
- Simple
- Orientado
a Objetos
- Tipado
estáticamente
- Distribuido
- Interpretado
- Robusto
- Seguro
- de
Arquitectura Neutral
- Multihilo
- con
Recolector de basura (Garbage Collector)
- Portable
- de Alto
Rendimiento: sobre todo con la aparición de hardware especializado y mejor
software
- Dinámico
Sun admite que lo dicho anteriormente son un montón de halagos por su
parte, pero el hecho es que todas esas características pueden servir para
describir el lenguaje. Todas ellas son importantes, sin embargo cabe destacar
tres, que son las que han proporcionado tanto interés por el lenguaje: la
portabilidad, el hecho de que sea de arquitectura neutral y su simplicidad.
Java ofrece toda la funcionalidad de los lenguajes potentes, pero sin las
características menos usadas y más confusas de éstos.
1.
Simple
Basado en el lenguaje C++ pero donde se eliminan muchas de las características
OOP que se utilizan esporádicamente y que creaban frecuentes problemas a los
programadores. Esta eliminación de causas de error y problemas de mantenimiento
facilita y reduce el coste del desarrollo de software.
o Java no da soporte a struct, union y
pointer
o Java no ofrece typedef ni #define
o No permite la sobrecarga de
operadores.
o No ofrece herencia múltiple.
o Maneja los comandos en línea de
diferente manera que C++
o Java tienen una clase String, que
permite un mejor manejo que los arrays de terminación nula del C y C++.
o Java tiene un sistema automático de
asignación y liberación de memoria (recolector de basura) que mejora mucho los
sistemas del C++
2.
Orientado
al objeto
Java da buen soporte a
las técnicas de desarrollo OOP y en resumen a la reutilización de componentes
de software.
3.
Distribuido
Java se ha diseñado para
trabajar en ambiente de redes y contienen una gran biblioteca de clases para la
utilización del protocolo TCP/IP, incluyendo HTTP y FTP. El código Java se
puede manipular a través de recursos URL con la misma facilidad que C y C++
utilizan recursos locales (archivos).
4.
Interpretado
El compilador Java traduce cada fichero fuente de clases a código de bytes
(Bytecode), que puede ser interpretado por todas las máquinas que den soporte a
un visualizador de que funcione con Java. Este Bytecode no es específico de una
máquina determinada, por lo que no se compila y enlaza como en el ciclo
clásico, sino que se interpreta.
5.
Sólido
El código Java no se quiebra fácilmente ante errores de programación. Así el
relaje que existe en la declaración y manejo de tipos en C y C++ se torna en
restricciones en Java, donde no es posible la conversión forzada (cast) de
enteros en punteros y no ofrece soporte a los punteros que permitan saltarse
reglas de manejo de tipos. Así en Java no es posible escribir en áreas
arbitrarias de memoria ni realizar operaciones que corrompan el código. En
resumen se eliminan muchas de las posibilidades de "trucos" que
ofrecía el C y C++.
6.
Seguro
Como Java suele funcionar en ambiente de redes el tema de seguridad debe
interesar en sobremanera. Las mismas características antes descritas que evitan
la corrupción de código evitan su manipulación. Actualmente se está trabajando
en encriptar el código.
7.
Arquitectura
neutral
El compilador crea códigos de byte (Bytecode) que se envía al visualizador
solicitado y se interpreta en la máquina que posee un intérprete de Java o
dispone de un visualizador que funciona con Java.
8.
Portable
Al ser de arquitectura neutral es altamente portable, pero esta característica
puede verse de otra manera: Los tipos estándares (int, float...) están
igualmente implementados en todas las máquinas por lo que las operaciones
aritméticas funcionaran igual en todas las máquinas.
9.
Alto
desempeño
al ser código interpretado, la ejecución no es tan rápida como el código
compilado para una plataforma particular. El compilador Java suele ofrecer la
posibilidad de compilar Bytecode en código máquina de determinadas plataformas,
y según Sun este código resultar de una eficacia similar a compilaciones de C y
C++.
10. Multihilos
Java puede aplicarse a la realización de aplicaciones en las que ocurra más de
una cosa a la vez. Java, apoyándose en un sistema de gestión de eventos basado
en el paradigma de condición y monitores C.A.R. permite apoyar la conducta en
tiempo real e interactiva en programas
11. Dinámico
al contrario que C++ que
exige se compile de nuevo la aplicación al cambiar una clase madre Java utiliza
un sistema de interfaces que permite aligerar esta dependencia. Como resultado,
los programas Java pueden permitir nuevos métodos y variables en un objeto de
biblioteca sin afectar a los objetos dependientes.
Diferencias con C++
Java
es mejor que el C++, por lo que no tiene:
1.
En
Java no es posible crear variables globales. Solo las variables estáticas y
publicas de algunas clases pueden considerarse como tales, pero esto generalmente,
y como en el caso de las variables globales en C++ son síntoma de un mal
diseño.
2.
Java
no dispone de sentencia goto lo cual permite crear un código más robusto y
seguro así como más optimizado. Para cubrir esta falta Java proporciona un
tratamiento muy optimizado de excepciones, poderoso y bien definido.
3.
Los
punteros son una característica poderosa y peligrosa del C++, en si evitan que
ninguna variable sea privada de verdad, ya que es fácil acceder a la mis a
través de punteros, los cuales son fuente inacabable de problemas y
malfuncionamiento. Java no dispone de tratamiento de punteros. Los vectores o
arrays lo son de modo cierto, lo cual evita sobrepasar el mismo o salirse de
sus limites.
4.
El
manejo de memoria en C se realiza de forma peligrosa a través de punteros
obtenidos con la función malloc(), y que se libera explícitamente con free(),
esto puede causar errores si el programador no controla perfectamente los pasos
en que estas operaciones se realizan. Otro error es el olvido frecuente de liberar
memoria, lo cual termina consumiendo los recursos del sistema. Java no dispone
de punteros y todos lo objetos se crean con el operador new, el cual asigna
espacio en el montículo de memoria a cada objeto. Lo que se obtiene con new es
un descriptor del objeto (no una dirección) la dirección real es manejada por
el sistema el cual la puede mover o recolocar según necesidad, pero el
programador no ha de preocuparse por ello. Lo importante es que el objeto tiene
memoria asignada mientras le interese al programa, quedando esta memoria
disponible en cuanto este interés cese. No se hará falta llamar a free o delete
ya que el recolector de basura realizara esta labor. Este recolector
o reciclador de basura se ejecutara cuando el sistema este libre o una asignación
no encuentre lugar disponible.
5.
C
y C++ disponen de tipos de
datos frágiles cuyos limites
y características dependen de la implementación y maquina del compilador. Java
implementa limites y tamaños sensatos y validos para todo tipo de máquinas y
entornos (independientes del Hardware) por lo que es totalmente reproducibles
en cualquier plataforma.
6.
En
C es posible la realización de casting o conversión de tipos en tiempo de
ejecución. En C++ esta operación es peligrosa ya que los objetos son
referencias a zonas de memoria y no es posible tener información sobre sí la
conversión en posible. En Java los descriptores de los objetos contienen
información completa acerca de la clase a la que pertenece el objeto, por lo
que pueden realizarse comprobaciones en tiempo de ejecución sobre la
compatibilidad de tipos y emitir la excepción correspondiente si no es
aplicable la conversión.
7.
En
Java no se dispone de archivos de cabecera con los prototipos de las clases.
Esto, en principio es una desventaja, hasta que se comprueba que esta habilidad
del C++ ha llevado a entornos de compilación prácticamente inmanejables, ya que
cada compilación puede tratar estos archivos de formas un tanto complejas. Java
no dispone de esta habilidad de archivos de cabecera, el tipo y la visibilidad
de la clase se compila en el propio archivo de la clase, siendo tarea del intérprete
de Java realizar el acceso.
8.
Java
no tiene struct ni union, ambos sistemas de encasulamiento y polimorfismo un
tanto crípticos e inseguros del C++, unificando todo en un solo concepto de
clases.
9.
La
programación de entornos reales de C y C++ implica un buen conocimiento del
manejo del preprocesador y sus trucos, lo cual no es una manera limpia de
controlar lo que se compila. Java no dispone de este sistema, pero tienen
medios (como la declaración final para constantes) que permiten igual potencia.
Java
Genera:
Un
programador en Java puede crear:
1.
applets
programas elementales incluidos en páginas HTML a través de la etiqueta app y
que se despliega en el visualizador tras cargarse la página.
2.
Aplicaciones
programas escritos en
Java y que se ejecutan de forma independiente de los visualizadores. Esto se
realiza llamando a los intérpretes Java con el programa como opción.
3.
Manipuladores
de protocolo
programas que se cargan
en el visualizador e interpretan un protocolo (como pueda ser HTTP).
4.
Manipuladores
de contenido
un programa cargado en el visualizador y que interpreta el contenido de
determinado tipo de ficheros.
5.
Métodos
nativos
métodos que se declaran
en una cierta clase Java pero que se implementan en C.
Java en
Operación
Cuando
un usuario solicita un applet construido con java ocurre:
1.
El
usuario solicita un documento HTML al servidor de información.
2.
El
servidor envia el documento al visualizador del cliente, este documento tienen
una etiqueta app que identifica la referencia a un applet
3.
El
bytecode (optienido por compilación de código java) del applet se transfiere al
cliente.
4.
El
visualizador del cliente, que funciona con Java (tiene una VM) interpreta el
Bytecode y despliega el applet
5.
Como
código del applet contiene toda la información necesaria, el usuario tiene una
interacción total con el applet sin relacionarse de nuevo con el servidor.
Software para manipulación de java
1.
tJava
Pequeño visualizador de WWW que permite un perfecto manejo de applets. Se
distribuye con el propio Java y se invoca como hotjava
2.
Interprete
de Java
Se invoca con el comando java y debe de disponerse del propio de la
plataforma existente. Ocupa alrrededor de 40 Kb (175 con todas las
bibliotecas).
3.
Compilador
de Java
se invoca con javac y produce la conversión de código Java
en Bytecode
4.
Generador
de archivos fuente y cabecera C
Genera archivos de ambos tipos para elaborar métodos. Se invoca como javah o javah_g.
5.
Desamblador
de Java
Se invoca con javap e imprime información sobre un archivo
de clase.
6.
Generador
de documentos
Imprime documentación sobre una clase Java. Estas páginas, visualizables como
HTML se encuentran en cantidad de sitios con información sobre aplicaciones
Java. Se invoca como javadoc.
7.
Herramienta
de perfilado
Se invoca con javaprof y formatea la opción –prof del
compilador.
8.
Documentación
La distribución del compilador incluye gran cantidad de documentación en
formato HTML.
9.
Interfaz
de Programación
Son un conjunto de clases que se distribuyen con el código fuente del Java y
que los programadores pueden utilizar. Esto se agrupa en tres paquetes que
contienen completa documentación y que incluyen:
1.
package
java.lang: características
del lenguaje como: objetos, hilos, excepciones, caracteres, enteros y cadenas.
2.
package
java.util:
características como: la cache, vinculador, pila y vector.
3.
package
java.io:
características de entrada/salida como: flujos de datos de salida, de impresión
y de entrada de texto.
Características Generales del Lenguaje
1.
Java
es sensible a mayúsculas y minúsculas. Por convención los nombres de las clases
comienzan con mayúscula y los métodos y objetos con minúscula.
2.
Los
comentarios en Java pueden tener varios estilos:
o /* comentario */
o // comentario
o /** comentario extendido
hasta que se encuentre */
3.
Java
ignora los comentarios y espacios en blanco. La disposición del código es mas
conveniencia de visualización que exigencia lexicografica.
4.
Las
sangrías y métodos de presentación son herencia del C y C++.
5.
Java
utiliza ; como separador de posiciones y {} como agrupador de posiciones.
6.
Los
nombre de los identificadores siguen la siguientes reglas:
1. Un identificador no puede ser una
palabra clave
2. Un nombre debe empezar con una letra,
subrayado _ o signo $
3. Después de la primera letra se puede
utilizar cualquier carácter, a excepción de aquellos reservados para uso del
lenguaje (., + ...)
7.
La
convención de nombres ha de ser coherente y aportar significancia al contexto,
así:
0. Emplear sustantivos para los nombres
1. Emplear verbos para las acciones y
métodos.
2. Letras mayúsculas iniciales para
nombres de clases.
3. Minúsculas para nombres de métodos.
4. Mayúsculas para distinguir entre
palabras en nombres compuestos.
8.
Lo
anterior es practica en la OOP, pero el programador podra generar las
convenciones oportunas, pero con significado y valor añadido.
Una aplicación Esencial.
/**
mi primera aplicación Java
@autor jmrr
@version 1.1.0
*/
Class AplicacionEsencial {
Public static void main (String args[]) {
System.out.println("Hola Mundo");
}
}
Lo anterior representa el codigo de un
progrma Java que se compilara y ejecutara de la siguiente forma:
1.
el
código anterior se guarda en un fichero texto cuya extensión es .java
(AplicacionEsencial.java)
2.
este
se compila llamando a javac. El resultado de esta compilación es un fichero con
el nombre de la clase contenida y la extensión .class
(AplicacionEsencial.class). El nombre del fichero fuente (.java podra ser
cualquiera pero dado que el resultado de la compilación adquiere el nombre de
la clase contenida en el mismo, es buena practica el llamar al fichero fuente
con el mismo nombre.
3.
El
fichero obtenido puede ser llamado como argumento del interprete para su
ejecución:
$ javac
AplicacionEsencial.java
$ java AplicacionEsencial.class
Hola Mundo
$
Las
partes del programa anterior son:
1.
Comentarios: desde "/*" hasta que aparece
"*/", son ignorados por el compilador
2.
La
palabra clave class que seguida del nombre de la clase a definir
y de la llave de apertura "{" da comienzo a la definición de la
misma.
3.
Cuerpo de la clase que contendrá métodos,
operaciones y datos de la clase. En nuestro caso solo contienen un método, el
que todas las aplicaciones han de tener: main
4.
La
línea: "Public static void main
(String args[]) {" da comienzo al metodo main, las palabras clave
que anteceden al nombre indican formas expecificas para este y su explicación
se hara a posteriori.
5.
Despues
de main se declara los parametros de este metodo (String args[]) que en este caso conta de un array de cadenas
decaracteres cuyo nombre es args. Esta aplicación no hace uso de estos
parametros, pero todos los metodos main han de declarar tal lista, ya que
representa la teorica linea de comandos que podria acompañar a la llamada a la
clase:
6.
$java
AplicacionEsencial alpha beta
7.
Entre
las llaves de apertura y cierre se encuentra en cuerpo del método o lista de
sentencias que le implementan, en nuestro caso una única llamada al método
println.
Un
Applet Esencial.
El
applet es la clave para conectar el codigo Jacçva con un visualizador. Son
programas a los que hace referencia una página HTML por medio de la etiqueta
app, programa que es interpretado por el visualizador compaible Java.
La
principal diferencia entre el applet y una aplicación es que aquel no se puede
ejecutar independientemente de un visualizador. Y la razón para ello es que
carece de un método main.
/**
mi primer applet Java
@autor jmrr
@version 1.1.0
*/
import browser.Applet;
import awt.Graphics;
Class AppletEsencial extends Applet {
Public void init () {
Resize(600,300);
}
Public void paint(Graphics context) {
Context.drawString("Hola Mundo", 50, 100);
}
}
Como
en el caso de aplicación se define una clase, anteriormente a lo cual se importa
código necesario que queda disponible para el applet. Estos dos imports
(browser.Applet y awt.Graphics)son parte de la interfaz de programación de
aplicaciones (API) que contienen paquetes de clases de utilidad en la escritura
de aplicaciones y applets. La documentación completa de estos paquetes se puede
encontrar en el http://java.sun.com.
Sigue
la declaración del applet (Class AppletEsencial extends Applet) que identifica
este como subclase de la clase Applet, con lo cual los objetos de
AppletEsencial heredan muchas de sus características y funcionalidad.
El
cuerpo del applet contiene dos metodos: init que
inicia el tamaño del applet y paint que
genera la presentación visual del applet. El método paint incluye un parámetro
requerido (context) que es de tipo Graphics y se utiliza en el cuerpo para ser
el objeto del dibujo en las coordenadas dadas por la función drawString.
Este
código se coloca en el fichero AppletEsencial.java y se compila, pero el resultado
(AppletEsencial.class) no se podrá ejecutar con el intérprete.
$ javac
AppletEsencial.java
$ java AppletEsencial.class
In class AppletEsencial: void main(String argv[]) is not defined.
$
El
intérprete busca un método main para iniciar la ejecución y este no existe.
Para
visualizar el applet se hace necesario crear una página HTML que contenga una
etiqueta app que haga referencia al applet creado (Applet Esencial.class) y
determine la localización del mismo (URL) relativa o absoluta.
<HTML>
<!—-Proposito: presentar el primer applet -->
<!—-Autor: jmrr -->
<HEAD>
<TITLE>Interfase para
AppletEsencial</TITLE>
</HEAD>
<BODY>
<P>Prototipo de applet:<APP
Class="AppletEsencial">
</BODY>
</HTML>
Al
abrir esta página con el visualizador, el applet será llamado y se ejecutara
apareciendo la cadena "hola mundo" en la página.
Por
defecto las clases son buscadas en un directorio llamado classes que
colgara del directorio donde se encuentra la página HTML.
Generalidades del Lenguaje.
·
Primeras
aplicaciones con Java
·
Clases:
Herencia
·
Paquetes
e interfaces
·
Gestión
de Cadenas
·
Gestión
de excepciones
·
Hilos
y sincronización
·
Utilidades
·
Clases
de Entrada y Salida
·
Applets
·
Ventana
Abstracta
·
Introducción
al Tratamiento de Imágenes
TIPOS DE DATOS
En
lenguajes de programación un tipo de dato es un atributo de una parte de
los datos que indica al ordenador (y/o el programador) algo sobre la clase de
datos sobre los que se va a procesar. Esto incluye imponer restricciones en los
datos, como qué valores pueden tomar y qué operaciones se pueden realizar.
Un
tipo de dato puede ser también visto como una limitación impuesta en la
interpretación de los datos en un sistema de tipificación, describiendo la
representación, interpretación y la estructura de los valores u objetos
almacenados en la memoria del ordenador. El sistema de tipificación usa
información de los tipos de datos para comprobar la verificación de los
programas que acceden o manipulan los datos.
TIPOS DE DATOS EN JAVA
Un dato siempre lleva asociado un tipo de dato, que determina el
conjunto de valores que puede tomar.
En Java toda la información que maneja un programa está representada por
dos tipos principales de datos:
a) Datos
de tipo básico o primitivo.
Los tipos de datos básicos o primitivos no son objetos y se pueden
utilizar directamente en un programa sin necesidad de crear objetos de este
tipo. La biblioteca Java proporciona clases asociadas a estos tipos que
proporcionan métodos que facilitan su manejo.
Los tipos de datos primitivos que soporta Java son:
Tipo de dato
|
Representación
|
Tamaño (Bytes)
|
Rango de Valores
|
Valor por defecto
|
Clase Asociada
|
byte
|
Numérico
Entero con signo
|
1
|
-128
a 127
|
0
|
Byte
|
short
|
Numérico
Entero con signo
|
2
|
-32768
a 32767
|
0
|
Short
|
int
|
Numérico
Entero con signo
|
4
|
-2147483648
a 2147483647
|
0
|
Integer
|
long
|
Numérico
Entero con signo
|
8
|
-9223372036854775808
a 9223372036854775807
|
0
|
Long
|
float
|
Numérico
en Coma flotante de precisión simple Norma IEEE 754
|
4
|
± 3.4x1038 a ± 3.4x1038
|
0.0
|
Float
|
double
|
Numérico
en Coma flotante de precisión doble Norma IEEE 754
|
8
|
± 1.8x10308 a ± 1.8x10308
|
0.0
|
Double
|
char
|
Carácter
Unicode
|
2
|
\u0000 a
\uFFFF
|
\u0000
|
Character
|
boolean
|
Dato lógico
|
-
|
true ó
false
|
false
|
Boolean
|
void
|
-
|
-
|
-
|
-
|
Void
|
b) Referencias a
objetos.
Las
variables de tipo primitivo nos permiten almacenar valores primitivos como
números o caracteres. Las variables de tipo referencia NO almacenan valores,
sino que nos permiten acceder a métodos y atributos de un objeto. Además algo
importante a tener en cuenta, y que explicaremos en posteriores entradas es que
el tipo de referencia debe ser compatible al tipo de objeto al que se refiere.
OPERADORES.
Un
operador lleva a cabo operaciones sobre uno (operador unario), dos (operador
binario) o tres (operador ternario) datos u operandos de tipo primitvo
devolviendo un valor determinado también de un tipo primitivo. El tipo de valor
devuelto tras la evaluación depende del operador y del tipo de los operandos.
Por ejemplo, los operadores aritméticos trabajan con operandos numéricos,
llevan a cabo operaciones aritméticas básicas y devuelven el valor numérico
correspondiente. Los operadores se pueden clasificar en distintos grupos según
se muestra en los siguientes apartados.
Operador asignación
El operador asignación, =, es un operador
binario que asigna el valor del término de la derecha al operando de la
izquierda. El operando de la izquierda suele ser el identificador de una
variable. El término de la derecha es, en general, una expresión de un tipo de
dato compatible; en particular puede ser una constante u otra variable. Como
caso particular, y a diferencia de los demás operadores, este operador no se
evalúa devolviendo un determinado valor.
Tabla del Operador de asignación
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado de ejemplo
|
=
|
Operador de asignación
|
N=4
|
4 vale 4
|
Operadores aritméticos
El
lenguaje de programación Java tiene varios operadores aritméticos para los
datos numéricos enteros y reales.
Tabla de operadores
aritméticos
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado de ejemplo
|
-
|
operador unario de
cambio de signo
|
-4
|
-4
|
+
|
Suma
|
2.5 + 7.1
|
9.5
|
-
|
Resta
|
235.6 - 103.5
|
132.1
|
*
|
Producto
|
1.2 * 1.1
|
1.32
|
/
|
División(tanto entera
como real)
|
0.050 / 0.2
|
0.25
|
%
|
Resto de la división
entera
|
20 % 7
|
6
|
Operadores aritméticos incrementales
Los
operadores aritméticos incrementales son operadores unarios (un único
operando). El operando puede ser numérico o de tipo char y el resultado es del
mismo tipo que el operando. Estos operadores pueden emplearse de dos formas
dependiendo de su posición con respecto al operando
Tabla de operadores
Aritméticos incrementales
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado de ejemplo
|
++
|
Incremento
i++ primero se utiliza la variable y luego
se incrementa su valor
++i primero se incrementa el valor
de la variable y luego se utiliza
|
4++
a=5; b=a++;
a=5; b=++a;
|
5
a vale 6 y b vale 5
a vale 6 y b vale 6
|
--
|
Decremento
|
4--
|
3
|
Operadores aritméticos combinados
Combinan
un operador aritmético con el operador asignación. Como en el caso de los
operadores aritméticos pueden tener operando numéricos enteros o reales y el
tipo específico de resultado numérico dependerá del tipo de éstos
Tabla
de Operadores aritméticos combinados
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado de ejemplo
|
+=
|
Suma combinada
|
a+=b
|
a=a+b
|
-=
|
Resta combinada
|
a-=b
|
a=a-b
|
*=
|
Producto combinado
|
a*=b
|
a=a*b
|
/=
|
División combinada
|
a/=b
|
a=a/b
|
%=
|
Resto combinado
|
a%=b
|
a=a%b
|
Operadores de relación
Realizan comparaciones entre datos compatibles
de tipos primitivos (numéricos, carácter y booleanos) teniendo siempre un
resultado booleano. Los operandos booleanos sólo pueden emplear los operadores
de igualdad y desigualdad
Operador
|
Descripción
|
Ejemplo
|
Resultado de ejemplo
|
==
|
Igual que
|
7 == 38
|
false
|
!=
|
Distinto que
|
'a' != 'k'
|
true
|
<
|
Menor Que
|
'G' < 'B'
|
false
|
>
|
Mayor que
|
'b' > 'a'
|
true
|
<=
|
Menor e igual que
|
7.5 <= 7.38
|
false
|
>=
|
Menor e igual que
|
38 >= 7
|
true
|
Operadores lógicos o booleanos
Realizan
operaciones sobre datos booleanos y tienen como resultado un valor booleano. En
la Tabla 4.6 se resumen los diferentes operadores de esta categoría.
Tabla
de Operadores lógicos o booleanos
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado del ejemplo
|
!
|
Negación - NOT (unario)
|
!false
!(5==5)
|
true
false
|
|
|
Suma lógica – OR (binario)
|
true | false
(5==5)|(5<4)
|
true
true
|
^
|
Suma lógica exclusiva – XOR
(binario)
|
true ^ false (5==5)|(5<4)
|
true
true
|
&
|
Producto lógico – AND (binario)
|
true & false
(5==5)&(5<4)
|
False
false
|
||
|
Suma lógica con cortocircuito: si el
primer operando es true entonces el segundo se salta y el resultado es true
|
true || false
(5==5)||(5<4)
|
True
true
|
&&
|
Producto lógico con cortocircuito:
si el primer operando es false entonces el segundo se salta y el resultado es
false
|
false && true
(5==5)&&(5<4)
|
False
false
|
El operador condicional
Este
operador ternario tomado de C/C++ permite devolver valores en función de una
expresión lógica. Sintaxis:
expresionLogica ? expresion_1 : expresion_2
Si el
resultado de evaluar la expresión lógica es verdadero, devuelve el valor de la
primera expresión, y en caso contrario, devuelve el valor de la segunda
expresión.
Tabla del operador condicional
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado del ejemplo
|
?:
|
operador condicional
|
a = 4;
b = a == 4 ? a+5 : 6-a;
b = a > 4 ? a*7 : a+8;
|
b vale 9
b vale 12
|
Operadores de bit
Tienen operandos de tipo entero (o char) y un
resultado de tipo entero. Realizan operaciones con dígitos (ceros y unos) de la
representación binaria de los operandos. Exceptuando al operador negación, los
demás operadores son binarios.
Tabla de Operadores de Bit
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado del ejemplo
|
~
|
Negación ó complemento binario
(unario)
|
~12
|
-13
|
|
|
Suma lógica binaria – OR (binario)
|
12|10
|
8
|
^
|
Suma lógica exclusiva – XOR
(binario)
|
12^10
|
6
|
&
|
Producto lógico binario – AND
(binario)
|
12&10
|
14
|
<<
|
Desplaza a la izquierda los bits del
1º operando tantas veces como indica el 2º operando (por la derecha siempre
entra un cero)
|
7<<2
-7<<2
|
28
-28
|
>>
|
Desplaza
a la derecha los bits del 1º operando tantas veces como indica el 2º operando
(por la izquierda entra siempre el mismo bit más significativo anterior)
|
7>>2
-7>>2
|
1
-2
|
>>>
|
Desplaza
a la derecha los bits del 1º operando tantas veces como indica el 2º operando
– sin signo (por la izquierda entra siempre un cero).
|
7>>>2
-7>>>2
|
1
1073741822
|
Operador concatenación de cadenas
El
operador concatenación, +, es un
operador binario que devuelve una cadena resultado de concatenar las dos
cadenas que actúan como operandos. Si sólo uno de los operandos es de tipo
cadena, el otro operando se convierte implícitamente en tipo cadena.
Tabla de Operador
concatenación de cadenas
|
|||
Operador
|
Descripción
|
Ejemplo
|
Resultado del ejemplo
|
+
|
Operador concatenación
|
“Hola” + “Juan”
|
“HolaJuan”
|
Separadores
Existen
algunos caracteres que tienen un significado especial en el lenguaje Java.
Tabla de
separadores
|
|
Operador
|
Descripción
|
()
|
Permiten modificar la
prioridad de una expresión, contener expresiones para el control de flujo y
realizar conversiones de tipo. Por otro lado pueden contener la lista de
parámetros o argumentos, tanto en la definición de un método como en la
llamada al mismo.
|
{}
|
Permiten definir
bloques de código y ámbitos y contener los valores iniciales de las variables
array
|
[]
|
Permiten declarar
variables de tipo array (vectores o matrices) y referenciar sus elementos
|
;
|
Permite separar
sentencias
|
,
|
Permite separar
identificadores consecutivos en la declaración de variables y en las listas
de parámetros. También se emplea para encadenar sentencias dentro de un bucle
for
|
.
|
Permite separar el
nombre de un atributo o método de su instancia de referencia. También separa
el identificador de un paquete de los de los subpaquetes y clases
|
RESUMEN
Sun
Microsystems desarrollo, en 1991, el lenguaje de programación orientado a
objetos que se conoce como Java.
El
objetivo era utilizarlo en un set-top box, un tipo de dispositivo que se
encarga de la recepción y la descodificación de la señal televisiva.
El
primer nombre del lenguaje fue Oak, luego se conoció como Green y finamente adopto
la denominación de Java.
El
compilador Java traduce cada fichero fuente de clases a código de bytes, que
puede ser interpretado por todas las maquinas que den soporte a un visualizador
de que funcione con Java.
Este
Bytecode no es especifico de una maquina determinada, por lo que no se compila
y enlaza como en el ciclo clásico, sino que se interpreta.
El
compilador crea códigos de byte que se envía al visualizador solicitado y se
interpreta en la máquina que posee un intérprete de Java o dispone de un visualizador
que funciona con Java.
Java
no dispone de esta habilidad de archivos de cabecera, el tipo y la visibilidad
de la clase se compila en el propio archivo de la clase, siendo tarea del
intérprete de Java realizar el acceso.
Imprime
documentación sobre una clase Java.
Estas
páginas, visualizables como HTML se encuentran en cantidad de sitios con información
sobre aplicaciones Java.
Se
invoca como javadoc.
SUMARY
Sun
Microsystems development in 1991, the language of object-oriented programming
is known as Java. The aim was to use a set-top box, a device type that is
responsible for the reception and decoding of TV signal. The first name was Oak
language, then became known as Green and finely adopted the name Java. The Java
compiler translates each source file class to bytecode, which can be played by
all machines that support a display that works with Java. This bytecode is not
specific to a particular machine, so it is not compiled and linked as in the
classic cycle, but is interpreted. The compiler creates byte code that is sent
to the requested display and interpreted in the machine that has a Java
interpreter or has a display that works with Java. Java does not have this
ability header files, type and visibility of the class is compiled into the
class file itself, being Java interpreter task to perform access. Print
documentation on a Java class. These pages, viewable as HTML is found in many
sites with information about Java applications. It invoked as javadoc.
RECOMENDACIONES
Siempre que alguien pregunta cuál es el mejor
lenguaje para empezar a programar no faltan las opiniones desinformadas.
Si me preguntarían yo respondería el mejor
lenguaje para programar es java porque
un lenguaje de programación de propósito general, concurrente, orientado
a objetos 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
de 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.
CONCLUSIONES
Hemos hecho un resumen de algunas partes del famoso lenguaje
Java, muy utilizado para escribir los programas que trabajan en internet y no
sólo para eso; empezando por las bases hasta llegar a las interfaces gráficas
y, finalmente, al sonido. Éstos son todos aspectos más avanzados de la
programación.
Las
tecnologías modernas y el avance en la programación
orientada a objetos, aspectos y a servicios, o sea
llámese, diferentes perspectivas de abordar el tema unido al creciente auge de Internet hace
que las aplicaciones del presente y del futuro se orienten cada vez más a la
web y al mundo de Internet, por varias razones: facilidad de uso, necesidad de
pocas prestaciones de
hardware y software para manipular tal aplicación y otras.
Dentro
de este mundo, las tecnologías de desarrollo y programación de software han
evolucionado a paso rápido y Java, una herramienta de gran expansión mundial y
que cuenta con una inmensa comunidad de desarrolladores no está exenta de
proponer muchas variantes y alternativas válidas para realizar aplicaciones de
este tipo. La curva de aprendizaje y
sobre todo el ensamblaje de todas estas tecnologías resulta ser algo que
requiere de manos expertas y conocedoras del tema pero una vez que se logran
establecer los marcos de trabajo y las herramientas se configuran para su buen
uso y trabajo, la programación con Java resulta ser algo relativamente sencillo
y práctico y se convierte en una herramienta de trabajo muy útil para el
desarrollo de aplicaciones.
APRECIACION DEL EQUIPO
Este trabajo fue muy importante porque
nos ha permitido entender el lenguaje de
programación Java y su importancia en la actualidad ya que se adapta a la perfección a todo tipo de
dispositivos móviles como las incipientes tablets o smartphones, una ventaja
que permite que cualquier desarrollo de software creado a través de Java sea
visible desde cualquier lugar y en cualquier momento.
También
este lenguaje es posible hacer casi cualquier elemento o aplicación, además de
las atractivas páginas web dinámicas que, mediante XML, ofrecen un diseño mucho
más atractivo que una página estática. Además permite incluir sonido y objetos
multimedia así como bases de datos y otras funcionalidades.
GLOSARIO DE TÉRMINOS
Sun Microsystem:Fue una
empresa informática que se
dedicaba a vender estaciones de trabajo, servidores, componentes informáticos,
software (sistemas operativos) y servicios informáticos.
set-top
box: un tipo de
dispositivo que se encarga de la recepción y la descodificación de la señal.
Ordenador: Máquina electrónica capaz de almacenar
información y tratarla automáticamente mediante operaciones matemáticas y lógicas
controladas por programas informáticos.
HTML: sigla en inglés de HyperText Markup Language
(lenguaje de marcas de hipertexto), hace referencia al lenguaje de marcado para
la elaboración de páginas web.
Java
Community Process: es un proceso formalizado el cual permite a
las partes interesadas a involucrarse en la definición de futuras versiones y
características de la plataforma Java.
Applets
Java: es un applet escrito en el lenguaje de programación Java. Losapplets de Java pueden ejecutarse en un navegador web
utilizando la Java Virtual Machine (JVM), o en el
AppletViewer de Sun.
TCP/IP:Es un protocolo DARPA que proporciona transmisión
fiable de paquetes de datos sobre redes.
Bytecode: es el
tipo de instrucciones que la máquina virtual Java espera recibir, para
posteriormente ser compiladas a lenguaje de maquina, mediante un compilador JIT
a la hora de su ejecución.
Encriptar: Ocultar
datos mediante una clave.
Tipificación: Clasificación
en tipos o clases de una realidad o un conjunto de cosas.
Si desean el Documento en Diapositivas Aca los dejo el link para que puedan verlo en lo mas Resumido.
http://es.slideshare.net/ErlinDarwinHerreraCieza/java-de-erlin
http://es.slideshare.net/ErlinDarwinHerreraCieza/java-de-erlin
Para todas aquellas personas que les gustaría saber mas sobre JAVA este documento es perfecto
ResponderEliminarPresentacion bien desarrollada.Trabajo bien elaborado.Ilustrar el trabajo. Proponga un foro de discusión sobre el tema.Defina bien las recomendaciones y conclusiones. Muchas gracias por su investigación. Gracias. Saludos
ResponderEliminarPerfecto fondo OBI WAN KENOBI y R2-D2 - Arturito (Y)
ResponderEliminar