JavaSE之基本数据类型介绍

八种基本数据类型大小

类型占用字节数
boolean1
byte1
char2
short2
int4
float4
long8
double8

类型转换规则

发生在哪?
 赋值、方法调用、算术运算以及在静态分派(重载)的匹配优先级中,可能还有一些待以后补全...
基本转换规则
**从低位类型到高位类型自动转换,从高位类型到低位类型需要强制类型转换**
也可以这样理解(个人理解,大佬勿喷): 用少的钱去换别人的不止这个价格的物品自己是乐意的(就不用别人干啥,这个时候你是没有损失的。即隐式转换),而用很多钱只能换到别人不值这个价格的的物品自己是不乐意的,这个时候如果别人掏出武器(别人强制去让你换,这个时候你是有损失的。即显示转换),你就只能乖乖的去换了。
具体转换规则

boolean 和其他基本数据类型之间不能相互转换
byte(1B) 可隐式转换为short(2B)、int(4B)、long(8B)、float(4B)、double(8B)
char(2B) 可隐式转换为int(4B)、long(8B)、float(4B)、double(8B)
short(2B) 可隐式转换为int(4B)、long(8B)、float(4B)、double(8B)
int(4B) 可隐式转换为long(8B)、float(4B)、double(8B)
float(4B) 可隐式转换为double(8B)
long(8B) 可隐式转换为float(4B)和double(8B);
double(8B) 只能强制转换了,不可隐式转换

这里特殊的点:
boolean不参与类型转换(包括强制转换),因为八种基本数据类型分为两种:boolean和数值(其他七种),只有数值类型之间才能转换。
一般的(不包括整数类型到浮点类型如int可转为float)相同位数的不能隐式转换
一般的(不包括整数类型到浮点类型如long可转为float)低位数不能转为高位数
还有一个byte不能隐式转换为char(目前不太清楚具体原因)
而对于整数类型转换为浮点类型的特殊,暂时的理解是浮点类型float比int,long可表示的范围大得多。

另外

还有一个比较小的点可能经常用到,字符串转数值类型,和数值类型转字符串:

  1. 字符串转数值类型,很简单,比如转int,则Integer.parserInt(""),转其他的同理,还有一个是Integer.valueOf()可以是将数字转化其包装类型或字符串转为Integer。
  2. 数值类型转字符串,最简单的就是这样:
String s = 1 + "";

麻烦一点的还有两种方式:

// 对应的Integer.valueof(number)是将数字转化其包装类型或字符串转为Integer
String.valueof(number);

Integer.toString(number);

基本数据类型的初始值

基本类型初始值
booleanfalse
char\u0000(null)
byte(byte)0
short(short)0
int0
long0L
float0.0f
double0.0d

这里说一点,整形的默认类型为int,浮点数的默认类型为double。还有这个初始值是什么时候被赋予呢?有且仅有这些基本数据类型是某个类的成员变量时,在类初始化时就会被赋予。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值