Java中任何数据都是由类型的;特别是基本数据类型不但有类型,还有范围 使用基本数据类型的2中情况: 1,定义类型后进行初始化的时,虚拟机会自动检测初始化数值是否在该类型的范围内(超出编译失败); 2,没有定义类型,虚拟机就检测该数值符合那种基本类型的范围,就默认为为那种类型(为节约内存,都是符合范围的最小子集的类型。如:9(byte)) 基本数据类型,类型提升: 需要满足2个条件: 1,两种类型彼此兼容 2,转换的目标类型的范围一定要大于转换的源类型 注意:如果范围一样,低精度向高精度转换。 所以: true?'a':99999 等价于:true?'a'(char):99999(int) 结果:97 true?'a':99 等价于:true?'a'(char):99(byte) 结果:a true?'a':1 等价于:true?'a'(char):1(byte) 结果:a ------------ inti=99; 'a'+99999 等价于:'a'(char)+99999(int) 结果:100096 'a'+99 等价于:'a'(char)+99(int) 结果:196 'a'+I 等价于:'a'(char)+i (int) 结果:196 |