3. Tutorial introductorio de Java [Tipo de datos]

I. Resumen

Los tipos de datos en Java se dividen en dos categorías: [tipos de datos básicos] y [tipos de datos de referencia]

imagen-20230715145246736

2. Tipo de datos básicos

tipo de datos significado valores predeterminados Rangos tamaño de almacenamiento (bytes)
entero byte Byte 0 -128 a 127 1
entero corto entero corto 0 -2^15 a 2^15-1 2
entero int [predeterminado] cirugía plástica 0 -2^31 a 2^31-1 4
entero largo Entero largo 0L -2^63 a 2^63-1 8
punto flotante flotar solo flotador 0.0f 1.4e-45 a 3.4e+38 4
punto flotante doble [predeterminado] flotador doble 0.0d 4.9e-324 a 1.798e+308 8
tipo de caracter carbonizarse tipo de caracter 'u0000' '\u0000' a '\uFFFF' 2
booleano booleano booleano FALSO 0 (falso) a 1 (verdadero) 1

Cabe señalar que en el proceso de desarrollo real, el tipo predeterminado de entero es inty el tipo predeterminado de coma flotante es double.

package com.itfeiniu.hello;

public class HelloWorld {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("Hello World!");
        byte b = 100;
        short s = 20;
        int i = 30;
        long l = 452422421123L;//长整型赋值时,值的最后需要添加L/l符号

        float f = 3.14f;//浮点型赋值时,值的最后需要添加F/f符号
        double d = 56.45;

        char ch1 = 'a';
        char ch2 = '中';
        char ch3 = 'A';
        int ch4 = ch3;

        boolean be = true;

        System.out.println(ch4);
    }
}

El tipo predeterminado de cualquier número es inttipo. 452422421123En realidad, no hay un rango que exceda longa continuación, pero ya ha excedido intel rango, por lo que si no se agrega al final l/L, se considerará como inttipo de forma predeterminada y se informará un error. porque excede el rango.

long l = 452422421123L;//长整型赋值时,值的最后需要添加L/l符号

Todos los números de punto flotante con un punto decimal son doubletipos de forma predeterminada, por lo que si asigna doubleel tipo de decimal a float, se informará un error y deberá agregar f/Luna declaración de que el decimal es un floattipo de precisión simple al final.

float f = 3.14f;//浮点型赋值时,值的最后需要添加F/f符号

3. Tipo de referencia

  • En Java, las variables de tipo de referencia son muy similares a los punteros de C/C++. Un tipo de referencia apunta a un objeto y una variable que apunta a un objeto es una variable de referencia. Estas variables se especifican como un tipo específico cuando se declaran, como Empleado, Cachorro, etc. Una vez que se declara una variable, no se puede cambiar su tipo.
  • Los objetos y las matrices son tipos de datos de referencia.
  • El valor predeterminado para todos los tipos de referencia es nulo.
  • Una variable de referencia se puede utilizar para hacer referencia a cualquier tipo compatible.
  • ejemplo:Site site = new Site("Runoob")

Cuatro, conversión de tipo

1. Conversión automática de tipo

Los datos enteros, reales (constantes) y de caracteres pueden ser operaciones mixtas. En funcionamiento, diferentes tipos de datos se convierten primero al mismo tipo y luego se realiza la operación.

Una variable con un rango de tipo pequeño se puede copiar directamente en una variable con un rango de tipo grande . El rango aquí se refiere al rango de valores, no al tamaño de almacenamiento de la memoria.

Las reglas específicas son las siguientes:

------------------------------------>byte,short,char> int> long> float> double 

Se puede ver que longocupa 8 bytes, pero el rango de valores es relativamente floatpequeño, por lo que longaún se puede asignar al floattipo.

La siguiente es una demostración de que short se puede convertir a int, pero no se puede asignar a byte.

short a = 10;
byte b = a;	//提示报错
int c = a;	//正常

La conversión de tipos de datos debe cumplir las siguientes reglas:

  1. No se puede booleanenviar al tipo.

  2. No se puede convertir un tipo de objeto en un objeto de una clase no relacionada.

  3. La fundición debe utilizarse al convertir un tipo de gran capacidad en un tipo de pequeña capacidad.

  4. puede resultar en desbordamiento o pérdida de precisión durante la conversión,

2. Conversión de tipo obligatoria

  1. La condición es que los tipos de datos convertidos deben ser compatibles.

  2. Formato: (tipo) el tipo de valor es la instancia del tipo de datos que se va a emitir:

int i1 = 123;
byte b = (byte) i1;//强制类型转换为byte
byte c = i1;	//报错

3. Conversión automática de tipos de expresiones

En una expresión, las variables de un tipo de rango pequeño se convertirán automáticamente en un tipo de rango más grande en la expresión y luego participarán en la operación.

byteshortchar->int->long->float->double

Precauciones:

  • El tipo de resultado final de una expresión está determinado por el tipo más alto de la expresión.
  • En la expresión, byte, short, charse convierten directamente en inttipos para participar en la operación.
byte a = 10;
int b = 20;
double c = 30.0;
double d = a + b + c;
System.out.println(d);
//输出:60.0

Supongo que te gusta

Origin blog.csdn.net/bobo789456123/article/details/131755605
Recomendado
Clasificación