Capitulo 2 - Certificacion Java
Camilo Nova
CEOUn programa de computador básicamente se compone de datos, operaciones con los datos y lógica que determina las operaciones.
El nombre de una variable suele ser llamado "identificador"
Palabras clave en java:
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, trasient, true, try, void, volatile, while.
**Estas no las conozco: assert, const, goto, native, strictfp, trasient, volatile. Alguien me puede ayudar??
**El texto dice que const y goto no tienen significado y no pueden ser usadas, alguien puede aclarar eso?? rta: La palabra reservada goto, sirve para hacer código espaguetti; y no puede ser utilizada en java por que quiebra los principios de encapsulamiento; y la palabra reservada const dejó de ser utilizada por el uso de static como modificador.
Datos de datos primitivos y tamanno en bits (2 a la tamanno menos 1):
boolean - 1
byte - 8
short, char - 16
int, float - 32
long, double - 64
La sintaxis para declarar variables es: <modificador> <tipoDato> <identificador> = <valorInicial>;
Si una variable es declarada dentro de una clase pero por fuera de un método, es decir una variable que resida en "heap" se le asigna un valor por defecto, en caso contrario no, se le debe asignar un valor antes de acceder a la variable.
Las variables pueden ser clasificadas en:
locales, declaradas dentro de un método, viven en "stack".
de instancia, declaradas dentro de la clase pero fuera de un método, viven en "heap".
estáticas, declaradas dentro de la clase pero fuera de un método y es compartida por todos los objetos de la clase, vive en "heap".
El valor de una variable estática se mantiene a pesar que el objeto de la clase que la declara sea nuevamente asignado, su valor no se pierde y se mantiene a lo largo de la ejecución del programa. Las de instancia mantienen su valor a lo largo de la vida del objeto que la declara.
Literales:
boolean true, false
char 'a', '\u4123' (\u para denotar un numero hexadecimal)
int 43, 053 (octal precedido por 0), 0x2B (hexa precedido por 0X o 0x)
long 23L (sufijo L)
float 12.33, 1.25E+8 (E para denotar 'x10 a la'), 12.33f (sufijo f para denotar float), 132d (sufijo d para denotar double)
El no declarar el valor de una variable genera un error de compilación(null pointer exception).
Todos los datos no primitivos en java son objetos, los primitivos son int, float, etc.
Una variable es instanciada al utilizar la palabra clave 'new', es decir se genera su valor en memoria y la variable almacena una referencia de su ubicación.
Los arreglos pueden ser tanto de tipos primitivos como no primitivos.
El arreglo como tal es un objeto, no un conjunto de tipos primitivos.
La forma de declarar un arreglo puede ser como "int[] array" o "int array[]" de las dos formas es valida la declaración.
El tamanno del array se determina al momento de la instanciacion asi "array = new int[4]". No es posible declarar el tamanno en la declaración.
Luego de haber determinado el tamanno del array no es posible cambiarlo después.
El tipo de dato 'enum' es importante cuando se desea tener un conjunto de datos predeterminados, constantes, como los días de la semana o estados de algún objeto.
Ej. enum Tarjetas {VISA, MASTER_CARD, AMERICAN_EXPRESS};
Tarjetas tarj = Tarjetas.VISA;
Operadores:
+ Suma dos operandos
++ Aumenta en uno el operando
- Resta dos operandos
-- Disminuye en uno el operando
* Multiplica los dos operandos
/ Divide los dos operandos
% Calcula el modulo (residuo) de dos operandos
La siguiente expresión es valida: int w = -e, siendo e un entero que es multiplicado por -1 al momento de asignar el valor, pero no cambia el valor de e como los operandos -- y ++.
Operadores unitarios de incremento y decremento, si el operador se encuentra ANTES (--i) de la variable su valor se ve afectado ANTES de evaluar la expresión, si se encuentra DESPUES (i++) el valor de la variable se afecta DESPUES de evaluar la expresión.
EJ. x=7
y=++x y=>8 x=>8
y=x++ y=>7 x=>8
y=--x y=>6 x=>6
y=x-- y=>7 x=>6
Una división por cero en un valor asignado a una variable, por ejemplo, int r = a/b, si el valor de b es cero antes de evaluar la expresión se genera un "ArithmeticException" en tiempo de ejecución solo si los operandos son ENTEROS, en caso de "float" o "double" el resultado es infinito (Double.NaN)
Operadores Lógicos
Operador Uso Operación
& op1&op2 AND (uno y otro)
| op1|op2 OR (uno u otro)
^ op1^op2 XOR (mismos falso, diferentes verdadero)
! !op Inversor, pasa de true a false y viceversa
~ ~100010110 Inversión de bits, cambia de 1 a 0 y viceversa
Operadores de evaluación
&& Evalúa si ambas expresiones A&&B son verdaderas para producir un resultado verdadero
|| Evalúa si una de las expresiones es verdadera para producir un resultado verdadero
Operadores de asignación
+= op1 = op1 + op2
igual para los demás: -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
Al evaluar una expresión con tipos de datos primitivos, para hacer los cálculos el compilador convierte el operando de menor tamanno en bits al mismo del operando de mayor tamanno. Es decir, si estoy operando un int con un float el int es convertido a float para realizar la operación.
La comparación de igualdad entre dos datos primitivos se hace con el operador ==, para dos objetos se hace con el método a.equals(Object b).
En una expresión de tipo && si el primer operando es 'false' el segundo NO es evaluado. En una expresión || si el primer operando es 'true' el segundo NO es evaluado.
Solamente los tipos de datos char y boolean son de tipo unsigned.
No es posible instanciar un tipo 'enum' con el operador 'new'
Written by Camilo Nova
As the Axiacore CEO, Camilo writes about the intersection of technology, design, and business. With a strategic mindset and a deep understanding of the industry, he is dedicated to helping companies grow.