Cheat Sheet JAVA 🥷
Tabla de Contenido
Cositas usadas en Java
Estructuras de Control
Bucles
Estructuras de control de errores
Permiten manejar correctamente los errores, permitiendo una ejecución del programa más segura y predecible.
- try: Un bloque que intenta ejecutar código que podría lanzar una excepción.
- catch: Un bloque que maneja la excepción. Puedes capturar uno o varios tipos de excepciones en el mismo bloque
catch
utilizando el símbolo de barra vertical (|
) para separar los tipos de excepciones en Java 7 y versiones posteriores. - throw: Utilizado para lanzar una excepción. Puedes lanzar cualquier objeto que sea una instancia de la clase
Throwable
(o una de sus subclases).
Literales
Tipo | Ejemplos y Notas |
---|---|
int | 1, -1, 0x0f28 (hex), ‘\u003f’ (Unicode hex), 027 (octal), 2_147_483_647 (Integer.MAX_VALUE), -2_147_483_648 (Integer.MIN_VALUE). Cuidado con el 0 inicial para octales. |
byte /short | No existen literales específicos. Se deben usar con casteo, por ejemplo, (byte)0xff , (short)-99 . |
long | 3L, -99l, 0xf011223344L, 9_223_372_036_854_775_807L (Long.MAX_VALUE), -9_223_372_036_854_775_808L (Long.MIN_VALUE). Cuidado con los literales sin una ‘L’ al final. |
float | 1.0345F, 1.04E-12f, .0345f, Float.NaN. Sin el f o F al final se consideran double . |
double | 5.6E-120D, 123.4d, 0.1, Double.NaN, Math.PI. Los literales flotantes sin f, F, d, o D son considerados double . |
boolean | true y false . |
String | ”abcdefghijklmnopqrst” + “uvwxyz”; La concatenación con + se realiza en tiempo de compilación sin penalización de velocidad. Los literales String pueden usarse en cualquier lugar donde se usaría una referencia a String. |
char | ’A’, (char)45, ‘\u003f’. Para caracteres problemáticos, ver secuencias de escape abajo. |
Secuencias de Escape | Incluyen: ‘\n’ (nueva línea), ‘\t’ (tabulación), ’\\’ (barra invertida), ’\” (comilla simple), ’\”’ (comilla doble), ‘\u003f’ (Unicode hex), ‘\377’ (octal). |
Notas adicionales:
- Los literales
int
con un 0 inicial se interpretan como octales, lo cual puede introducir errores confusos. - Para
byte
yshort
no existen literales específicos; se requiere casteo. - En
float
ydouble
, el punto decimal es opcional al inicio (p.ej., .1d), pero algunos compiladores pueden requerirlo. - Java no soporta literales de String de 32 bits como en C (e.g., \U0001d504). Para caracteres Unicode de más de 16 bits se deben usar pares sustitutos.
Primitivos vs Clases envoltorio inmutables
En la tabla siguiente se destaca cómo cada tipo primitivo tiene una clase envoltorio asociada en Java, la cual permite a los tipos primitivos ser tratados como objetos, ofreciendo métodos útiles para operaciones comunes y la posibilidad de ser utilizados en colecciones genéricas, donde se requieren objetos en lugar de tipos primitivos.
Tipos Primitivos | Objetos Inmutables (Wrapper Classes) |
---|---|
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
char[] | String |
Notas clave sobre primitivos y sus objetos envoltorio:
-
Tipos Primitivos: Son la base de los datos en Java y se almacenan de manera eficiente en la memoria. No tienen métodos asociados ya que no son objetos.
-
Objetos Inmutables (Wrapper Classes): Permiten a los tipos primitivos ser tratados como objetos. Esto es especialmente útil en colecciones, tales como
ArrayList
, donde los tipos deben ser objetos. Además, proporcionan métodos útiles para convertir entre tipos, comparar, y más. -
Inmutabilidad: Las clases envoltorio son inmutables, lo que significa que una vez que se crea una instancia de uno de estos objetos, su valor no puede cambiar. Si necesitas modificar el valor, debes crear una nueva instancia.
-
Uso de
char[]
yString
: Mientras quechar[]
es un arreglo de caracteres primitivos y no tiene una clase envoltorio directa,String
representa una secuencia de caracteres y es inmutable. Aunque no es un envoltorio en el sentido tradicional,String
facilita trabajar con secuencias de caracteres como objetos.
Operadores
Precedencia | Operadores | Asociación | Notas |
---|---|---|---|
0 | new | Derecha | new no se considera oficialmente un operador según la Especificación del Lenguaje Java (JLS). Se utiliza exclusivamente seguido por un nombre de clase. |
1 | ++ (prefijo), -- (prefijo), + (unario), - (unario), ~ , ! , (tipo) | Derecha | Operadores unarios y de incremento/decremento. El ++ prefijo y -- prefijo cambian el valor antes de usarlo en la expresión. ! es el NOT lógico. (tipo) se utiliza para el casting. |
1 | ++ (postfijo), -- (postfijo) | Derecha | El ++ postfijo y -- postfijo cambian el valor justo después de su uso en la expresión. |
2 | * , / , % | Izquierda | Multiplicación, división y módulo. |
3 | + , - | Izquierda | Suma, resta y concatenación de cadenas. |
4 | << , >> , >>> | Izquierda | Desplazamientos bit a bit. |
5 | < , <= , > , >= , instanceof | Izquierda | Comparaciones y comprobación de tipo. |
6 | == , != | Izquierda | Igualdad y desigualdad. |
7 | & | Izquierda | AND a nivel de bits. |
8 | ^ | Izquierda | XOR a nivel de bits. |
9 | | | Izquierda | OR a nivel de bits. |
10 | && | Izquierda | AND lógico cortocircuitado. |
11 | || | Izquierda | OR lógico cortocircuitado. |
12 | ? : | Derecha | Operador ternario (condicional). |
13 | = , *= , /= , += , -= , <<= , >>= , >>>= , &= , ^= , |= | Derecha | Asignación y asignación compuesta. |
Referencia:
- R. G. 361-9093 O. C. M. Products. F. E. S. C. Page, “Java Cheat Sheet : Java Glossary”, Java Cheat Sh. https://www.mindprod.com/jgloss/jcheat.html