Java 操作符

PS:在最底层,Java中的数据是通过使用操作符来操作的。

操作符的使用及其优先级

Java中的基本操作符及其优先级表
以下为完整代码(1):

package cxcf;
public class Day3 {
    public static boolean fun1(int val){
        System.out.println("val<1");
        return val<1;//true
    }
    public static boolean fun2(int val){
        System.out.println("val<2");
        return val<2;//false
    }
    public static boolean fun3(int val){
        System.out.println("val<3");
        return val<3;
    }

    //void 方法的返回值
    //Max2 方法名称
    //(int a,int b) 形式参数  形参
    public static int Max2(int a,int b){
        if(a>b){
            return a;
            //System.out.println(a);
        }else{
            return b;
            //System.out.println(b);//()函数
        }       
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        boolean b5=fun1(0)&&fun2(2)&&fun3(1);//短路 与,有一个为false,短路
        System.out.println(b5);
        boolean b6=fun1(0)||fun2(2)||fun3(1);//有一个为true,短路
        System.out.println(b6);

        // ! && || 只支持boolean值
        boolean b1=true;
        boolean b2=false;
        if(!b1==true){
            System.out.println("is true");
        }else{
            System.out.println("is false");
        }

        int[] array={1,2,3,4,5};//[] 声明是一个数组
        array[0]=2;//[]属性获取 下标里面的内容
        System.out.println(array);
        System.out.println(array[0]);
        int len=array.length;//方法调用 

        System.out.println(len);
        int a=10;
        int b=20;
        //Max2(a,b);
        int e=Max2(a,b);
        System.out.println(e);
        int c=30;//= 赋值号
        int d=40;//代码冗余 
    }
}


----------

  • 分解代码:
  • 1.[ ]、. 、( )的注释 :
    (1)array[ ] 声明一个数组;
    (2)array[0]=2;属性获取下标里的内容;
    (3)“.” array.length;调用方法;
    (4) ( )可用来创建一个函数:
    public void int Max2(int a,int b)
  • 2.逻辑操作符“与” && “或” || “非”!,能根据参数的逻辑关系,生成一个布尔值,且只可应用布尔值, :
    (1)短路
    当使用逻辑操作符时,会遇到一种现象,即一旦能够确定某个表达式的值,就不再计算表达式余下部分了。
    boolean b5=fun1(0)&&fun2(2)&&fun3(1);//短路 与,若有一个为false,则短路,后边不再输出;
    boolean b6=fun1(0)||fun2(2)||fun3(1);//短路或,若有一个为true,
    后边不再计算输出;
    输出结果:
    这里写图片描述

以下为完整代码(2):

package cxcf;
public class Day31 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // ++ 后置++ 前置++
        int a1=10;
        a1++;
        ++a1;//单个写没有任何区别
        int a2=a1++;//tmp=a2; a3=tmp; a2+1;
        int a4=++a2;//a2+1 a4
        System.out.println(a2);
        System.out.println(a4);

        //算余数
        System.out.println(10%3);
        System.out.println(-10%3);
        System.out.println(-10%-3);//取商取在绝对值以内
        System.out.println(10%-3);
        System.out.println("========");

        float f1=5/2;
        float f2=(float)5.0/2;
        float f3=(float)5/2;
        float f4=5/(float)2;
        System.out.println(f1);//5是int类型,取整   2.0
        System.out.println(f2);//2.5
        System.out.println(f3);//2.5
        System.out.println(f4);//2.5

        short sh=1;
        short sh2=(short)(sh+1);
        sh+=1;//sh=sh+1;-=  *=  /=
        //instanceof 比较类型
    }
}
  • 分解代码:
  • 算数操作符:
    加减乘除“+ - * / ”;
    算余数“%”;
    (10%3)、(-10%3)、(-10%-3)、(10%-3)这几种情况输出分别为“1 、-1、 -1 、1”;
    赋值号,将符号后的值赋给前面“=”;
    “+=、-=、*=、/=、%=”,a+=b;相当于a=a+b,其余同理;
  • 自动递增和递减“++ –”:
    a1++;和++a1;单个写没有任何区别;
    int a2=a1++;先赋值在加减;
    int a4=++a2;先加减再赋值。

  • 按位操作符
    “&”按位与:遇0为0;
    “|”按位或:遇1为1;
    “~”按位非:一元操作符;
    “^”按位异或:同为0,异为1;
    温馨提示:按位操作符可与(=)联合使用,“&=、|=、^=”,这样是合法的,由于”~”是一元操作符,所以不能与(=)联用。

  • 移位操作符:
    “<<”左移(低位补零):
    “>>”右移(若高位符号为为0,高位插入0,为1,则高位插入1);
    “>>>”无符号右移操作符(无论正负,高位插入0);
    这里写图片描述


补充:易出错点:
float f1=5/2; 输出为2,都是int类型;
float f2=(float)5.0/2; 输出为2.5;
float f3=(float)5/2;输出为2.5;
float f4=5/(float)2;输出为2.5;

short sh=1;
short sh2=(short)(sh+1);1是int类型,必须进行强转,否则会报错。

猜你喜欢

转载自blog.csdn.net/xyxy66/article/details/79840904