美文网首页
2018-08-23

2018-08-23

作者: 老茂在北京 | 来源:发表于2018-08-23 21:40 被阅读8次

    基础语法

    包其实就是文件夹

    常量

    常量:在程序执行的过程中,其值不发生改变的量
    分类:

    • 字面值常量
    • 自定义常量(后面讲)

    字面值常量

    • 字符串常量 "hello"
      整数常量 12,23
      小数常量 12.345
      字符常量 'a','A','0'
      布尔常量 true,false
      空常量 null

    整数常量四种表现形式

    • 二进制 由0,1组成。以0b开头。
      八进制 由0,1,...7组成。以0开头。
      十进制 由0,1,...9组成。整数默认是十进制。
      十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
    进制转换(了解)

    (1)其他进制到十进制
    系数:就是每一个位上的数值
    基数:x进制的基数就是x
    权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
    结果:系数*基数^权次幂之和。
    (2)十进制到其他进制
    除基取余,直到商为0,余数反转。
    (3)进制转换的快速转换法
    A:十进制和二进制间的转换
    8421码。
    B:二进制到八进制,十六进制的转换

    变量

    变量定义的两种格式:

    1. 数据类型 变量名 = 初始化值;
    2. 数据类型 变量名;
      变量名 = 初始化值;

    数据类型(掌握)

    数据类型

    分类:

    • 基本数据类型:4类8种
    • 引用数据类型:类,接口,数组。

    基本数据类型

        A:整数            占用字节数
            byte            1
            short           2
            int (默认)      4
            long            8
        B:浮点数
            float           4
            double(默认)    8
        C:字符
            char            2
        D:布尔
            boolean         1
            
    注意:
        整数默认是int类型,浮点数默认是double。
        长整数要加L或者l。
        单精度的浮点数要加F或者f。
    

    数据类型转换(掌握)

    • boolean 类型不参与转换
    • 默认转换
      • 从小到大
      • byte,short,char -- int -- long -- float -- double
      • byte,short,char之间不相互转换,直接转成int类型参与运算。
    • 强制转换
      • 从大到小,可能会有精度的损失,一般不建议这样使用。
      • 格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);
    //思考题和面试题
    //1. 下面两种方式有区别吗?
    float f1 = 12.345f;
    float f2 = (float)12.345;//容易损失精度,默认double
    
    //2. 下面的程序有问题吗,如果有,在哪里呢?
    byte b1 = 3;
    byte b2 = 4; 
    byte b3 = b1 + b2; //两个byte相加自动转换为int,应该为(byte)(b1+b2)
    byte b4 = 3 + 4;//常量默认int类型,再转换为byte会出错
    
    //3. 下面的操作结果是什么呢?
    byte b = 130; //byte的范围是-128--127
                  //可以使用 byte b = (byte)300,实际b=-126,是原码,补码,反码
    
    //4. 字符参与运算
    //ASCII里面的值
    /*  'a'     97
        'A'     65
        '0'     48
    */
    System.out.println('a'); // a
    System.out.println('a' + 1); //98
    
    //5. 字符串参与运算。这里其实是字符串的连接
    System.out.println("hello"+'a'+1); //helloa1
    System.out.println('a'+1+"hello"); //98hello
    System.out.println("5+5="+5+5); //5+5=55
    System.out.println(5+5+"=5+5"); //10=5+5
    

    注意事项

    • 在定义Long或者Float类型变量的时候,要加L或者f。

    • 整数默认是int类型,浮点数默认是double。

    • byte,short在定义的时候,他们接收的其实是一个int类型的值。 自己做了一个数据检测的,如果不再它们的范围内,就报错。

    • byte值的问题

      byte b1 = 127;
      byte b2 = (byte)128; //-128
      byte b3 = (byte)129; //-127
      byte b4 = (byte)130; //-126
    //byte的范围:-128 ~ 127
        
    //  128:10000000
    //  -128:10000000 (这里的1即是符号位,也是数值位)
    
    • 数据类型转换之默认转换
      • byte,short,char -- int -- long -- float -- double
        long: 8个字节
        float:4个字节
        
        A:它们底层的存储结构不同。
        B:float表示的数据范围比long的范围要大
            long:2^63-1
            float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
    
    • Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
      • 可以。因为java语言中的字符占用两个字节。
      • Java语言采用的是Unicode编码。

    运算符(掌握)

    算术运算符

    • +的用法
      • 加法
      • 正号
      • 字符串连接符
    • /%的区别
      • 数据做除法操作的时候,/取得是商,%取得是余数
    • ++--的用法
      • 放在操作数的前面:先自增或者自减,再参与操作
        int a = 10;
        int b = ++a; //b=11
      • 放在操作数的后面:先参与操作,再自增或者自减
        int a = 10;
        int b = a++; //b=10

    赋值运算符

    • =,+=,-=,*=,/=,%=
    • =叫做赋值运算符,也是最基本的赋值运算符
      int x = 10; 把10赋值给int类型的变量x。
    • 扩展的赋值运算符的特点
      • 隐含了自动强制转换。
    //请问上面的代码哪个有问题?
    short s = 1;
    s = s + 1;
                    
    short s = 1;
    s += 1;
    

    比较运算符

    • ==,!=,>,>=,<,<=
    • 无论运算符两端简单还是复杂最终结果是boolean类型。
    • 千万不要把==写成了=

    逻辑运算符

    • &,|,^,!,&&,||
    • 结论
      • &有false则false
      • |:有true则true
      • ^:相同则false,不同则true。
      • !:非true则false,非false则true
      • &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
      • ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

    位运算符(了解)

        A:^的特殊用法
            一个数据针对另一个数据位异或两次,该数不变
        B:面试题
            a:请实现两个变量的交换
                **采用第三方变量
                **用位异或运算符
                    左边a,b,a
                    右边a^b
            b:请用最有效率的方式计算出2乘以8的结果
                2<<3
    

    三元运算符

        A:格式
            比较表达式?表达式1:表达式2;
        B:执行流程:
            首先计算比较表达式的值,看是true还是false。
            如果是true,表达式1就是结果。
            如果是false,表达式2就是结果。
        C:案例:
            a:比较两个数据是否相等
            b:获取两个数据中的最大值
            c:获取三个数据中的最大值
    

    键盘录入(掌握)

    A:导包
    import java.util.Scanner;
    B:创建对象
    Scanner sc = new Scanner(System.in);
    C:获取数据
    int x = sc.nextInt();

    相关文章

      网友评论

          本文标题:2018-08-23

          本文链接:https://www.haomeiwen.com/subject/mvqviftx.html