lunes, 30 de abril de 2012

Sintaxis de Java (Operadores)

-Operadores Aritméticos

                Los operadores aritméticos son utilizados para realizar operaciones aritméticas, estos son la suma(+), resta (-), multiplicación (*) y división (/).

                 int suma = 100 + 500;
                 int resta = 100 – 35;
                 int multiplicación = 10 * 5;
                 int división = 10 / 2;

                Tambien se encuentra disponible el resto de la división (%).

                int resto = 10 % 3; // el resto de la división en este caso es 1

-Operadores de Asignación

            Los operadores de asignación se utilizan para asignar valores a las variables. En la tabla siguiente se presentan los operadores, junto con un ejemplo de utilización y su expresión equivalente en una forma extendida:
           
Operador
Utilización
Expresión equivalente
=
op1 = op2
op1 = op2
+=
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

-Operador instanceof

                El operador instaceof permite saber si un objeto pertenece o no a una determinada clase. Su utilización es la siguiente:

                nombreObjeto instanceof nombreClase

Retorna true o false según si el objeto pertenece o no a la clase.

-Operador condicional “?:”

                El operador condicional “?:” es conocido también como inline-if. Se utiliza de la siguiente manera:

                String respuesta = (numero1 > numero2) ? “SI” : “NO”;

                El operador evalua expresión booleana “numero1 > numero2” y retorna “SI” en caso afirmativo y “NO” en caso negativo.

-Operadores incrementales y decrementales

                Los operadores de incremento (++) y decremento (--) se utilizan para sumar o restar una unidad de una variable determinada. Su forma de uso es la siguiente:

                int numero = 100;
                numero++; // numero toma el valor 101
                numero--; // numero toma el valor 100

-Operadores relacionales

Los operadores relacionales se utilizan para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor. El resultado de estos operadores es siempre un valor booleano (true o false).
A continuación se presentan los posibles operadores junto con su utilización:

Operador
Utilizacion
El resultado es true…
> 
op1 > op2
si op1 es mayor que op2
>=
op1 >= op2
si op1 es mayor o igual que op2
< 
op1 < op2
si op1 es menor que op2
<=
op1 <= op2
si op1 es menor o igual que op2
==
op1 == op2
si op1 y op2 son iguales
!=
op1 != op2
si op1 y op2 son diferentes

-Operadores lógicos
      

Los operadores lógicos se utilizan para construir expresiones lógicas, combinando valores lógicos (true y/o false). En ciertos casos el segundo operando no se evalua porque no resulta necesario.
A continuación se presentan los posibles operadores junto con su utilización:

Operador
Utilización
Resultado
&
op1 & op2
true si op1 y op2 son true. Siempre se evalua op2
|
op1 | op2
true si op1 u op2 son true. Siempre se evalua op2
!
!op
true si op es false y false si op es true
&&
op1 && op2
true si op1 y op2 son true. Si op1 es false ya no se evalua op2
||
op1 || op2
true si op1 u op2 son true. Si op1 es false ya no se evalua op2


-Operador concatenación de caracteres

El operador “+” se utiliza para realizar sumas, pero también esta definido para poder concatenar cadenas de caracteres.
Su utilización es la siguiente:

String respuesta = “Se han comprado” + variableCantidad + “unidades”;

-Operadores aplicables a bits

Los operadores aplicables a bits se utilizan para manipular a nivel bits un valor, donde se pueden realizar operaciones lógicas como también desplazamientos de bits a izquierda/derecha.
A continuación se presentan los posibles operadores junto con su utilización:

Operador
Utilización
Resultado
>> 
op1 >> op2
Desplaza los bits de op1 a la derecha una distancia op2
<< 
op1 << op2
Desplaza los bits de op1 a la izquierda  una distancia op2
&
op1 & op2
Operador AND a nivel de bits
|
op1 | op2
Operador OR a nivel de bits
^
op1 ^ op2
Operador XOR a nivel de bits (1 si solo uno de los operadores es 1)
~
~op2
Operador complemento (invierte el valor de cada bit)

- Clasificacion

Los operadores pueden ser clasificados según la cantidad de operando que utilicen.
Las categorías son las siguientes:

Operadores unarios:
         Son aquellos operadores que necesitan un único operador para realizar la operación, por ejemplo el operador incremento (++) o  el operador negación (!).

Operadores binarios:
         Son aquellos operadores que necesitan dos operandos para realizar la operación, por ejemplo, el operador suma (+) o el operador AND (&&).

Operadores ternarios:
         Son auqellos operadores que necesitan tres operandos para realizar la operación, el único operador ternario que posee JAVA es “? : ”

viernes, 27 de abril de 2012

Sintaxis de Java (Tipos de dato primitivos)

-boolean:
El tipo de dato boolean se utiliza para almacenar las palabras claves tru o false, es decir verdadero o falso. Ocupan 1 byte en memoria.

-char:
El tipo de dato char se utiliza para almacenar un solo carácter, del tipo Unicode. Ocupan 2 bytes en memoria

-byte:
El tipo de dato byte es un tipo de dato numérico y entero, se utiliza para almacenar números comprendidos entre -128 y 127. Ocupa 1 byte en memoria.

-short:
El tipo de dato short es un tipo de dato numérico y entero, se utiliza para almacenar números comprendidos entre -32768 y 32767. Ocupa 2 bytes de memoria.

-int:
El tipo de dato int es un tipo de dato numérico y entero, se utiliza para almacenar números comprendidos entre -2.147.483.648 y 2.147.483.647. Ocupa 4 bytes de memoria.

-long:
El tipo de dato long es un tipo de dato numérico y entero, se utiliza para almacenar números comprendidos entre -9.223.972.036.854.775.808 y 9.223.972.036.854.775.807. Ocupa 8 bytes de memoria.

-float:
El tipo de dato float es un tipo de dato numero y de punto flotante, se utiliza para alamacenar numero comprendidos  entre -3.402823E38 a -1.401298E-45 y de 1.401298E-45 a -3.402823E38. Ocupa 4 bytes de memoria, y maneja entre 6 y 7 cifras decimales.

-double:
El tipo de dato doublé es un tipo de dato numérico y de punto flotante, se utiliza  para alamacenar números comprendidos de -1.79769313486232E308 a -4.94065645841247E-324 y de 4.94065645841247E-324 a 1.79769313486232E308. Ocupa 8 bytes de memoria, y maneja unas 15 cifras decimales.

Sintaxis de Java (Definición de variables)


·        Identificador

A la hora de nombrar las variables es importante tener en cuenta que no pueden comenzar con un número ni  utilizar caracteres “%” o “*” o “@” porque están reservados para otras operaciones.
Pueden comenzar con los caracteres “_” o “$”, aunque la especificación no recomiendo el uso del carácter “$” en variables.

·         Tipos de variables

Las variables pueden ser declaradas con tipo de datos primitivos (int, long, float, double, etc) o también como tipos, pertenecientes a alguna clase, como por ejemplo la calse String para trabajar con cadenas de caracteres.

·         Declaración y definición

Una variable del tipo entero puede ser declarada de la siguiente forma:
                               int var;
Si se desea declararla y asignarle un valor, en este caso resulta necesario definirla. La definición se realiza de la siguiente manera:
                               int var = 20;

·         Vectores

Para manejar un conjunto de valores se utilizan los vectores que agrupan una serie de valores en una única variable. Para trabajar con arreglos (vectores) es necesario determinar el tipo de información que contendrá y la longitud – o cantidades de elementos – que tendrá el propio vector.
Si por ejemplo, resulta necesario construir un vector para almacenar números enteros, se utilizara un vector del tipo entero de, por ejemplo, 10 posiciones, que luego será necesario llenarlo con valores. Lo dicho anteriormente, se realiza de la siguiente manera:
                               int [] vector = new int [10];
                               vec[0] = 150;
                               vec[1] = 300;
                               vec[2] = 500;
Si se conocen de antemano los valores que contendrá el vector, podemos armar el vector de una forma mas resumida, presentada a continuación:
                               int [] vector = {150,300,500,4,5,6}
Los vectores cuentan con la posibilidad de solicitarles que longitud poseen, esto se realiza a través del atributo length.
Es importante recordar que en JAVA – a diferencia de otros lenguajes de programación – la primer posición de un vector es la posición  0 (cero).

Desarrollo, compilación y ejecución


-Organización
·         El Java Development Kit (JDK):
El Java Development Kit es el kit de desarrollo propuesto por Oracle (antes Sun Microsystem) para realizar desarrollos en JAVA. Se puede bajar de forma gratuita de la página: http://www.oracle.com/technetwork/java/javase/downloads/index.html
El kit incluye herramientas de desarrollo tales como un compilador, un debugger, un documentador para documentar en forma casi automática una aplicación, un empaquetador para crear archivos de distribución, y otras herramientas más.
El kit no incluye un entorno de desarrollo interactivo ( o IDE) como pueden ser NetBeans, Eclipse, Jdeveloper.
Pero en la pagina mencionada anteriormente se van a poder descargar el “combo” de JDK + Netbeans.

·         El Compilador:
El compilador viene incluido como una herramienta dentro de la JDK, en el sistema operativo Windows viene presentado como javac.exe
El compilador transforma los archivos de código fuente de java, es decir los archivos de texto con extensión “.java” en archivo compilado, también denominados bytecode. Los archivos compilados tiene la extensión .class y son archivos binarios.

·         El Java Runtime Environment (JRE)
Java Runtime Environment es el ambiente de ejecución de Java, y también esta incluido en la JDK.  Tiene como componentes mas importantes a la Java Virtual Machine y a las clases libraries, que son las que contienen las clases base del lenguaje de programación JAVA.
El JRE se distribuye también en forma independiente, es decir sin la JDK, ya que cuando es necesario desplegar una aplicación hecha en JAVA en el cliente, no es necesario instalarle herramientas que son propias del proceso de desarrollo, como ser el compilador, empaquetador, documentador, y otros.
Sin una JRE instalada no es posible ejecutar una aplicación construida en JAVA.
En Windows, el comando para invocarlo es el java.exe

-La Java Virtual Machine (JVM)
·         ¿Que es?
La Java Virtual Machine viene incluida dentro de la Java Runtime Environment, y tiene como principal objetivo la ejecución de código JAVA compilado, es decir de los archivos .class
La JVM se encarga de interpretar el bytecode y convertirlo a código nativo en tiempo de ejecución, lo cual hace que la ejecución sea un poco más lenta pero garantiza portabilidad, es decir que el lenguaje sea multiplataforma. De esta manera el código compilado JAVA se puede ejecutar en cualquier plataforma (arquitectura + sistema operativo) que tenga instalada la JRE.
“Write once, run anywhere” es la política desde el primer dia de JAVA, es decir construir la aplicación una vez y ejecutarla en “cualquier lado”.

·         La variable de entorno CLASSPATH
La variable de entorno CLASSPATH se utiliza para referenciar el directorio donde estarán ubicadas todas las clases o archivos empaquetados que contienen clases.



Un poco de historia...

El comienzo

En el año 1990 nace JAVA, bajo el diseño y la implementación de la empresa Sun Microsystems. El padre-fundador de la tecnología es James Gosling, a través de una filial dentro de Sun llamada First Person Inc.
Gosiling tuvo la visión inicial de construir un lenguaje de programación capaz de ejecutar su código sobre cualquier set de instrucciones, de distintos procesadores.Inicialmente el proyecto apunto a la programación unificada de distintos electrodomésticos, es decir programar una sola vez y que el programa generado fuera útil para cualquier dispositivo.
El proyecto inicial de JAVA fue técnicamente un éxito, aunque comercialmente no tuvo el rendimiento esperado, y debió ser relegado unos años.

Aparición de Internet

En el año 1993, Internet da el gran salto, y se convierte de una interfaz textual a una interfaz grafica.
JAVA ve una oportunidad y entra fuertemente a internet con los Applets, pequeños programitas construidos en JAVA – con todos sus beneficios – capaces de ejecutarse dentro de un navegador. Es aquí donde JAVA comienza a dar sus primeros pasos firmes como lenguaje a difundir masivamente. En el año 1995, el navegador Netscape Navigator comienza formalmente a soportar a los Applets JAVA.
Adicionalmente, el lenguaje podía adaptarse fácilmente a las múltiples plataformas, con lo cual surge una de las primeras aplicaciones multiplataforma mas conocida: WebRunner (hoy HotJava), un navegador multiplataforma construido en JAVA.

¿Porque el nombre JAVA?

Inicialmente la intención fue nombrar al lenguaje de programación con el nombre de Oak, pero este ya estaba registrado. La leyenda cuenta que una visita a la cafetería le dio rápida solución al problema.
En las confitería norteamericana hay un café denominado Java, en el cual esta inspirado el nombre del lenguaje de programación. El logotipo de JAVA es justamente una taza de café.

Organización en JAVA (Áreas)


La tecnología esta organizada en 3 grandes áreas bien definidas:

            -JME (Mobile / Wireless)
                       
Esta área tiene como objetivo el desarrollo de aplicaciones móviles, tales como GPS, Handhelds (por ejemplo la conocida Palm), celulares y otros dispositivos móviles programables. JME significa Java Micro Edition.

            -JSE (Core / Desktop)

Esta área tiene como objetivo el desarrollo de aplicaciones de escritorio, similares a las aplicaciones tipo ventanas creadas con Visual Basic o Delphi. Incluye la funcionalidad básica del lenguaje como manejo de clases, colecciones, entrada/salida, acceso a base de datos, manejo de socket, hilos de ejecución, etc. JSE significa Java Standard Edition.

            -JEE (Enterprise / Server)

Esta área tiene como objetivo el desarrollo de aplicaciones empresariales, de gran envergadura. Contempla ambientes web, como los ambientes manejados por servidores de aplicación. Las tecnologías principales incluidas en esta área son Serverlets, JSP, EJB, entre otras. JEE significa Java Enterprise Edition.

¿Qué es JAVA?


Introducción

JAVA es una tecnología pensada para desarrollo de aplicaciones de gran envergadura, altamente escalables, de gran integración con otras tecnologías y sumamente robustas.

Sus principales características son presentadas a continuación:

-Lenguaje orientado a objetos:

Respeta el paradigma de orientación a objetos, permitiendo utilizar los fundamentos del mismo:
·         Herencia
·         Polimorfismo
·         Abstracción
·         Encapsulamiento

-Sintaxis basada en C/C++

Aporta gran simplicidad ya que es una de las formas de escribir código mas reconocidas y difundidas, y permite incorporar rápidamente a los programadores que conocen este lenguaje.

-Multiplataforma

Significa que su código es portable, es decir se puede transportar por distintas plataformas. De esta manera es posible codificar una única vez una aplicación y, luego ejecutarla sobre cualquier plataforma y/o sistema operativo.

-Manejo automático de memoria

No hay que preocuparse por liberar memoria manualmente ya que un proceso propio de la tecnología se encarga de monitorear, y por consiguiente eliminar el espacio ocupado que no esta siendo utilizado. El proceso encargado de realizar este trabajo se denomina Garbage Collector.

-Evolución permanente

La tecnología esta en constante evolución debido a la gran cantidad de “consumidores” que poseen, JAVA es uno de los lenguajes mas utilizados en el mundo, y ORACLE (antes SUN) pretende estar a la altura de la situación ofreciendo constantemente nuevas entregas.