lunes, 12 de septiembre de 2016

JAVA


DESARROLLO DE SOFTWARE I









I.             TEMA : Java
1.      CONTENIDO

Ø Definición
¿Qué es Java?
Java es un lenguaje de programación y una plataforma informática 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.
Java fue comercializado por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se crean más. Java es rápido, seguro y fiable. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes.
Actualmente es uno de los lenguajes más usados para la programación en todo el mundo.

Ø  Características
Características de Java
   Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya esta técnica, encapsulación, herencia, polimorfismo, etc., están presentes en Java.
·   Disponibilidad de un amplio conjunto de bibliotecas. La programación de aplicaciones con Java se basa no solo en el empleo del juego de instrucciones que componen el lenguaje, sino, fundamentalmente, en la posibilidad de utilizar el amplísimo conjunto de clases que Sun Microsystems  pone a disposición del programador y con las cuales es posible realizar prácticamente cualquier tipo de aplicación.
· Lenguaje simple Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Java tiene un sistema automático de asignación y liberación de memoria (recolector de basura) que mejora mucho los sistemas del C++, debido a su semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivos en poco tiempo. Esta eliminación de causas de error y problemas de mantenimiento facilita y reduce el coste del desarrollo de software.
§  Java no da soporte a struct, union y pointer
§  Java no ofrece typedef ni # define
§  No permite la sobrecarga de operadores.
§  No ofrece herencia múltiple.
§  Maneja los comandos en línea de diferente manera que C++.
§  Java tienen una clase String, que permite un mejor manejo que los arrays de terminación nula del C y C++.
§  Java tiene un sistema automático de asignación y liberación de memoria (recolector de basura) que mejora mucho los sistemas del C++.
   Distribuido. Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas.
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).
·   Interpretado y compilado a la vez. Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador. Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (run-time).
  Robusto. Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo de los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria.
·Seguro. Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la seguridad se impuso como una necesidad de vital importancia. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real
Indiferente a la arquitectura. Java está diseñado para soporta aplicaciones que serán ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos de ejecución tan diversos o variopintos, el compilador de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñada para transportar el código eficientemente a múltiples plataformas hardware y software. El resto de problemas los soluciona el intérprete de Java.
Portable. La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).
Alto rendimiento. Java es considerado de alto rendimiento por ser tan  veloz en el momento de correr los programas y por ahorrase muchas líneas de código.
Multihebra o Multihilos. Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.
Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.
Produce applets. Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets. Las aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc.

Ø  Tipos de datos
Tipos de datos (variables) en java.
En Java existen dos grupos de tipos de datos, tipos primitivos y tipos referencia. Los tipos de datos primitivos son los mismos que en C/C++, int, float, double, etc; los tipos referencias sirven para acceder a los atributos y métodos de los objetos.
§  Tipos Primitivos
En Java el tamaño de los tipos primitivos no depende del sistema operativo o de la arquitectura, en todas las arquitecturas y bajo todos los sistemas operativos el tamaño en memoria es el mismo.



Tipo de dato
Representación
Tamaño (Bytes)
Rango de Valores
Valor por defecto
Clase Asociada
byte
Numérico Entero con signo
1Bytes (8 bits)
-128 a 127
0
Byte
short
Numérico Entero con signo
2 Bytes (16 bits)
-32768 a 32767
0
Short
int
Numérico Entero con signo
4 Bytes (32 bits)
-2147483648 a 2147483647
0
Integer
long
Numérico Entero con signo
8 Bytes (64 bits)
-9223372036854775808 a 9223372036854775807
0
Long
float
Numérico en Coma flotante de precisión simple Norma IEEE 754
4 Bytes (32 bits)
± 3.4x10-38 a ± 3.4x1038
0.0
Float
double
Numérico en Coma flotante de precisión doble Norma IEEE 754
8 Bytes (64 bits)
± 1.8x10-308 a ± 1.8x10308
0.0
Double
char
Carácter Unicode
2 Bytes (16 bits)
\u0000 a \uFFFF
\u0000
Character
boolean
Dato lógico
1 Bytes (8 bits)
true ó false
false
Boolean
void
-
-
-
-
Void


 Tipos referencia
En Java los objetos, instancias de clases, se manejan a través de referencias. Cuando se crea una nueva instancia de una clase con el operador new este devuelve una referencia al tipo de la clase.
 Para aclararlo veamos un ejemplo:
Punto unPunto = new Punto ();
El operador new () reserva espacio en memoria para contener un objeto del tipo Punto y devuelve una referencia que se asigna a unPunto. A partir de aquí accedemos al objeto a través de su referencia.

Ø  Operadores
Operadores de Java

Los operadores son muy similares a los de C++.

Operadores Aritméticos: Los habituales        


·         Suma +
·         Resta -
·         Multiplicación *
·         División /
·         Resto de la División %

Operadores de Asignación: El principal es '=' pero hay más operadores de asignación con distintas funciones que explicamos brevemente ahora.
·         '+=' : op1 += op2 à op1 = op1 + op2
·         '-=' : op1 -= op2 à op1 = op1 - op2
·         '*=' : op1 *= op2 à op1 = op1 * op2
·         '/=' : op1 /= op2 à op1 = op1 / op2
·         '%=' : op1 %= op2 à op1 = op1 % op2

Operadores Unarios: El mas (+) y el menos (-). Para cambiar el signo del operando. 

Operador Instanceof: Nos permite saber si un objeto pertenece a una clase o no.
·         NombreObjeto instanceof NombreClase

Operadores Incrementales: Son los operadores que nos permiten incrementar las variables en una unidad. Se pueden usar delante y detrás de la variable dependiendo de lo que queramos, es decir, si queremos que incremente o viceversa antes de utilizar o lo contrario.
·         '++'
·         '--'

Operadores Relacionales: Permiten comparar variables según relación de igualdad/desigualdad o relación mayor/menor.
Devuelven siempre un valor boolean.
·         '>': Mayor que
·         '<': Menor que
·         '==': Iguales
·         '¡=': Distintos
·         '>=': Mayor o igual que
·         '<=': Menor o igual que

Operadores Lógicos: Nos permiten construir expresiones lógicas.
·         '&&' : devuelve true si ambos operandos son true.
·         '||' : devuelve true si alguno de los operandos son true.
·         '!' : Niega el operando que se le pasa.
·         '&' : devuelve true si ambos operandos son true, evaluándolos ambos.
·         '|' : devuelve true uno de los operandos es true, evaluándolos ambos.

Operador de concatenación con cadena de caracteres '+':
·         Por Ejemplo: System.out.println("El total es"+ result +"unidades");

Operadores que actúan a nivel de bits: Son mucho menos utilizados por eso los explicamos más por encima.
·         '>>': desplazamiento a la derecha de los bits del operando
·         '<<': desplazamiento a la izquierda de los bits de operando
·         '&': operador and a nivel de bit.
·         '|': operador or a nivel de bit

2.     RESUMEN

El marco colecciones Java da acceso al programador a los datos preenvasados
estructuras, así como a los algoritmos para la manipulación de ellos.
Una colección es un objeto que puede contener referencias a otros objetos.
 Las interfaces de la colección declaran las operaciones que se pueden realizar en cada 
tipo de colección.
Las clases e interfaces del marco de las colecciones están en el paquete java.util.
Sería bueno si pudiéramos escribir un solo método para ordenar que podría ordenar 
los elementos de una matriz de enteros, una matriz de cadenas, o una matriz de 
cualquier tipo que apoya el pedido.
Los métodos de Java genéricos y clases genéricas permiten a los programadores
para especificar, con una única declaración de método, un conjunto de 
métodos relacionados, o con una sola declaración de la clase, un conjunto de 
tipos relacionados, respectivamente.
Los medicamentos genéricos también proporcionan la seguridad de tipos en tiempo 
de compilación que permite a los programadores para la captura no válida de tipos en 
tiempo de compilación.
Utilizando el concepto genérico de Java, podríamos escribir un método genérico 
para ordenar una matriz de objetos, a continuación, invocar el método genérico con 
matrices de enteros, matrices, las matrices de cadenas dobles y así sucesivamente, 
para ordenar los elementos de la matriz.


3.   SUMMARY

The Java collections framework gives the programmer access to prepackaged data 
structures as well as to algorithms for manipulating them.
A collection is an object that can hold references to other objects. The collection
 interfaces declare the operations that can be performed on each type of collection.
The classes and interfaces of the collections framework are in package java.util.
It would be nice if we could write a single sort method that could sort the elements 
in an Integer array, a String array, or an array of any type that supports ordering.
Java Generic methods and generic classes enable programmers to specify, with a 
single method declaration, a set of related methods, or with a single class declaration, a 
set of related types, respectively.
Generics also provide compile-time type safety that allows programmers to catch invalid
 types at compile time.
Using Java Generic concept, we might write a generic method for sorting an array of 
objects, then invoke the generic method with Integer arrays, Double arrays, String arrays 
and so on, to sort the array elements.


                      4. RECOMENDACIONES

En Java existen ciertas reglas de codificación que son comúnmente utilizadas por 
los programadores. Conviene conocer y seguir estas reglas.

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

·         Los nombres de las clases deben empezar por mayúscula.
·         Los atributos y métodos de las clases deben empezar por minúsculas y si están formadas por varias palabras, se escriben sin espacios y la primera letra de cada palabra en mayúscula.
·         Las instancias de las clases siguen la misma recomendación que los métodos y atributos.
·         Las constantes se escriben en mayúsculas.

5.    CONCLUSIONES

·         Java  se caracteriza por ser un lenguaje muy utilizado.
·         Java como sabemos es un lenguaje que fue creado a similitud del lenguaje C pero con una diferencia, que este lenguaje nos ayuda a tener una mayor seguridad en el programa que se está ejecutando.
·         Java, comprende varias tecnologías además es un lenguaje multiplataforma.

6. APRECIACIÓN DEL EQUIPO

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.


7.     GLOSARIO DE TÉRMINOS

·         Sun Microsystems: Fue una empresa informática que se dedicaba a vender estaciones de trabajo, servidores, componentes informáticos, software (sistemas operativos) y servicios informáticos.

·        Encapsulación: Es un método de diseño modular de protocolos de comunicación en el cual las funciones lógicas de una red son abstraídas ocultando información a las capas de nivel superior.

·   Polimorfismo: Se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.

·         Sockets: Son una manera simple de establecer enlaces entre instancias, permiten crear comunicaciones.

·         Http (Hypertext Transfer Protocol o en español  protocolo de transferencia de hipertexto): Es el protocolo de comunicación que permite las transferencias de información en la World Wide Web.

·         FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos): Es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basada en la arquitectura cliente-servidor.

·     Bytecode: Es un archivo  binario  que contiene un programa ejecutable similar a un módulo objeto, que es un archivo binario producido por el compilador cuyo contenido es el código objeto o código máquina.

·         Estaciones De Trabajo: Es una computadora que facilita a los usuarios el acceso a los servidores y periféricos de la red.

·      Web Hotjava: Es un navegador web modular y extensible de Sun Microsystems que puede ejecutar applets Java.
·         Concatenación: Figura que consiste en la repetición de dos o más cláusulas o miembros del periodo anterior en el inicio del siguiente.


8.    LINKOGRAFÍA















No hay comentarios.:

Publicar un comentario