Java里面包含8个基本数据类型,分别是:boolean、byte、char、short、int、float、douboe、long。
整型变量
byte
占用存储空间:1字节,8位;
表示范围:[-128~127];
表示:byte num = 1;
short
占用存储空间:2字节,16位;
表示范围:[-32768-32767];
表示:short num = 1;
int
占用存储空间:4字节,32位;
表示范围:[-2^31, 2^31 - 1];
表示:int num = 1;
long
占用存储空间:8字节,64位;
表示范围:[-2^63, 2^63 - 1];
表示:long num = 1l或long num = 1L;建议使用大写L,小写容易误认为数字1;
浮点类型
float
占用存储空间:4字节,32位;
表示范围:-3.403E38~3.403E38;
表示:float num = 1f或float num = 1F;
double
占用存储空间:8字节,64位;
表示范围:-1.798E308~1.798E308;
表示:double num = 1.0;
默认是double. 浮点数存在误差,所以在比较中尽量避免使用浮点数,如
float num1 = 0.1f;
double num2 = 1.0/10;
System.out.println(num1==num2);
//输出的是false而不是true;
字符型
char
占用存储空间:2字节,16位;
表示范围:0~216216-1(0~65535);
表示:
char c = ‘a’; 直接通过单个字符指定;
char c = ‘\n’; 通过转义字符制定;
char c = '\uXXXX’XXXX代表一个十六进制的整数,通过Unicode表示;
布尔型
boolean
占用存储空间:1位;
表示范围:true,false;
表示:boolean b = true;
类型转换
1、自动类型转换
容量(表示的数据个数)小的数据类型可以自动转换为容量大的数据类型:
int i = 1;
double d = i;
float f = i;
double d2 = f;
特例:可以将整数常量直接赋值给byte,short,char等类型变量,而不需要强制类型转换,只要不超出其表示范围:
short b = 12;// 合法;
short b = 1234567;//非法
2、强制类型转换
①强制类型转换用于显示的转换一个数值的类型,在有可能丢失信息的情况下进行的转换是通过强制类型转换来实现的,但可能造成精度降低或溢出;
②当一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,就会被截断为完全不同的值;
char与int的转换
1、char转int
char与int的想换转换,联想ASCll码,字符’0’对应的值为48,所以不能直接加减’ ’
char ch = '9';
int ch_int = ch - '0';
//ch_int = 9
2、int 转char
int i= 9;
char i_ch = i + '0';
//此时i_ch = '9'
字符值 | ASCll值 |
---|---|
‘0’ | 48 |
‘9’ | 57 |
‘A’ | 65 |
‘Z’ | 90 |
‘a’ | 97 |
‘z’ | 122 |
来源:CSDN
作者:李小诺..
链接:https://blog.csdn.net/weixin_44945545/article/details/104626308