八大基本数据类型
1. 整型
int num1 = 10;
byte num2 = 20;
short num3 =30;
long num4 = 30L; //Long类型的要在后面加一个L
byte 取值范围 (-128 ~ 127),占用1个字节(-2^7 ~ 2^7-1);
short 取值范围(-32768 ~ 32767),占用2个字节(-2^15 ~ 2^15-1) ;
int 取值范围(-2147483648 ~ 2147483647),占用4个字节(-2^31 ~ 2^31-1) ;
long 取值范围(-9223372036854774808 ~ 9223372036854774807),占用8个字节(-2^63 ~ 2^63-1);
2. 浮点型
float num5 = 50.1F; //要加一个F
double num6 = 3.141592653589793238462643;
float (3.402823e+38 ~ 1.401298e-45)(e+38 表示 *1038,e-45表示乘以10-45)占用4个字节 ;
double (1.797693e+308~ 4.9000000e-324) 占用8个字节 ;
3. 文本型
//字符
char name = 's';//只能有一个字符;
//字符串,String不是关键字,是一个类
String namea = "sndcz"; //可以有很多值
用于存放字符的数据类型,占用2个字节,采用Unicode编码,它的前128字节编码与ASCII码兼容;
char 存储范围( \u0000 ~ \uFFFF) 16进制
4. 布尔型
boolean flag = true; //是
boolean 只有两个值,true和false(真和非真);
默认为false
拓展
1. 整数拓展
进制问题:
二进制(0b开头) 十进制 八进制(0开头) 十六进制(0x)
int i=10; //10
//八进制
int i2=010; //8
//十六进制 0~9 A~F
int i3=0x10; //16
2. 浮点数拓展
浮点数比较问题:
float , double 是有限的 是离散的 会有舍入误差 和真实的数字接近但不等于
最好完全避免使用浮点数进行比较
3. 字符拓展
所有的字符本质还是数字,可以通过编码表转换
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //将字符类型强制转换成了整型 结果:97
System.out.println(c2);
System.out.println((int)c2); //强制转换 结果:20013
/* 所有的字符本质还是数字 */
//编码 Unicode表(其中包括了ASCLL表) 占了2字节 一共可以表示65532个字符
char c3 = '\u0061'; // 斜杠u 是Unicode编码的写法,是0061号代表的字符
//注意:\u在注释中也会被识别
System.out.println(c3); //结果 a
4. 布尔值拓展
boolean flag = true;
//下面两个代码意思相同
if(flag==true){ } //新手
if(flag){ } //老手
bool 默认初始值为 false
附:在IDEA的 com.kuang.base.Demo03 下面,可以看一下