Java基础-基本数据类型转换案例

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转化成其他类型

Java基础-基本数据类型转换案例

可以看出byte不能转化成其他类型,也正可以看出byte为最小存储单元

继续看short

Java基础-基本数据类型转换案例

从其中可以看出short可以接收byte进行直接转换

int

Java基础-基本数据类型转换案例

long

Java基础-基本数据类型转换案例

float

Java基础-基本数据类型转换案例

double

Java基础-基本数据类型转换案例

boolean(本身只有true/false两个值,所以其他类型都不能转换)

Java基础-基本数据类型转换案例

char(char的特殊性使得char不能使用其他的转换)

Java基础-基本数据类型转换案例

其中可以看出区别

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

上一篇:Redis命令、数据结构场景、配置文件总结


下一篇:【转】Android Studio 的小小配置