接上节。。。
1.整形变量(byte,short,int,long)(1个字节等于2的八次方)
1)Java语言的整形常量默认为int型,声明long类型常量可以在后面加“L/l”;
整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反,C和C++程序需要针对不同的处理器选择最有效的整型。
int a = 15;
int b = 015;//八进制(以0开头)
int c = 0x15;//十六进制(以0x开头)
int d = 0b1101;//二进制(以0b开头)
//整形常量默认是int类型,超过int的加L表示是一个long的常量
long globalPop = 7400000000L;
double aaa = 12.13d;
2.浮点型变量(float,int)(不精确,float精确到7位小数,double精确到小数点后15位)一定不要用于比较
1)float 4字节, double 8字节
2)float表数范围远远大于int,因为这之间有无数个小数
3)float类型赋值时要添加后缀F/f, double要添加D/d
4)需要计算精确的不产生舍入误差的值要使用BigDecimal类
//==========================================================
//浮点型变量(float double)(不精确,float精确到7位小数,double约是float的两倍) 一定不要用于比较
//float 4字节, double 8字节
//float表数范围远远大于int,因为有无数个小数
//float类型赋值时要添加后缀F/f,double要添加D/d
//需要计算精确的不产生舍入误差的值要使用BigDecimal类
float aa = 3.14F;
double bb = 6.28;
double cc = 628E-2;
//浮点数比较一
float f = 0.1f;
double ff = 1.0/10;
System.out.println(f == ff/*false*/);
//浮点数比较二
float d1 = 423432423f;
float d2 = d1 + 1;
if (d1 == d2) {
System.out.println("=="); //结果会输出这个
} else {
System.out.println("!=");
}
//这是因为由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。
//浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。
// 二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。
// java.math包下面的两个有用的类:BigInteger和BigDecimal,
// 这两个类可以处理任意长度的数值。
// BigInteger实现了任意精度的整数运算。
// BigDecimal实现了任意精度的浮点运算。
BigDecimal bd = BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001
BigDecimal bd2 = BigDecimal.valueOf(0.1);
BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
System.out.println(bd2.equals(bd3));//判断这两个是否相等
3.字符型数据类型(char)
1)char类型用来表示在Unicode编码表中的字符,Unicode编码被设计用来处理各种语言的文字,它占2个字节
2)char定义的变量用 ' 单引号赋值
3)字符串用String定义,双引号赋值
4)String就是字符序列
char ca = 'a';
char cb = '好';
char ccc = '\u0061';
System.out.println(c);
System.out.println('a' + 'b');
//转义字符
System.out.println("" +'a' + "\n" + 'b');
System.out.println("" +'a' + "\'" + 'b');
转义字符
4.boolean类型变量(boolean)
1)boolean类型有两个常量值,true和false 表示真假
2)在内存中占一位(不是一个字节)
3)不可以使用 0 或者非0的整数代替true和false,这一点和C语言不同
4)boolean用来判断逻辑条件,一般用于程序流程控制
boolean man = true;
if (man == true) { //不推荐man==true,最好直接写man. Less is More
System.out.println("男性");
}