[El JavaSE] Tipo de datos

Aquí Insertar imagen Descripción

variable entera

entero Número de Bytes Rango de datos
byte 1 [-128,127]
corto 2 [-32768,32767]
En t 4 [-2 ^ 31, 2 ^ 31-1]
largo 8 [-2 ^ 63, 2 ^ 63-1]

Nota: El número de Bytes empresa independiente del sistema
de byte es la unidad básica del espacio de representación por ordenador de
uso de la computadora representación binaria de los datos creemos que ocho bits (bits) es un byte (byte) ..
1 KB = 1024 bytes, 1 MB = 1024 KB, 1 GB = 1024 MB
de datos representados por 4 bytes cubre -2 ^ 31 -> 2 ^ 31-1, se trata de 21 -21 mil millones y cien millones

public class Solution {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

Aquí Insertar imagen Descripción
Si se excede el rango de alcance máximo int, se producirá desbordamiento

public class Solution {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE + 1);
    }

Aquí Insertar imagen Descripción
Se encontró que la máxima int 1, pero como mínimo, la vista de esta situación, tenemos que utilizar una gama más amplia de tipos de datos para representar la introducción de largo tiempo variable entera

  1. La sintaxis básica y crear variables int son básicamente el mismo, solo cambia el tipo a largo
  2. El valor de ajuste inicial 10L, representa un número entero largo. Mayo 10l
public class Solution {
    public static void main(String[] args) {
        System.out.println(Long.MAX_VALUE );
        System.out.println(Long.MIN_VALUE );
    }
}

Aquí Insertar imagen Descripción
En comparación con int, mayores rangos largos

variable float

tipo de punto flotante Número de Bytes
flotador 4
doble 8

Cumplir con los estándares IEEE

public class Solution {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(a / b);
    }
}

Aquí Insertar imagen Descripción
La razón se debe a que el número entero dividido por un entero o entero, por lo que se debe cambiar a una doble

public class Solution {
    public static void main(String[] args) {
        double a = 1;
        double b = 2;
        System.out.println(a / b);
    }

Aquí Insertar imagen DescripciónMira un ejemplo

public class Solution {
    public static void main(String[] args) {
        double a = 1.1;
        System.out.println(a * a);
    }
}

El resultado es que
Aquí Insertar imagen Descripción
la razón es porque el intento de utilizar el espacio de memoria puede ser limitada representación decimal infinita, no está obligado a ser un cierto grado de error de precisión.
variables de punto flotante de precisión simple flotan un valor inicial

float num = 1.0f; // 写作 1.0F 也可以 

Debido a la gama de precisión de datos pequeño indicado, generalmente utilizados en los proyectos de flotación son
prioridades doble, no se recomienda el uso de flotador.

Char tipo de variable

char ch = 'A';
char a = '啊';

Es un carácter entero de la naturaleza del uso de la computadora caracteres ASCII representados en el lenguaje C, y la representación de Java el uso de Unicode de caracteres. Por lo tanto un carácter ocupa dos bytes, caracteres representados por más especies, incluido el chino.
Nota : el tipo de byte y el tipo de carácter no relacionada

variable booleana

  1. tipo booleano de la variable sólo dos valores, verdaderos para la representación falsa verdadero, falso.
  2. Java no es el int tipo booleano y la conversión, 1 indica la ausencia de cierto, 0 representa el uso de tal falsa.
  3. Tipo de implementos booleanos algunos JVM es de 1 byte, algunos de los cuales se representó un poco, esto no está claramente definido

Tipo de variable de cadena

1. Los tipos anteriores y diferentes, cadena no es un tipo primitivo, pero el tipo de referencia (explicación de enfoque posterior).
2. cadena de cierta representación directa menos conveniente de los personajes necesitará ser escapado

carácter de escape explicación
\norte Wrap
\ t pestaña horizontal
\ ' Las comillas simples
\ " Las comillas dobles
\ \ barra invertida
public class Solution {
    public static void main(String[] args) {
        String str = "result = ";
        int a = 10;
        int b = 20;
        String result = str + a + b;
        System.out.println(result);
    }
}

Aquí Insertar imagen Descripción
Códigos descritos anteriormente, cuando hay un comportamiento cadena de expresión de cadena carácter +, empalme se lleva a cabo.

ámbito de la variable

Es decir, la gama puede ser variable en efecto, es generalmente bloque de definición de la variable (frenos) donde

denominar las variables

  1. Un nombre de variable sólo puede contener números, letras, guiones bajos
  2. Los números no comienzan con
  3. entre mayúsculas y minúsculas

Los nombres de clase recomiendan gran joroba de nomenclatura: FirstTest
variables y nombres de los métodos recomendados pequeña joroba nomenclatura: maxValue

constante

  • Los literales
10 literales int (decimales)
010 literales int (octal). 010 es los números decimales que comienzan con 0 8
0x10 literales int (hexadecimal). 0x10 es números decimales por el 0x comenzando 16
10L literales largos también pueden escribirse como 10L (L minúscula)
1.0 literales dobles también se pueden 1.0d o 1,0 D escritos
1.5e2 duplicar constante literal. notación científica. equivalente a 1,5 * 10 ^ 2
1.0f flotar constantes literales pueden escribirse 1.0f
cierto constante literal boolen, el mismo, así como falsa
'una' charla constante literal, comillas simples sólo un carácter
"a B C" Cuerda constantes literales, comillas dobles pueden tener varios caracteres
  • palabra clave modificación final de las constantes
    Aquí Insertar imagen Descripción
    razón dada es: Las constantes no puede ocurrir en el programa modificado se está ejecutando.

tipo de conversión

int y largo / doble cada asignación

public class Solution {
    public static void main(String[] args) {
        int a = 10;
        long b = 20;
        a = b; // 编译出错, 提示可能会损失精度.
        b = a; // 编译通过.
        int a = 10;
        double b = 1.0;
        a = b; // 编译出错, 提示可能会损失精度.
        b = a; //编译通过.
    }
}

Conclusión: asignación entre diferentes tipos de variable numérica, se representa el rango de tipos más pequeños se pueden convertir implícitamente en una gran gama de tipos, viceversa

int y asignación mutua boolean

int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型 

Conclusión: int y boolean dos tipos de no relacionada, no se puede asignar a cada otro

literales int para la asignación de bytes

byte a = 100; // 编译通过
byte b = 256; // 编译报错, 提示从int转换到byte可能会有损失 

Conclusión: Utilice literales de tiempo asignados, Java comprobará automáticamente para realizar algunas comprobaciones para determinar si se trata de la asignación razonable

Use yesos

int a = 0;
double b = 10.5;
a = (int)b;
int a = 10;
boolean b = false;
b = (boolean)a; // 编译出错, 提示不兼容的类型 

conclusión:

  • Yeso puede causar pérdida de precisión. Al igual que en el ejemplo anterior, después de la asignación, 10,5 se convierte en 10, por detrás se ignora el punto decimal.
  • Moldeada no necesariamente tenga éxito, no tiene la fuerza de transferencia entre tipos dispares
Tipo de conversión Resumen
  1. Asignación entre diferentes tipos de variable numérica, representa el rango de tipos más pequeños se puede convertir implícitamente en una amplia gama de tipos.
  2. Si necesita tipo asignado a una amplia gama de variedad de pequeñas, necesidad de yeso, pero puede perder precisión.
  3. Cuando se una asignación constantes literales, Java será controlada automáticamente contra un rango de números

promoción numérica

resumen:
  1. La mezcla de diferentes tipos de operación de datos, un pequeño rango de elevación puede ser mayor rango.
  2. Por fin, el byte 4 más pequeña que la del tipo byte, se subió a los primeros cuatro bytes de la int, recálculo
Publicado 60 artículos originales · ganado elogios 23 · vistas 3317

Supongo que te gusta

Origin blog.csdn.net/weixin_44945537/article/details/104004757
Recomendado
Clasificación