
JAVA
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.1 2
El lenguaje de programación Java fue originalmente
desarrollado por James Gosling de Sun Microsystems (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. Las aplicaciones
de Java son generalmente compiladas a bytecode (clase Java) que puede
ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura
de la computadora subyacente.
La compañía Sun desarrolló la implementación de
referencia original para los compiladores de Java, máquinas virtuales, y
librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de
mayo de 2007, en cumplimiento con las especificaciones ɖel Proceso de la
Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java
bajo la Licencia Pública General de GNU. Otros también han desarrollado
implementaciones alternas a estas tecnologías de Sun, tales como el Compilador
de Java de GNU y el GNU Classpath.
Programación
Expresiones
Las expresiones son un conjunto de elementos o tokens
junto con literales que son evaluados para devolver un resultado. Los tokens
son elemento más pequeño de un programa que es significativo, e interpretado o
entendido por el compilador, en java los tokens se dividen en cinco categorías
que son:
Identificadores: Son las representaciones que se les da a
los nombres que se asignan a las variables, clases, paquetes, métodos y
constantes en el código de java para que el compilador los identifique y el
programador pueda entenderlos. En java los identificadores pueden diferenciar
entre mayúsculas o minúsculas por ser case sensitive, por lo que la variable
cuyo nombre sea “Mivariable”, no es igual a “mivariable”, ya que java
identifica estas como variables diferentes por el case sensitive, también se
puede utilizar números, o el signo “_” para asignar un identificador.
Palabras claves: Son los identificadores reservados por
java para cumplir con un objetivo específico en el código y el compilador, se
usan de forma limitada y en casos específicos. Las palabras claves que usa java
son las siguientes:
abstract boolean break byte case
catch char class continue default
do double else extends false
final finally float for if
implements import instanceof int interface
long native new null package
private protected public return short
static super switch syncronized this
throw throws transient true try
void volatile while var rest
byvalue cast const future generic
goto inner operator outer
Las palabras que se encuentran en negrilla, son palabras
claves para java aunque actualmente no se utilicen en la versión de java, pero
se pretenden integrar en las siguientes versiones de java.
Literales y constantes:
Los literales son sintaxis para
asignar valores a una variable, es decir el valor que puede tomar una variable,
también es un valor constante que puede ser de tipo numérico. Las constantes
son variables que tienen un valor fijo y no puede ser modificado en el
trascurso de la ejecución del código, estas se declaran por medio de los
modificadores final y static.
final static double pi= 3.1416;
Operadores: Son los que nos indican una evaluación que se
aplica a un objeto o un dato, sobre un identificador o constante. Un ejemplo de
operadores puede ser la suma, resta o multiplicación.
Separadores:
Se utilizan para indicarle al compilador de
java donde se ubican los elementos del código, los separadores que admite java
son: { },:;
También el compilador de java identifica y elimina los
comentarios, retornos de carros espacios vacíos y de tabulación a la hora de
compilar por lo que no son considerados parte de un token.
Las expresiones pueden ser una combinación en secuencia
de variables, operadores y métodos. Las expresiones son utilizadas para
realizar cálculos, para asignar valores a variables, o para controlar la
ejecución del flujo del programa.
Operadores
Los operadores son aquellos que tras realizar una
operación devuelven un resultado, estos se puede caracterizar por el número de
operadores, el tipo de operandos, y el resultado que generan.
Número de operandos. Pueden ser de dos tipos unarios, y
binarios. Los unarios son aquellos que solo necesitan de un operando para
devolver un valor, mientras que los binarios necesitan de dos o más operandos.
Operadores unarios.
Operador Descripción
- Cambio
de signo
! Operador NOT
~ Complemento
a 1
Operadores binarios.
Operadores Descripción
+ - * / % Operadores
aritméticos
== != < > <= >= Operadores relacionales
&& || ^ Operadores
booleanos
^ << >> >>> Operadores a nivel de bit
+ Concatenación
de cadenas
Operadores a nivel de bit[editar]
Los operadores a nivel de bit nos permiten realizar
operaciones sobre números binarios.
~ Complemento a 1, este operador invierte los dígitos,
cambiando los 0 por 1 y los 1 por 0, un ejemplo puede ser:
11001011
~ 11001011 resultado 00110100
Como se puede ver se cambian los valores de 0 a 1 y de 1
a 0.
& AND a nivel de bit, este operador realiza una
operación AND o suma entre dos números de bit, en donde si dos bit son igual a
1 el resultado será 1, de lo contrario será 0, un ejemplo puede ser:
situacion
01001101
& 10011011
______________
00001001
| Or a nivel de bit, este operador realiza una operación
OR en donde si alguno de los dos números es 1 el resultado será 1, un ejemplo
puede ser:
11001101
| 01011101
______________
11011101
^ XOR a nivel de bit, este operador realiza la operación
XOR en donde si los dos números son iguales el resultado será 0 de lo contrario
será 1, un ejemplo puede ser:
00101001
^ 01101101
______________
01000100
<< Desplazamiento a la izquierda, este operador
desplaza n cantidad de espacios a la izquierda un bit, un ejemplo puede ser;
01101110
01101110 << 1 = 11011100
Como se puede ver al realizar el desplazamiento se
realiza una inserción de un dígito 0 a la derecha
Precedencia de operadores[editar]
Los operadores son una parte principal en las
expresiones, el tipo y forma de uso es fundamental a la hora de programas, pero
para su uso se tiene que tener en cuenta una serie de normas, como lo son la
precedencia de los operadores.
Los operadores son ejecutados según su precedencia, si
cuentan con una precedencia mayor serán evaluados primero que los de
precedencia menor, si por casualidad se llegase a presentar operadores con el
mismo nivel de precedencia, estos se evaluaran de derecha a izquierda, si son
operadores binarios (menos los operadores de asignación) se evaluaran de
izquierda a derecha. A Java se le puede indicar qué operadores debe evaluar
primero sin importar su precedencia por medio de paréntesis ( ), de esta forma
el compilador de java interpreta que primero ejecutara las operaciones que se
encuentran dentro de los paréntesis, y luego continuara con los demás
operadores. La siguiente tabla indicara en nivel de precedencia de los
operadores utilizados en java, teniendo en cuenta que el nivel de precedencia
está indicado de arriba a abajo, siendo arriba el nivel más alto.
Precedencia de los operadores en Java.
Tipo de operadores Operadores
Operadores posfijos [
] . ( parámetros) expr++ expr--
Operadores unarios ++expr
–expr +expr -expr ~ !
Creación o conversión New
(tipo) expr
Multiplicación *
/ %
Suma + -
Desplazamiento <<
>> >>>
Comparación <
> <= >= instanceof
Igualdad ==
!=
AND a nivel bit &
OR a nivel bit |
XOR a nivel bit ^
AND lógico &&
OR lógico ||
Condicional ? :
Asignación = +=
-= *= /= %= &= ^= |= <<= >>= >>>=
Un ejemplo de la precedencia de los operadores en java
podría ser el siguiente, en donde tenemos un código que se encargará de
realizar una serie de operaciones aritméticas.
int numero1 = 3;
int numero2 = 4;
int resultado;
resultado = numero1 + numero2 * 3;
System.out.println (resultado); //esto imprime el valor
de 15
según la precedencia de los operadores la multiplicación
* tiene mayor prioridad que la suma +, por lo que primero se ejecuta la
multiplicación y luego se realiza la suma.
int numero1 = 3;
int numero2 = 4;
int resultado;
resultado = (numero1 + numero2) * 3;
System.out.println (resultado); //esto imprime el valor
de 21
En este caso el resultado cambia ya que primero se
evalúan los parámetros que están dentro del paréntesis y luego se evalúa el
resto de parámetros. Una de las recomendaciones que da Java para el desarrollo
es el uso de los paréntesis en las operaciones con más de 3 operandos, así de
esta forma el código se hace más legible y se evitan errores al momento de
compilar.
Sentencias
Las sentencias son una representación de una secuencia de
acciones que se realizan en java, la clave fundamental de las sentencias es su
punto final que indica que ha finalizado la sentencia y puede continuar con la
siguiente, el indicador utilizado es el signo de punto y coma (;). Contamos en
java con sentencias que pueden ir desde sentencias de asignación, de bucles,
condicionales, y de salto. Las sentencias se conforman comúnmente por una
instancia, y un operador, un ejemplo es la sentencia de asignación que se
conforma por una instancia de una variable, el signo de asignación y una
expresión, un ejemplo es:
int variable = 12+2;
Las sentencias de asignación son aquellas en las que se
asigna un valor a una variable o constante. Las sentencias condicionales son
las que expresan una condición para definir el flujo de ejecución del programa,
entre ellas tenemos if-else y switch. Las sentencias de bucles se encargar de
realizar una acción cierta cantidad de tiempo dado, o hasta que se cumpla con
una condición, entre ellas tenemos el while, do-while, y for. Las sentencias de
salto llevan al compilador a un punto específico del programa o hacia la siguiente
sentencia de ejecución, entre ellas tenemos break, continue, y return.
Conversión de tipos
En algunos casos suele ser necesario convertir un tipo de
dato a otro, esto se le conoce como conversión de tipos, modelado, o tipado,
así de esta forma poder realizar las operaciones necesarias sobre el valor que
se desea convertir. Se debe tener en cuenta el tipo de dato que se va a
convertir, ya que si se convierte un dato que tenga una cantidad menor de bit
al anterior este tendrá perdida de información, un ejemplo de tipado puede ser
un número long que se desea convertir a int, el compilador eliminara los
primeros 32bit del long para ajustarlo al int ya que el int es de 32bit y el
long de 64. Si la conversión se realiza a un tipo de datos de menos bit a un
tipo de datos con mayor bit, la conversión se realiza automáticamente llamada
conversión implícita, pero si se realiza de un tipo de datos con mayor bit a
menor bit se tiene que realizar una conversión explícita, la cual se realiza
con un casting, al usar este método se obliga a realizar la conversión por lo
cual puede haber perdida de datos en la conversión. Para realizar una
conversión explícita se tiene que poner el tipo de dato que se desea realizar
la conversión entre paréntesis, luego el valor o la variable que se desea
convertir. Un ejemplo de conversión de tipo explícito puede ser:
Int numero1 = 32;
byte numero2;
numero2 = (byte) numero1;
Un ejemplo de una conversión de tipo implícita puede ser:
int numero1 = 32;
long numero2;
numero2 = numero1;
Las siguiente tabla muestra la los tipos de datos que se
pueden realizar una conversión implícita desde el dato origen, hasta el dato
destino que es el dato en el que se va a convertir.
Tipo origen Tipo destino
byte double, float, long, int, char, short
short double, float, long, int
char double, float, long, int
int double, float, long
long double, float
float double
Los tipos de datos booleanos no pueden ser convertidos a
otro tipo de datos, por ningún método mencionado anteriormente. Otro tipo de
conversión que no se encuentre en esta tabla desde el origen al destino, tiene
que realizarse por medio de una conversión explícita por casting. Cuando se
desea realizar una conversión de un tipo string como origen a otro tipo, es
necesario utilizar una función que se encarga de convertir el tipo de dato, la
función necesaria se compone de la variable que va almacenar el resultado, y
dependiendo de la variable se usa el parámetro que inicia con el tipo de dato a
convertir, Integer, Byte, Short, o Long, seguida de punto “. “, el cual indica
que se cargarán los atributos del parámetro, en donde cargaremos el parseInt si
queremos convertir a interger o parseByte si queremos convertir a byte, o
dependiendo del tipo de dato, seguido de paréntesis en donde se agregara el
valor de string a convertir. Algunos ejemplos puede ser:
int numero1;
long numero2;
byte numero3;
String texto= “2013”;
numero1 = Integer.parseInt ( texto );
numero2 = Long.parseLong ( texto);
numero3 = Byte.parseByte ( texto );
esto suele ser usado para realizar una conversión de
texto cuando se ingresan valores numéricos por una entrada a java, la cual los
detecta como string, así de esta forma puede convertir el texto que se ingresa
a un número para realizar operaciones, como una calculadora.
No hay comentarios.:
Publicar un comentario