学习笔记(十六)
基本数据类型
字符型:char
整数型:byte short int long
浮点型:float double
布尔型:boolean
字符型:char
1、char占用两个字节
2、char的取值范围:[0~65535]
3、char类型的字面量使用单引号括起来。
5、char可以存储一个汉字。
整数型 :
整数型在java语言中共有4种类型:
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
对于以上四个类型,最常用的是int。(2147483647是int最大值)开发时不用斤斤计较,大多数情况下int就够用了。
在java语言中整数型字面量有四种表示形式:
十进制 (最常用)
二进制
八进制
十六进制
注:在任何情况下,整数型的“字面量/数据”默认被当做int类型处理。如果希望该“整数型字面量”被当做long类型处理,需要在“字面量”后面添加“L/1”。
自动类型转换
小容量可以直接赋值给大容量,称为自动类型转换。大容量不允许直接赋值给小容量。
大容量转换成小容量,要想编译通过,必须加强制类型转换符,进行强制类型转换。需要注意的是,加强制类型转换符进行转换后,虽然编译通过了,但是运行的时候可能会损失精度。
long类型100L:00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100
以上的long类型100L强转为int类型,会自动将“前面”的4个字节砍掉:00000000 00000000 00000000 01100100
java中有一个语法规则:
当这个整数型字面量没有超出byte的取值范围,那么这个整数型字面量可以直接赋值给byte类型的变量。这种语法机制是为了方便写代码,而存在的。
但实际上可以编译通过。
整数型直接赋值给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类型的变量。
浮点型: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。
2、Boolean类型在实际开发中使用放在哪里?
使用在逻辑判断中,通常放在条件的位置上(充当条件)
类型转换
在类型转换中,要遵守以下规则:
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、 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;