java基础整理:基本数据类型+char类型运算

  1. 8种基本数据类型及其字节数 (一个字节是8位)

 数据类型

关键字

字节数

数值型

整数型

byte

1

short

2

int

4

long

8

浮点型

float

4

double

8

布尔型

boolean

1(位)

字符型

char

2

     char类型其实是和int  short一样,都是整数,只是取值范围不同

     整数默认是int,浮点默认是double。

2.类型转换

自动转换规则:容量小的数据类型可以自动转换成容量大的数据类型,也可以说低级自动向高级转换。这儿的容量指的不是字节数,而是指类型表述的范围。

char->short->int->long->float->double(注意是基本数据类型)

强制转换规则:高级变为低级需要强制转换。

如何转换:

     (1)、赋值运算符“=”右边的转换,先自动转换成表达式中级别最高的数据类型,再进行运算。

     (2)、赋值运算符“=”两侧的转换,若左边级别>右边级别,会自动转换;若左边级别 == 右边级别,不用转换;若左边级别 < 右边级别,需强制转换。

     (3)、可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,前提是不超出其表述范围,否则必须进行强制转换。

示例:

(1)、

short s = 3 ;

s+=4;(一次运算)。底层存在强转,s=(short(s+1))

s=s+4;(两次运算)。右边不能确定长度,因为不是常量,所以这样写编译是会报错的,加4已经自动类型提升,在又赋值给short类型的就会丢失精度。如果显示的强转是可以的  s= (short)(s+4);

(2)、float f=3.4;是否正确

不正确,3.4是double类型,左边是float,想下类型转换需要强转,或者写成3.4f。

(3)float a = 98 可以吗?

可以,98是int类型,向上类型转换

(4)Float a = 98 可以吗?

不可以,98是int类型,就算是自动装箱为Integer,也不能转为Float类型,类型不匹配。

 3.char类型运算

(1)char在java中称为“字符型”,占2个字节。字符常量是用单引号括起的一个字符,且字符常量在内存中存储的是该字符在Unicode字符集中的排序位置,即整数,所以使用char类型可以进行位运算。

比如:

char y='b';

内存y中存储的是字符’b’在Unicode字符集中的排序位置98。【可以通过语句System.out.println((int)y);来获取Unicode的排序位置。】因此上面的语句也可以写成:char y=98;

System.out.println(++y);语句,先执行++y,结果为99,然后输出对应位置的字符’c’

(2)java中的“向上兼容”,即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是:char->short->int->long->float->double。

在System.out.println(y+1);这个语句中,y是char类型,1是int类型,所以把y强转成int,然后运算结果是99,输出也是int类型99

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值