1.整型【byte,short,int,long(根据所存数据范围大小)】
- java中整形默认是int类型
- long类型赋值时末尾要加"l"或"L"(数值为int类型放不下时必须加)
名称 | 大小 | 范围 |
---|
byte | 一个字节(1Byte=8bit)(一个符号位其余数值位) | -128~127(2^7) |
short | 两个字节(一个符号位其余数值位) | -2^15~2^15-1 |
int | 四个字节(一个符号位其余数值位) | -2^31~2^31-1 |
long | 八个字节(一个符号位其余数值位) | -2^63~2^63-1 |
2.浮点型【float,double(根据精度)】
- java中浮点类型默认为double类型
- float类型赋值时末尾要加"f"或"F"(带小数点一定要加,不带视为int自动转float)
- float和int:int精度高,float表示范围大(大概-3.4E+38~3.4E+38)
- 存在精度丢失现象
- 因为精度丢失现象,浮点数计算判断不可直接用等于,否则大概率返回false
- 避免精度丢失(浮点数加减乘除)--BigDecimal()
package test;
import java.math.BigDecimal; //类的导入
public class One {
public static void main(String[] args) {
BigDecimal num1=new BigDecimal(1.2);
BigDecimal num2=new BigDecimal(1.1);
BigDecimal res=num1.subtract(num2);
System.out.println(res.floatValue()); //结果为0.1
}
}
名称 | 大小 | 分布方式 | 计算方式 |
---|
float | 四个字节 | 一个符号位 8位阶码位 23位数值位 | 2^(阶码位-127)*数值位 |
double | 八个字节 | 一个符号位 11位阶码位 52位数值位 | 2^(阶码位-1023)*数值位 |
3.字符型【char】
- 定义要用单引号,而且里面只能放一个字符或汉字
- char类型在java中是一个占两个字节(16位)的无符号整数(0~2^16-1)
- char类型在Unicode编码占两个字节,在ASCLL编码中占一个字节
char a='中';
char b='\u4e2d'; //Unicode编码
char c=20013; //用整数定义时不加引号而且不超过2^16-1
System.out.println(a);
System.out.println(b);
System.out.println(c); //输出都为中
int d='中';
System.out.println(d); //可以用这种方式查字符对应整数
4.布尔型【boolean】
- 单一布尔类型默认转为int类型,占四个字节
- 布尔类型数组中的每一个布尔元素占一个字节