黑马程序员技术交流社区

标题: 数据类型 [打印本页]

作者: 1634412491    时间: 2019-4-17 18:04
标题: 数据类型
1.数据类型的转换(掌握)
        隐式类型转换(自动类型转换)
                什么是隐式类型转换呢?
                        小的数据类型 会自动提升为 大的数据类型

                隐式类型转换的格式?
                        没有格式

                例子:
                        byte b = 1;
                        short s = 2;
                        int i = 3;
                        long l = 4;
                        float f = 1.1f;
                        double d = 1.2;
                       
                        ??? dd = b + s + i + l + f + d;
                       
                        分析:当有多个数据类型参与运算的时候,小的数据类型会自动提升为大的数据类型
                        提升类型的格则: byte,short,char -> int -> long -> float -> double

                        所以确定,???处为double类型

                四个特殊的情况?
                        情况一:
                                byte b1 = 1;
                                byte b2 = 2;
                                byte b3 = b1 + b2;
                                System.out.println(b3);//编译报错,提示不兼容的类型

                        情况二:
                                byte b1 = 1;
                                byte b2 = b1 + 2;
                                System.out.println(b2);//编译报错,提示不兼容的类型

                        情况三:
                                byte b = 126 + 1;
                                System.out.println(b);//编译正确

                        情况四:
                                byte b = 127 + 1;
                                System.out.println(b);//编译报错

        强制类型转换
                什么是强制类型转换?
                        大的数据类型 强制转换成 小的数据类型

                强制类型转换的格式?
                        小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名
                       
                例子:
                        int a = 1;
                        byte b = (byte)a;

                注:以后,我们能不使用强制类型转换,就尽量不要使用强制类型转换,因为转不好,会有问题产生的
                        int a = 130
                        byte b = (byte)a;
                        System.out.println(b);//130

2.编码表(常识)
        ASCII编码表       
                'a' -> 97
                'A' -> 65
                '0' -> 48
                System.out.println('a' + 0);//97

        Unicode编码表
                Java语言默认使用的编码表就是这个编码表

        XXXOOO编码表

        System.out.println('A' + 0);//65

3.运算符(掌握)
        算术运算符:
                /:和我们传统的除法不太一样,整数除以整数得到的就是整数
                        int i = 1/2;
                        System.out.println(i);//0
       
                        int i = 3/2;
                        System.out.println(1);//1

                        int i = 3.0/2;
                        System.out.println(i);

                %(模):取模,取余数
                        System.out.println(3 % 2);

                        通过%可以帮助我们判断一个数字是奇数还是偶数

                        ??? % 2 == 0 可以判断是偶数
                        ??? % 2 == 1 可以判断是奇数

                ++(--):
                        例: int i = 1;
                             i++;//++i;  -->  i = i + 1;

                        如果单独使用,++在前在后结果是一样的
                        参与运算的时候,++在前就是先自身加1,然后再去参与运算,++在后就是先自身参与运算,然后再去加1

                        int a = 10;
                        int b = a++ + ++a + a-- + --a;
                        System.out.println(b);//44

        赋值运算符:
                +=:
                        int i = 1;
                        i += 2;//i = (int)(i + 2);

                        short s = 1;
                        s += 2;// s = (short)(s + 2);

                        笔试题:
                        byte b1 = 1;
                        b1 += 2;//b1 = (byte)(b1 + 2);
                        //b1 = b1 + 2;
                        System.out.println(b1);

        比较运算符:
                ==:比较两边的数字是否相等
                =:赋值语句

                例子:
                        int a = 2;
                        int b = 2;
                        System.out.println(a++ == b--);//true
                        System.out.println(a);//3
                        System.out.println(b);//1
       
        逻辑运算符:
                &(单与):
                        true & true = true;
                        System.out.println(true & true);//true
                        true & false = falas;
                        false & false = false;
                        false & true = false;

                        结论:只有两边都为true,才true

                |(单或):
                        true | true = true;
                        true | false = true;
                        false | false = false;
                        false | true = true;

                        结论:只要有一个为true,结果就为true

                ^(异或):
                        true ^ true = false
                        true ^ false = true
                        false ^ false = false
                        false ^ true = true

                        结论:两边一样为false,不一样true

                !(非):
                        !true = false;
                        !false = true;
                        !!true = true;
                        !!!true = false;

                &&(双与):
                        true && true = true;
                        System.out.println(true && true);//true
                        true && false = falas;
                        false && false = false;
                        false && true = false;

                        结论:只有两边都为true,才true

                ||(双或):
                        true || true = true;
                        true || false = true;
                        false || false = false;
                        false || true = true;

                        结论:只要有一个为true,结果就为true

                面试题:
                        &与&&的区别?
                                对于&来说,两边肯定都要执行的
                                对于&&来说,如果左边为false,右边不再执行,结果为false
                        |与||的区别?
                                对于|来说,两边肯定都要执行的
                                对于||来说,如果左边为true,右边不再执行,结果为true
       
                        在我们的实际开发中,推荐使用&&,||,因为提高执行效率

        三元运算符(三目运算符,条件运算符):
                三元运算符格式?
                        条件表达式 ? 表达式1 : 表达式2;

                三元运算符的执行流程?
                        如果条件表达式为true,执行表达式1
                        如果为false,执行表达式2

                注:
                        3 > 4 ? 3 : 4;//错误,一定要有一个变量去接收
                        3 > 4 ? System.out.println(3):System.out.println(4);//错误

4.字符串的拼接(掌握)
        任何数据类型与字符串相加最终都会变成一个字符串

        例子:已知定义两个变量,int i = 1, int j = 2,然后在控制台上打印这样的结果"i + j = 2"
                int i = 1;
                int j = 2;
                System.out.println("i * j = 2");
                System.out.println("i * j = " + i*j);//"i * j = 2"

    (@@@@@@) System.out.println(5 + 5 + "abc" + 5 + 5);//10abc55

5.函数(方法)(掌握)
        什么是方法?
                定义在类的里面,具有特定功能的一段独立小程序

        方法的作用是什么?
                提高了代码的复用性
                提高了代码的维护性

        定义方法的格式是什么样子呢?
                修饰符 返回值类型 方法的名字(数据类型 变量名, ... ...) {
                        XXXOOO;
                        return 返回值;
                }

                今天我们只需要掌握下面这种格式:
                public static void 方法名() {
                        可以写一些简单的小功能;
                }

                例子:写一个方法,该方法的功能是可以在控制台上打印随意两个数字(我们自己是随意写)的和
                public static void da_yin_he() {
                        int i = 1;
                        int j = 2;
                        System.out.println(i + j);
                }

        方法怎么使用呢?
                方法只有被调用才会执行

                方法调用的方式有几种?
                        三种

                        今天只学一种
                        da_yin_he();
                        方法名();





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2