miércoles, 7 de septiembre de 2016

JAVA



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

3 comentarios:

  1. Para todas aquellas personas que les gustaría saber mas sobre JAVA este documento es perfecto

    ResponderEliminar
  2. Presentacion 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

    ResponderEliminar
  3. Perfecto fondo OBI WAN KENOBI y R2-D2 - Arturito (Y)

    ResponderEliminar