Java数据类型转换使用情况_Java八种基本数据类型、赋值与类型转换

学习笔记(十六)

基本数据类型

字符型:char

整数型:byte  short  int  long

浮点型:float double

布尔型:boolean

字符型:char

1、char占用两个字节

2、char的取值范围:[0~65535]

3、char类型的字面量使用单引号括起来。

5、char可以存储一个汉字。

1c3e3c992687768deb26f29e350953a6.png

整数型 :

整数型在java语言中共有4种类型:

byte 1个字节

short 2个字节

int  4个字节

long 8个字节

对于以上四个类型,最常用的是int。(2147483647是int最大值)开发时不用斤斤计较,大多数情况下int就够用了。

在java语言中整数型字面量有四种表示形式:

十进制 (最常用)

二进制

八进制

十六进制

76c6a56d78ab3ba4906b3ba1ad7d6707.png

注:在任何情况下,整数型的“字面量/数据”默认被当做int类型处理。如果希望该“整数型字面量”被当做long类型处理,需要在“字面量”后面添加“L/1”。

de6ad6e0aaa1a1d1b32381d8af309e10.png

541ce212597068686b7f3b37c97c023f.png

自动类型转换

小容量可以直接赋值给大容量,称为自动类型转换。大容量不允许直接赋值给小容量。

6908c8e69afe152e8c751511436c14cc.png

大容量转换成小容量,要想编译通过,必须加强制类型转换符,进行强制类型转换。需要注意的是,加强制类型转换符进行转换后,虽然编译通过了,但是运行的时候可能会损失精度。

cd5b37b214beee8325e193e072b63af6.png

long类型100L:00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100

以上的long类型100L强转为int类型,会自动将“前面”的4个字节砍掉:00000000 00000000 00000000 01100100

ff5145f8e154860e23f5b3bdedcaa03f.png

java中有一个语法规则:

当这个整数型字面量没有超出byte的取值范围,那么这个整数型字面量可以直接赋值给byte类型的变量。这种语法机制是为了方便写代码,而存在的。

9c9575374f00330330a5cb293ae70ba0.png

但实际上可以编译通过。

2ef99420a141a07cd5f57ccb52c14418.png

整数型直接赋值给char

char x = 97;

这个java语句是允许的,并且输出的结果是'a'

97是int类型(这是java中规定,默认当做int处理),c2是char类型,但是当一个整数赋值给char类型变量的时候,会自动转换成char字符型。

char c2 = (char)97;//不需要这么写

注:char的取值范围是[0~65535],超过后会报错:错误: 不兼容的类型: 从int转换到char可能会有损失。

同样的,当一个整数没有超出byte short char的取值范围的时候,这个整数可以直接赋值给byte short char类型的变量。

9111e1a11425cc78d6363236def6abb3.png

浮点型:float  double

1、float  4个字节      double 8个字节

2、float是单精度      double是双精度,double更精确。

比如说,10/3,如果用float来存储的话可能是:3.3333,如果用double来存储的话,可能是3.33333333

但需要注意的是,如果用在财务方面,double也是远远不够的。在java中提供了一种精度更高的类型,这种类型专门使用在财务方面:java.math.BigDecimal(后期介绍,不是基本数据类型,是引用数据类型。)

3、float和double存储数据的时候都是存储的近似值,例如无限循环小数3.33333......。但计算机的内存有限,用一个有限的资源表示无限的数据,只能存储近似值。

4、long类型占用8个字节,float占用4个字节,哪个容量大?float。

任意一个浮点型都比整数型空间大。(和java底层有关)

5、java中规定,任意一个浮点型数据默认当做double来处理,如果想让这个浮点字面量被当做double来处理,那么请在字面量后面添加F/f。

1.0 被默认为当成double类型处理,

1.0F(1.0f)是float类型。

布尔型:

1、在Java中,boolean类型只有两个值:true和false。

37c684a71a9f242a44e3a6e17ae07190.png

2、Boolean类型在实际开发中使用放在哪里?

使用在逻辑判断中,通常放在条件的位置上(充当条件)

8c79238355d340b2d32c6e6358f9bd06.png

类型转换

在类型转换中,要遵守以下规则:

1、八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;

2、如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给 byte,short,char 类型的变量;

3、小容量向大容量转换称为自动类型转换,容量从小到大的排序为:byte < short(char) < int < long < float < double,其中 short和 char 都占用两个字节,但是char 可以表示更大 的正整数;

4、大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但 运行时可能出现精度损失,谨慎使用;

5、 byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;

6、 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值