1.java的基本数据类型
java 的基本数据类型有4种:
- boolean类型 (true 或者false)
- 整数类型 (byte,short,int long)
- 浮点数类型 (float,double)
- 字符类型(char)
基本数据类型 | boolean | byte | char | short | int | long | float | double |
---|---|---|---|---|---|---|---|---|
占用存储空间 | 1位 | 1字节 | 1字节 | 2字节 | 4字节 | 8字节 | 4字节 | 8字节 |
封装类 | Boolean | Byte | Character | Short | Integer | Long | Float | Double |
boolean:
- 默认值是false
- 值只能是true或false,不能用0和1代替
- 例子:boolean one = true
byte:
- 默认值是0
- byte类型用在大型数组中代替整数节约空间
- 例子:byte a = 100,byte b = -50
short:
- 默认值是0
- Short类型也用在大型数组中代替整数节约空间
- 例子:short s = 1000,short r = -20000
int:
- 一般地整型变量默认为int类型
- 默认值是0
- 例子:int a = 100000, int b = -200000
long:
- 这种类型主要使用在需要比较大整数的系统上
- 默认值是0L
- 在末尾加L
- 例子: long a = 100000L,int b = -200000L
float:
- float在储存大型浮点数组的时候可节省内存空间
- 默认值是0.0f
- 在末尾加f
- 例子:float f1 = 234.5f
- float f=6.26(错误 浮点数默认类型是double类型)
float f=6.26F(转换正确,强制)
double:
- 浮点数的默认类型为double类型
- 默认值是0.0d
- 例子:double d1 = 123.4
- 比较浮点数时a==0.1是不合适的,应该a-0.1==0;如果a是0.1,则即使有误差 a-0.1==0因为a和0.1都被表示为一个有误差的计算机二进制
char:
- java字符采用Unicode编码,每个字符占两个字节,用单引号赋值
- java有一些转义字符 \ ,如’\n’表示换行
- char 类型可以参与整型计算,然后转换成字符型
- char数据类型可以储存任何字符,例子:char letter = ‘A’
2.Java常量
常量指不能改变的量。
- 十进制整型常量:十进制正常表示即可
- 十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
- 八进制整型常量:八进制必须以0开头,如0123,034。
- 长整型:长整型必须以L作结尾,如9L,342L。
- 浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
常量在程序运行过程中主要有2个作用:
1. 代表常数,便于程序的修改(例如:圆周率的值)
2. 增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)
在Java中常量用final标志,声明方式和变量类似,通常变量名为大写:
final double PI = 3.1415927;
3. 简单数据类型之间的转换
1.自然转换:
- 级别低的变量赋值给级别高的变量时,系统自动完成数据类型的提升
- 级别由低到高: byte short int long float double
- 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c=’c’; int i=c;
System.out.println(“output:”+i);
输出:output:99;
2.强制转换
- 将”大”数据转换为”小”数据时,可以使用强制类型转换
- 语法格式: int n=(int)3.14159/2
- 这种转换可能会导致溢出或精度的下降
3.包装类转化
- 调用目标类型的包装类的转换函数
- 将被转化的数据转换成它的包装类再转化
- 通过包装类的构造函数调用