martes, 13 de septiembre de 2016

Java

         

                              











I. JAVA
      1. Contenido
Ø  Definición
Java es 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.
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.
El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Mycrosistem (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos.
Ø  Características
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 especifico 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
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.
Ø  TIPOS DE DATOS

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.
b)     Referencias a objetos.
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.4x10-38 a ± 3.4x1038
0.0
Float
double
Numérico en Coma flotante de precisión doble Norma IEEE 754
8
± 1.8x10-308 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


DATOS NUMÉRICOS ENTEROS

En Java los representan los tipos: byte, short, int, long.
El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o negativos.
Ejemplo de declaración de variables enteras:
int a;
byte n1, n2;
short x;

DATOS NUMÉRICOS REALES

En Java los representan los tipos: float, double.
El tipo de dato numérico real es un subconjunto finito de los números reales. Siempre llevan un punto decimal y también pueden ser positivos o negativos. Los números reales tienen una parte entera y una parte decimal.
Por ejemplo: 0.08   -54.0001
Ejemplo de declaración de variables reales:
float peso;
double longitud;
float altura = 2.5F;
double area = 1.7E4; // equivale a 1.7 * 104
double z = .123; //si la parte entera es 0 se puede omitir

DATOS DE TIPO CARÁCTER

En Java se representa con el tipo char.
Un dato de tipo carácter se utiliza para representar un carácter dentro del rango \u0000 a \uFFFF (números desde 0 hasta 65535) en Unicode.
En realidad, un dato de tipo char contiene un número entero dentro del rango anterior que representa un carácter.
En Java se utiliza el código Unicode para la representación de caracteres. Este código actualmente representa los caracteres de la mayoría de idiomas escritos en todo el mundo.
Los 127 primeros caracteres de Unicode corresponden al código ASCII.
El Código ASCII (American Standard Code for Information Interchange o Código Estándar Americano para el Intercambio de Información) asigna valores numéricos a las letras, números, signos de puntuación y algunos otros caracteres especiales.
ASCII incluye 256 códigos divididos en dos conjuntos, estándar y extendido, de 128 cada uno. El conjunto ASCII básico, o estándar, utiliza 7 bitspara cada código, lo que da como resultado 128 códigos de caracteres desde 0 hasta 127.
El conjunto ASCII extendido utiliza 8 bits para cada código, dando como resultado 128 códigos adicionales, numerados desde el 128 hasta el 255.
En el conjunto de caracteres ASCII básico, los primeros 32 valores están asignados a los códigos de control de comunicaciones y de impresora (caracteres no imprimibles) empleados para controlar la forma en que la información es transferida desde una computadora a otra o desde una computadora a una impresora. En este grupo están los códigos correspondientes a la barra espaciadora (SP por space), la tecla ENTER de retorno de carro a un nuevo renglón (CR por carry return), etc. También existen caracteres de control usados en teleprocesamiento, como ser ACK (Acknowledge - aviso de mensaje recibido), BEL (bell - aviso por señal sonora), ETX (end of text – fin de texto), STX (start of text – comienzo de texto), etc.
Los 96 códigos restantes del código básico corresponden a los caracteres imprimibles y se asignan a los signos de puntuación corrientes, a los dígitos del 0 al 9 y a las letras mayúsculas y minúsculas del alfabeto latino.
Los códigos correspondientes al ASCII extendido, del 128 al 255, se asignan a aquellos caracteres que no pertenecen al alfabeto anglosajón, por ejemplo, las vocales con tilde, la ñ, y en general todos los caracteres especiales que utilizan los distintos lenguajes.

Debido a lo limitado de su tamaño, el código ASCII no es suficiente para representar caracteres de alfabetos como el Japonés, Chino o árabe. La solución a este problema ha sido crear un código más grande con el que poder representar cualquier carácter de cualquier idioma: el código Unicode.
El código UNICODE proporciona una única representación numérica para cada símbolo, independientemente del ordenador, el programa o el lenguaje de programación que se use.
La codificación Unicode se ha transformado en un estándar adoptado por las principales empresas de hardware y software. Java utiliza la codificación Unicode.
Ejemplo de declaración de variables de tipo carácter:
char car;
char letra1 = 'z';
char letra = '\u0061'; //código unicode del carácter ‘a’

DATOS DE TIPO LÓGICO

Se representan con el tipo boolean.
Los datos de este tipo sólo pueden contener dos valores: true (verdadero) ó false (falso).
Ejemplo de declaración de variables lógicas:
boolean primero;
boolean par = false;
Los tipos de datos lógicos son también conocidos como booleanos en honor del matemático inglés George Bool, que desarrolló la teoría conocida como álgebra de bool que fue la base para la representación de los circuitos lógicos.

TIPOS DE DATOS EN JAVA

NOMBRE
TIPO
OCUPA
RANGO APROXIMADO
TIPOS PRIMITIVOS
(sin métodos; no son objetos; no necesitan una invocación para ser creados)
byte
Entero
1 byte
-128 a 127
short
Entero
2 bytes
-32768 a 32767
int
Entero
4 bytes
2*109
long
Entero
8 bytes
Muy grande
float
Decimal simple
4 bytes
Muy grande
double
Decimal doble
8 bytes
Muy grande
char
Carácter simple
2 bytes
---
boolean
Valor true o false
1 byte
---





TIPOS OBJETO
(con métodos, necesitan una invocación para ser creados)
Tipos de la biblioteca estándar de Java
String (cadenas de texto)
Muchos otros (p.ej. Scanner, TreeSet, ArrayList…)
Tipos definidos por el programador / usuario
Cualquiera que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia
arrays
Serie de elementos o formación tipo vector o matriz. Lo consideraremos un objeto especial que carece de métodos.
Tipos envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objetos.)
Byte
Short
Integer
Long
Float
Double
Character
Boolean


Ø    Operadores

Los operadores son muy similares a los de C++, ya lo advertimos en su momento.


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 relacció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 paradigma de programación del lenguaje Java se basa en el concepto de programación orientada a objetos (OOP), que las funciones del lenguaje soportan. Java es un lenguaje de programación de proposito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible.

Características

Las características principales que nos ofrece Java son: Simple, orientado al objeto, distribuido, interpretado, sólido, seguro, arquitectura neutral, portable, alto desempeño, multihilos y dinámico.

Tipos de Datos

 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.
b)     Referencias a objetos.
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.

Operadores

Operadores Aritméticos
Operadores java relacionales
Operadores java lógicos
           Operador de concatenación con cadena de caracteres '+'
           Operadores que actúan a nivel de bits

   3. Sumary

The paradigm Java programming language is based on the concept of object-oriented programming (OOP), that language functions supported. Java is a programming language for general purpose concurrent object oriented which was specifically designed to have as few implementation dependencies as possible.

Characteristics

The main features that Java offers are: Simple, object-oriented, distributed, interpre-
ted, robust, secure, architecture neutral, portable, high-performance, multithreading
 and dynamic.



Type of data

 In Java all the information handled by a program is represented by two main types of data:
a) basic or primitive data type.
b) References to objects.
The types of basic or primitive data are not objects and can be used directly in a program without creating objects of this type.

Operators

Arithmetic operators
Java relational operators
Logical operators java
            Concatenation operator with string '+'
            Operators acting bitwise

  4. Recomendaciones       

Ø  No debemos volver a escribir el código si queremos ejecutar el programa en otra máquina. Un solo código funciona para todos los browsers compatibles con Java o donde se tenga una Máquina Virtual de Java.

Ø  Java es un lenguaje de programación orientado a objetos, y tiene todos los beneficios que ofrece esta metodología de programación .Un browser compatible con Java deberá ejecutar cualquier programa hecho en Java, esto ahorra a los usuarios tener que estar insertando "plug-ins" y demás programas que a veces nos quitan tiempo y espacio en disco.

  5. Conclusiones

Ø  El rey actual de los lenguajes de programación, Java, se está convirtiendo por méritos propios en el imprescindible protagonista de todos los cursos, asignaturas y módulos profesionales que versan sobre iniciación a la programación. Pero Java es un lenguaje orientado a objetos, y esto supone un desafío para todos aquellos que, incluso teniendo gran experiencia en lenguajes estructurados como Pascal o C, quieren aprenderlo o enseñarlo. Las peculiaridades de este tipo de lenguajes han motivado la aparición de entornos de programación específicamente adaptados para su enseñanza: este monográfico te presenta dos de los más utilizados ( BlueJ y jGrasp) confrontándolos con un entorno de desarrollo profesional (NetBeans).

  6. Apreciación del Equipo
Ø  En nuestro criterio java es un lenguaje de programación utilizado por muchas personas, incluso por nosotros mismos me parece un tema de investigación muy interesante ya que en ello descubrimos muchas cosas que no sabíamos en lo que es teoría.
Ø  Desarrollo de software es un curso muy importante de nuestra carrera de Ingeniería de Sistemas y quien está encargado actualmente el Ingeniero Marco Aurelio Porro Chulli es un excelente docente y está desempeñando muy bien el curso con nosotros.

  7. Glosario de Términos

Arrays: Los arrays son usados extensamente por los programadores para contener listas de datos en la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un array con el objetivo de facilitar la manipulación de dichos datos.
Multihilios: Un programa multihilo contiene dos o más partes que se pueden ejecutar de manera concurrente o simultánea. A cada una de esas partes se les denomina hilo y cada uno de ellos define un camino de ejecución independiente. Se puede ver a la programación multihilo como una forma especializada de multitarea.

El bytecode: El bytecode un código intermedio más abstracto que el código máquina. Habitualmente es tratado como 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.

Unicode: Unicode es el estándar de codificación de caracteres universal utilizado para la representación de texto para procesamiento del equipo. Unicode proporciona una manera consistente de codificación de texto multilingüe y facilita el intercambio de archivos de texto internacionales.

Esporádicamente: Que se da con poca frecuencia, no es regular y ocurre aisladamente sin relación alguna con otros casos anteriores o posteriores: no hay epidemia, solamente son casos esporádicos de meningitis. ocasional.

Encriptar un código: La encriptación es el proceso para volver ilegible información considera importante. La información una vez encriptada sólo puede leerse aplicándole una clave. 

Se trata de una medida de seguridad que es usada para almacenar o transferir información delicada que no debería ser accesible a terceros. Pueden ser contraseñas, numeros. de tarjetas de crédito, conversaciones privadas, etc. 


8. Linkografía

https://es.wikipedia.org/wiki/Java_(lenguaje_de_programación)
aprenderaprogramar.com/index.php?option...id...java...java...
www.infor.uva.es/~jmrr/tgp/java/JAVA.html
https://es.wikibooks.org/wiki/Programación_en_Java/Características_del_lenguaje
http://puntocomnoesunlenguaje.blogspot.pe/2012/04/tipos-de-datos-java.html

1 comentario:

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