Fundamentos de Java (01): los tipos de datos básicos, el punto central de acabado

Este artículo Fuente: GitHub · Haga clic aquí || GitEE · Haga clic aquí

En primer lugar, el tipo básico

1, tipo básico

No utilice en Nuevo para crear, declarar una variable de referencia falta de entrega, y el valor de la variable directamente en la pantalla, el tamaño no varía con los cambios en el entorno operativo más eficiente. El uso de nuevos objetos de referencia creado almacenados en el montón.

2, la información básica

Incluir los siguientes tipos básicos: byte, short, int, long, float, double, boolean, char, el rango de tamaño pueden ser vistos por los métodos relacionados.

public class IntType01 {
    public static void main(String[] args) {
        System.out.println("进制位数:"+Integer.SIZE);
        System.out.println("最小值:"+Integer.MIN_VALUE);
        System.out.println("最大值:"+Integer.MAX_VALUE);
        System.out.println("进制位数:"+Double.SIZE);
        System.out.println("最小值:"+Double.MIN_VALUE);
        System.out.println("最大值:"+Double.MAX_VALUE);
    }
}

En segundo lugar, el caso de uso

1, la conversión de tipos

自动转换: Una pequeña gama de tipos de datos se puede convertir automáticamente en una amplia gama de tipos de datos.

强制转换: Convertir el tipo de datos a otro tipo de datos.

类型提升: Los datos de expresión de cálculo de diferentes tipos, el tipo se levantan automáticamente una amplia gama.

public class IntType02 {
    public static void main(String[] args) {
        // 自动转换
        int i = 112 ;
        long j = i ;
        System.out.println(j);
        // 强制转换
        double d = 13.14 ;
        int f = (int)d;
        System.out.println(f);
        // 类型提升
        long r = i * j ;
        System.out.println(r);
    }
}

Nota: El tipo de conversión necesaria mayor preocupación es el alcance de la magnitud del problema.

2, tipo de paquete

tipo de datos primaria no coincide con el pensamiento orientado a objetos, que apareció tipo de envoltura, la envoltura y añadir propiedades y métodos adicionales, las funciones automáticas de empaquetado se puede convertir en el tipo de base de tipo paquete. Tipos primitivos de Java para cada uno proporciona un tipo de paquete, Integer, Double, Long, Boolean, Byte y similares.

public class IntType03 {
    public static void main(String[] args) {
        Integer int1 = null ;
        Double dou1 = 13.14 ;
        Long lon1 = 123L ;
    }
}

El valor por defecto es Variable integral nulos instrucciones enteras pueden distinguir la diferencia entre un valor de 0 y no asignado, como examen de 0 puntos y la diferencia no tomó el examen.

3, tipo de carácter

tipo char variable se utiliza para almacenar codificación de caracteres Unicode, juego de caracteres Unicode contiene caracteres.

public class IntType04 {
    public static void main(String[] args) {
        char cha1 = '知';
        System.out.println(cha1);
    }
}

注意: Palabras poco comunes especiales que no pueden contener concentrada en caracteres Unicode de codificación.

4, misiones y operaciones

+= 和 =Distinción: short s1=1;s1=s1+1与short s1=1;s1+=1;el tema.

public class IntType05 {
    public static void main(String[] args) {
        short s1 = 1 ;
        // s1 = s1 + 1 ; // 变异错误:s1自动向int类型转换
        s1 += 1 ;
        System.out.println(s1);
    }
}

+=Operador está predeterminada lenguaje Java, el compilador será reconocido ese proceso, es posible compilar correctamente.

5, boolean

Dos valores lógicos: truey false, por lo general utilizan para representar la relación entre los resultados de las operaciones.

public class IntType06 {
    public static void main(String[] args) {
        // 存在精度损失问题:0.30000000000000004
        System.out.println(3*0.1);
        // true
        System.out.println(0.3 == 0.3);
        // false
        System.out.println(3*0.1 == 0.3);
    }
}

Tres, flotado y Dubble

1, el concepto básico

Estos dos tipos pueden en la mayoría de los casos citados no entienden la relación y las diferencias, hay que entender primero algunos conceptos básicos.

浮点数: En una computadora para aproximar el número real arbitrario a. Específicamente, el número real de un punto fijo o número entero multiplicado por una base (normalmente 2 en ordenadores) elevada a la potencia de un número entero para dar

单精度浮点数: Precisión simple número real de coma flotante se utiliza con una parte fraccionaria, se utiliza generalmente para la computación científica. Se ocupa 4 bytes (32 bits) de espacio de memoria

双精度浮点数: Coma flotante de doble precisión (doble) es un tipo de datos de la computadora, de 64 bits (8 bytes) para almacenar un número de punto flotante.

2, el análisis comparativo

  • Flotar descripción básica
位数:32
最小值:1.4E-45
最大值:3.4028235E38
  • Descripción básica Doble
位数:64
最小值:4.9E-324
最大值:1.7976931348623157E308
  • Descripción del caso

flotador y declaraciones de doble conversión y presentación de caso relacionado.

public class IntType07 {
    public static void main(String[] args) {
        // float 声明
        float f1 = 12.3f ;
        // double 声明
        double d1 = 13.4 ;
        // 向下转型,需要强制转换
        float f2 = (float) d1 ;
        System.out.println("f1="+f1+";d1="+d1+";f2="+f2);
    }
}

En cuarto lugar, el tipo de alta precisión

1, BigInteger

Apoyos aritmética de enteros de cualquier tamaño, y no tendrá ninguna pérdida de proceso de cálculo, no correspondiente tipos básicos, los operadores se convertirán en la velocidad de operación relativamente compleja se reducirá de forma natural.

2, BigDecimal

Apoyando a los números de punto fijo de precisión arbitraria, por lo general utilizados para la moneda precisa, en el desarrollo diario de la compañía, por lo general hay un requisito duro.

public class IntType08 {
    public static void main(String[] args) {
        BigDecimal dec1 = new BigDecimal(3.0) ;
        BigDecimal dec2 = new BigDecimal(2.11) ;
        // 精确加法运算
        BigDecimal res1 = dec1.add(dec2) ;
        System.out.println(res1);
        // 精确减法运算,并截取结果
        // HALF_UP:四舍五入
        BigDecimal res2 = dec1.subtract(dec2);
        System.out.println(res2.setScale(1, RoundingMode.HALF_UP));
        // 精确乘法运算
        BigDecimal res3 = dec1.multiply(dec2) ;
        System.out.println(res3.doubleValue());
        // 精确除法运算,并截取结果
        // ROUND_DOWN:直接按保留位数截取
        BigDecimal res4 = dec1.divide(dec2,2,BigDecimal.ROUND_DOWN);
        System.out.println(res4);
    }
}

En quinto lugar, la dirección del código fuente

GitHub·地址
https://github.com/cicadasmile/java-base-parent
GitEE·地址
https://gitee.com/cicadasmile/java-base-parent

Supongo que te gusta

Origin www.cnblogs.com/cicada-smile/p/12445215.html
Recomendado
Clasificación