Directorio de artículos
Prefacio
Al estudiar los cuatro tipos y ocho tipos de datos en Java, sabemos que hay tres situaciones diferentes cuando se asigna un dato a una variable:
- El tipo es consistente, no hay conversión de tipo
- Conversión de tipo automática, asignación automática de pequeña capacidad a gran capacidad
- Forzando la conversión de tipo, asignando gran capacidad a pequeña capacidad, el posible resultado es una pérdida de precisión
Una, conversión básica de tipos de datos
Hay reglas de conversión fijas entre los tipos de datos básicos y se resumen las siguientes 6 reglas. No importa qué programa sea, aplique estas 6 reglas y el problema se resolverá.
-
Entre los ocho tipos de datos básicos, excepto el tipo booleano que no se puede convertir, los siete tipos restantes se pueden convertir
-
Si el literal entero no excede el rango de valores de byte, short, char, puede asignarlo directamente a una variable de tipo byte, short, char
-
La conversión de pequeña capacidad a gran capacidad se llama conversión automática de tipo . El orden de capacidad de pequeña a grande es: byte <corto (char) <int <largo <float <doble , donde tanto el corto como el char ocupan dos bytes, pero el carácter puede representar un entero positivo más grande.
-
La conversión de gran capacidad a pequeña capacidad se denomina conversión de tipo forzada . Debe agregar un "símbolo de conversión de tipo obligatorio" al escribir, pero puede haber una pérdida de precisión durante el tiempo de ejecución, así que utilícelo con precaución.
-
Cuando se mezclan los tipos byte, short y char, primero convierta cada uno al tipo int y luego realice la operación。
-
Cuando se mezclan varios tipos de datos, deben convertirse al que tenga la mayor capacidad antes del cálculo.。
Dos, ejercicios
- ¿Qué pasa con el siguiente programa?
short s1=1;
s1=s1+1;
El error se informa
porque s1 es un tipo corto y 1 es un tipo int. Cuando se mezclan short e int, short se convertirá automáticamente al tipo int, por lo que el compilador s1 + 1 detecta que es del tipo int e int El tipo no se puede asignar a la variable s1 de tipo corto. Entonces necesita forzar la conversión de tipo, a saber:
short s1 = 1;
//注意强制类型转换的格式
s1 =(short) (s1 + 1) ;
- ¿Por qué una variable de tipo char puede almacenar un carácter chino y por qué?
El texto en java usa codificación unicode, un chino ocupa 2 bytes y el tipo char ocupa dos bytes en java, por lo que el tipo char en java puede acomodar completamente un carácter chino.
- ¿Qué pasa con flaot f = 1.0? ¿Qué tiene de malo a largo = 2147483648?
En el lenguaje Java, existe la disposición de que, siempre que sea un literal de punto flotante, como 1.0, 3.14, etc., se tratará como un doble de forma predeterminada . Si desea que el programa lo trate como un float, debes agregarlo después del literalf \ FO utilice la conversión de tipo forzada. El valor literal entero se trata como tipo int de forma predeterminada . Si se expresa en forma larga, debe agregarse después del valor literalL \ l。