Java中类型转换分为:自动类型转换、强制类型转换。
强制类型转换的语法格式是:(targetType)value,强制类型转换的运算符是圆括号(())。
当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。
Java定义了如下的自动提升规则。➢ 所有的byte类型、short类型和char类型将被提升到int类型。
➢ 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
操作数的等级排列如图3.10所示,位于箭头右边类型的等级高于位于箭头左边类型的等级。
==============================================
public class Helllo { static boolean bool; static byte by; static char ch; static double d; static float f; static int i; static long l; static short sh; static String str; final int a; public Helllo() { a = 0; } final double PI = 3.1415927; public static void main(String[] args) { System.out.println("Bool :" + bool); System.out.println("Byte :" + by); System.out.println("Character:" + ch); System.out.println("Double :" + d); System.out.println("Float :" + f); System.out.println("Integer :" + i); System.out.println("Long :" + l); System.out.println("Short :" + sh); System.out.println("String :" + str); System.out.println("---------------------------------"); bool = true; System.out.println("Bool :" + bool); System.out.println("---------------------------------"); System.out.println(new Helllo().a); System.out.println("---------------------------------"); } }
执行结果:
Bool :false Byte :0 Character: Double :0.0 Float :0.0 Integer :0 Long :0 Short :0 String :null --------------------------------- Bool :true --------------------------------- 0 ---------------------------------
===============================================
===================================================================================