接上节。。。

1.整形变量(byte,short,int,long)(1个字节等于2的八次方)

1)Java语言的整形常量默认为int型,声明long类型常量可以在后面加“L/l”;

整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反,C和C++程序需要针对不同的处理器选择最有效的整型。

 

Java中整数定义 java怎么定义整形_System

 

Java中整数定义 java怎么定义整形_Java中整数定义_02

 

 

 

 

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类

Java中整数定义 java怎么定义整形_浮点数_03

 

 

 

//==========================================================
        //浮点型变量(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');

转义字符

Java中整数定义 java怎么定义整形_Java中整数定义_04

 

 

 

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("男性");
        }