【117天】尚学堂高琪Java300集视频精华笔记(13-17)

原文链接: https://segmentfault.com/a/1190000009640951

【117天】尚学堂高琪Java300集视频精华笔记(13-17)

第13-14集:算术/逻辑/位运算符/扩展运算符/字符串连接/三元运算符/优先级问题

运算符

Java 语言支持如下运算符:

算术运算符:  +,-,*,/,%,++,--
赋值运算符 = 
关系运算符:  >,<,>=,<=,==,!=  instanceof 
逻辑运算符:  &&,||,!
位运算符:  &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?: 
扩展赋值运算符:+=,-=,*=,/= 

一元运算符

  1. 运算符(++, --)

    int a = 3;
    int b = a++;   //执行完后,b=3。先给b赋值,再自增。
    int c = ++a;   //执行完后,c=5。先自增,再给b赋值
  2. 注意:java中的乘幂处理:

    int a = 3^2; //java中不能这么处理, ^是异或符号。
    
    double b = Math.pow(3, 2); //Math类提供了很多科学和工程计算需要的方法和常数。

二元运算符

  1. 整数运算:

    • 如果两个操作数有一个为Long, 则结果也为long

    • 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

  2. 浮点运算:

    • 如果两个操作数有一个为double, 则结果为double.

    • 只有两个操作数都是float, 则结果才为float.

三元运算符(三目条件运算符)

  1. 三目条件运算符,语法格式:x ? y : z其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

    int score = 80; int x = -100;
    String type = score < 60 ? "不及格" : "及格";
    int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
    System.out.println("type= " + type);
    System.out.println("flag= "+ flag);

取模运算

其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004

  • 负数%负数=负数;

  • 负数%正数=负数;

  • 正数%负数=正数;

注:一般都是正整数运算,不用考虑这么细!

布尔逻辑表达符

  1. 逻辑与:&&和&【&用于位运算】,逻辑或:||和|【|用于位运算】,逻辑非:!。

  2. 逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。

  3. 逻辑与只要有一个为false, 则直接返回false.

  4. 逻辑或只要有一个为true, 则直接返回true;

    boolean c = 1>2&&2>(3/0);

位运算符

位运算符:

~:取反        
&:按位与        
|:按位或    
^:按位异或   
<<:左移运算符, 
>>:右移运算符 
>>>:无符号移位运算符

右移一位相当于除2取商,左移一位相当于乘2。

int a = 3*2*2;
int b = 3<<2;  //相当于:3*2*2;
int a = 12/2/2;
int b = 12>>2;

移位操作比乘除要快。

扩展运算符

+=: a += b 等效 a = a+b
-=: a -= b 等效 a = a-b
*=: a *= b 等效 a = a*b
/=: a /= b 等效 a = a/b
%=: a %= b 等效 a = a%b

字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

int c = 12;
System.out.println("c=" + c);

运算符优先级

表达式内,优先用小括号来组织

【117天】尚学堂高琪Java300集视频精华笔记(13-17)_第1张图片

package test013;

public class test013 {
    public static void main(String[] args){
    /*    double d = 10.2%3;
        System.out.println(d);
        
        int a = 3;
        int b = a++; // 先将a赋值给b,a再自加
        int c = ++a; // a先自加,再赋值给c
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    
        //int c = 3/0;//报错
    */
        
    /*
        boolean c = 1>2&&2>(3/0);
        System.out.println(c); //因为短路现象,所以3/0的报错信息没有出来。
    */
        
    //测试位运算
        
        int m = 8;          //二进制为0000_0000_0000_0000_0000_0000_0000_1000
        int n = 4;          //二进制为0000_0000_0000_0000_0000_0000_0000_0100
        System.out.println(m&n);//0000_0000_0000_0000_0000_0000_0000_0000
        System.out.println(m|n);//0000_0000_0000_0000_0000_0000_0000_1100
        System.out.println(~m); //1111_1111_1111_1111_1111_1111_1111_0111【此为补码】
                                //转换为原码需要减1取反
                                //1000_0000_0000_0000_0000_0000_0000_1001【此为原码,即十进制的-9】
        System.out.println(m^n);//0000_0000_0000_0000_0000_0000_0000_1100
        
        int a = 3*2*2;
        int b = 3<<3;
        int c = 12/2/2;
        int d = 12>>2;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        
        boolean b1 = true&false;
        System.out.println(b1);
        
        int f = 3;
        f += 3;
        System.out.println(f);
        
    }
}

第15-16集:eclipse开发环境的使用/建立java项目/运行java项目

  1. Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    【117天】尚学堂高琪Java300集视频精华笔记(13-17)_第2张图片

  2. eclipse常用快捷键(暂时大家可以不关注,随着学习的深入慢慢体会!)

    • 命令提示:alt+/ (main, syso)

    • 文件选择:

      • Shift+ 上下左右,home,end键

      • Ctrl+Shift+ 左右 单词选中

    • 删除一行:ctrl+d

    • 复制一行到下面或上面: ctrl+alt+上下

    • 换行:alt+上下

    • 编辑文件切换:ctrl+F6,或者ctrl+E,上下

    • 视图切换:ctrl+F7

    • 查看错误建议:ctrl+1

    • 导入类:ctrl+shift+o

    • 重命名:alt+shift+r

第17集:if语句单选择双选择多选择结构

  1. Java三种结构:顺序、选择、循环

  2. Math类的使用:‘int i = (int)(Math.random()*6);//产生[0,5]

public class test017 {
    public static void main(String[] args){
        /*double i = 6 * Math.random();
        double j = 6 * Math.random();
        double k = 6 * Math.random();
        int count = (int)(i+j+k);
        if(count > 15){
            System.out.println("今天天气不错");
        }
        if(count >=10 && count <= 15){
            System.out.println("今天手气一般");
        }
        if(count <10){
            System.out.println("今天手气不怎么样");
        } 
        System.out.print("得了"+ count+"分");
        
        */
        
        /*double r = 4* Math.random();
        double area = Math.PI * r;
        double circle = 2 * Math.PI * r;
        System.out.println("半径为: "+ r);
        System.out.println("面积为: "+ area);
        System.out.println("周长为: "+ circle);
        if(area >= circle){
            System.out.println("面积大于等于周长");
        } else {
            System.out.println("周长大于面积");
        }
        */
        int age = (int)(100 * Math.random());
        System.out.println("年龄是" + age + "属于");
        if(age<15){
        System.out.println("儿童喜欢玩");
        } else if(age<15) {
            System.out.println("青年, 要学习!");
        }else if(age<25) {
            System.out.println("青年, 要学习!");
        }else if(age<45) {
            System.out.println("中年, 要工作!");
        }else if(age<65) {
            System.out.println("中老年, 要补钙!");
        }else if(age<85) {
            System.out.println("老年, 多运动!");
        }    
    }
}

你可能感兴趣的:(【117天】尚学堂高琪Java300集视频精华笔记(13-17))