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类型,必须显式转化回来。