赞
踩
基本数据类型表示范围大小排序:
在变量赋值及算术运算的过程中,经常会用到数据类型转换,其分为两类:
隐式类型转换
显式类型转换
情形1:赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会自动进行转换
案例展示:
package com.briup.chap02; public class Test081_ImplicitTrans { public static void main(String[] args) { // int类型值 赋值给 long类型变量 long num = 10; System.out.println(num); // float类型值 赋值给 double类型变量 double price = 8.0F; System.out.println(price); char c = 'a'; // char 赋值给 int int t = c; System.out.println(t); // 下面会编译报错 //float pi = 3.14; //int size = 123L; //int length = 178.5; } }
情形2:byte、short、char类型的数据在进行算术运算时,会先自动提升为int,然后再进行运算
案例展示:
public static void main(String[] args) {
byte b = 10;
short s = 5;
// (byte -> int) + (short -> int)
// int + int
// 结果为 int
int sum = b + s;
// 下一行编译报错,int 无法自动转换为 short进行赋值
//short sum2 = b + s;
System.out.println(sum);
}
情形3:其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再运算
案例展示:
public static void main(String[] args) {
byte b = 10;
short s = 5;
double d = 2.3;
// (byte10->int10 - 5) * (short->int5) -> 5 * 5 = 25
// int25 + double2.3
// double25.0 + double2.3
// 结果:double 27.3,必须用double变量来接收该值
double t = (b - 5) * s + d;
// double赋值给float,编译报错
// float f = (b - 5) * s + d;
System.out.println(t);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。