java基本数据类型八中
byte = Byte short = Short char = Character int = Integer long = Long float = Float double = Double boolean = Boolean
本文通过几个简单的转换关系连接顺序
运行一个实例查看输出结果
byte b = ‘a‘; short s = ‘a‘; char c = ‘a‘; int i = 5; long l = 5l; float f = 5.5f; double d = 5.5; boolean bo = true; System.out.println(b); System.out.println(s); System.out.println(c); System.out.println(i); System.out.println(l); System.out.println(f); System.out.println(d); System.out.println(bo);
输出
97 97 a 5 5 5.5 5.5 true
可以看出byte和short会将字符转换成ac码输出。关于char本质上char类型是int的一个子集
下面通过一个一个的比较转化来理解大小问题
首先尝试使用byte转化成其他类型
可以看出byte不能转化成其他类型,也正可以看出byte为最小存储单元
继续看short
从其中可以看出short可以接收byte进行直接转换
int
long
float
double
boolean(本身只有true/false两个值,所以其他类型都不能转换)
char(char的特殊性使得char不能使用其他的转换)
其中可以看出区别
1.除了char外的其他类型都能从小到大的转换,查看期源码原来都继承、实现了如下方式
? extends Number implements Comparable<?>
都继承了Number类。也就是都为数字型
2.char有别去其他数据类型的原因也处于这里
public final class Character implements java.io.Serializable, Comparable<Character>
使用Unicode字符集表示字符,Unicode是完全国际化的字符集,可以表示全部人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也使用16 bit表示。 赋值可能是这样的:
char ch1 = 88; char ch2 = ‘A‘;
ASCII字符集占用了Unicode的前127个值。之所以把char归入整型,是因为Java为char提供算术运算支持,例如可以ch2++;之后ch2就变成Y。当char进行加减乘除运算的时候,也被转换成int类型,必须显式转化回来。
时间: 2024-10-29 19:06:21