Sintaxis fundamental de Java

Comentarios en Java

//Comentario de línea única

/Comentario de múltiples líneas múltiples líneas múltiples líneas/

Identificadores

Todos los componentes en Java requieren un nombre. Los nombres de clases, variables y métodos se conocen como identificadores.

  • Todos los identificadores deben comenzar con una letra, $ o guion bajo (_)
  • Después del primer carácter, puede ser cualquier combinación de letras, $, guion bajo (_) o números
  • No usar palabras clave como nombres de variables o métodos
  • Distinguir entre mayúsculas y minúsculas
  • Se puede pero no se recomienda usar caracteres chinos o nombres en pinyin

Tipos de datos

Tipos primitivos
public class EjemploPrimitivos {
    public static void main(String[] args) {
        // Ocho tipos de datos primitivos
        // Enteros
        int valorEntero = 12; // Común
        byte valorByte = 22;
        short valorCorto = 32;
        long valorLargo = 42L; // El tipo Long requiere L después del número

        // Decimales: números de punto flotante
        float valorFloat = 52.3F; // El tipo Float requiere F después del número
        double valorDouble = 3.141592653589793;

        // Carácter
        char caracter = 'A';
        // Cadena de caracteres, String no es palabra clave, es una clase
        // String cadena = "Hola";

        // Booleano: sí o no
        boolean logico = true;
    }
}

Tipos de referencia
Bytes
  • Bit (b): unidad más pequeña de almacenamiento de datos
  • Byte (B): unidad básica de procesamiento de datos
  • Carácter: letras, números y símbolos usados en computación
  • 1 B = 8 b 1024 B = 1 KB 1024 KB = 1 MB 1024 MB = 1 GB

Extensiones

Extensiones de enteros
Sistemas numéricos

Binario: compuesto por 0 y 1

Octal: compuesto por 0~7, comienza con 0

Decimal: compuesto por 0~9

Hexadecimal: compuesto por 09 y AF (10~15), comienza con 0x

Conversión de decimal a sistema x

Parte entera: dividir la parte entera decimal por x hasta que el cociente sea 0, luego leer los residuos en orden inverso para obtener la parte entera en sistema x

Parte decimal: multiplicar la parte decimal por x, tomar la parte entera del resultado y multiplicar por x repetidamente hasta que la parte decimal sea 0, obteniendo así la parte decimal en sistema x

Para hexadecimal, se requiere conversión

Conversión de sistema x a decimal

Expandir el número en sistema x según la posición y sumar para obtener el decimal

Convresión de binario a octal

Desde la derecha, agrupar dígitos binarios de 3 en 3 (rellenar con 0 al inicio si es necesario), expandir según posición y sumar para obtener un dígito octal

Conversión de binario a hexadecimal

Desde la derecha, agrupar dígitos binarios de 4 en 4 (rellenar con 0 al inicio si es necesario), expandir según posición y sumar para obtener un dígito hexadecimal (prestar atención a la conversión para dos dígitos)

Conversión de octal o hexadecimal a binario

Usar el método de división por 2 y lectura inversa de residuos, rellenar con 0 al inicio para completar 3 dígitos en octal o 4 dígitos en hexadecimal

Extensiones de punto flotante
        // float: limitado, discreto, errores de redondeo, aproximado
        // double
        // Mejor evitar comparar números de punto flotante
        // Para operaciones bancarias usar BigDecimal de la clase de herramientas matemáticas
        float f1 = 0.1f;
        double d1 = 1.0 / 10;
        System.out.println(f1 == d1); // false

        float f2 = 123456789f;
        float f3 = f2 + 1;
        System.out.println(f2 == f3); // true

Extensiones de caracteres
        char c1 = 'A';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int) c1); // Conversión forzada
        System.out.println(c2);
        System.out.println((int) c2); // Conversión forzada

        // Todos los caracteres son esencialmente números
        // Codificación tabla Unicode: (65=A, 97=a)
        // U0000 a UFFFF

Caracteres de escape

Conversiones de tipos

Java es un lenguaje de tipado fuerte, y se requieren conversiones de tipo en algunas operaciones.

Prioridad de tipos de datos:

public class ConversionForzada {
    public static void main(String[] args) {
        int enteroGrande = 130;
        byte enteroPequeño = (byte) enteroGrande; // Desbordamiento de memoria
        System.out.println(enteroGrande);
        System.out.println(enteroPequeño);

        // Conversión forzada (tipo)variable: de alto a bajo
        // Conversión automática: de bajo a alto
        /*
        Puntos a notar:
        1. No se puede convertir booleanos
        2. No se puede convertir a tipos no relacionados
        3. Al convertir de alta capacidad a baja, se usa conversión forzada
        4. Puede haber desbordamiento de memoria o pérdida de precisión
         */
        // Problema de precisión
        System.out.println((int) 23.8); // 23
        System.out.println((int) -47.9f); // -47

        char letra = 'a';
        int codigo = letra + 1;
        System.out.println(codigo); // 98
        System.out.println((char) codigo); // b
    }
}

public class DesbordamientoNumeros {
    public static void main(String[] args) {
        // Cuidado con el desbordamiento al operar con números grandes
        // Característica JDK7: se pueden usar guiones bajos para separar dígitos
        int cantidad = 10_0000_0000;
        int años = 20;
        int total1 = cantidad * años;
        long total2 = cantidad * años;
        long total3 = cantidad * ((long) años);
        System.out.println(total1); // -1474836480
        System.out.println(total2); // -1474836480: por defecto es int, ya hubo error antes de conversión
        System.out.println(total3); // 20000000000: convertir primero a Long
    }
}

Etiquetas: java sintaxis tipos de datos Conversiones de tipos

Publicado el 7-7 03:12