4-咸鱼学Java-Java简单的运算符

运算符顺序

这里写图片描述

[]运算符

    int[] array = {1,2,3,4}; //[] 声明一个数组
    array[0] = 2; //[] 属性获取,下标所指内容
    System.out.println(array);  
    System.out.println(array[2]);
    int length = array.length;  //获取数组长度
    System.out.println(length);

运行结果
这里写图片描述
.运算符
这里写图片描述
()运算符
在算数逻辑里面遇到()要先运算()内的,在其他地方比如函数,()内的为形参列表。
!运算符
!运算符进行非运算

    boolean t = true;
    System.out.println(!t);

结果为 false。
~运算符
~运算符用于按位取反。

    short i = 11;
    System.out.println(~i);

这里写图片描述

++运算符

    //  ++ 后置++  前置++
    int a = 10;
    int a1 = a++;   // //temp = a; a ++; a1=temp;
    int a2 = ++a;   // a++;  a2=a;
    System.out.println(a1);
    System.out.println(a2);

a++在运算时候,先取当前a的值,再进行自加操作。
++a在运算时候,先进行自加,再取当前的值。
- -运算符
、- -运算和++运算类似
/,*,%运算符
/运算符为除法运算,当两个数都为Int型的时候,为整除;当两个数之中有一个double或者float类型的时候,为算数除法。

    double s = 14/3;
    System.out.println(s);
    s = 14.0/3;
    System.out.println(s);

结果为
这里写图片描述
*运算符就是算数运算符中的X,运算规则也一样。
%运算符为取余运算符,其计算的两个数都必须为Int型。

    int s = 10%3;
    System.out.println(s);

结果
这里写图片描述

+,-运算符
+ - 运算符和数学中的+ - 相同
<<,>>,>>>运算符
<<运算符为左移位
每左移一位结果大多情况等于原数乘2。

    byte s = 11;
    System.out.println((byte)(s<<1));

结果为22。
原因是
这里写图片描述
在位数不足的情况下可能变成负数

    byte s = 11;
    System.out.println((byte)(s<<4));

结果我-80
原因为short只有8位,在左移过程中可能变成负数。
这里写图片描述

.>>运算符为右移位
每右移1为结果大约为整除2。

    byte s = 11;
    System.out.println((byte)(s>>1));

结果为5。
原因为
这里写图片描述
在位数不足的情况下可能变成0。

    byte s = 11;
    System.out.println((byte)(s>>4));

结果为0
原因为
这里写图片描述

.>>>运算符为无符号右移
相对于>>,>>>在右移的时候高位全部补0,所以对于正数来说>>和>>>没有区别,对于负数来说

    int s=-1;
    System.out.println(-1>>>1);
    System.out.println(Integer.MAX_VALUE);

结果都为2147483647(int的最大值)
在其为-1时,无符号右移一位等于获取了其最大值。
原因
这里写图片描述
<,<=,>,>=,instanceof运算符
<,<=,>,>=皆为比较运算符,结果为boolean值。
Instanceof为比较类的一种运算符。

    //instanceof  只能比较类(引用)  左边操作类声明的类型与右边操作类必须是同种类或有继承关系
    String s=new String("javaisland");
    String a = "ssss";
    if(a instanceof String)
    {
    }

必须要有继承关系,不然java编译会不通过。

==,!=运算符
.==,表示的是是否相等,也是比较运算符,但是这个运算符在比较类的时候,比较的是类的引用。
!= 同上
&运算符
&运算符为按位与(1 1为1,其余为0),也为非中断式与。

public static void main(String[] args) {
    byte a = 11;
    byte b = 0;
    //按位与
    System.out.println(a&b);
    //非中断式与
    System.out.println(f1()&f2()&f3());
}
private static boolean f1() {
    System.out.println("f1");
    return true;
}
private static boolean f2() {
    System.out.println("f2");
    return false;
}
private static boolean f3() {
    System.out.println("f3");
    return true;
}

结果为

0
f1
f2
f3
false

两个数与为0的原因为
这里写图片描述
打印出来f1,f2,f3的原因为,非中断式与在碰到false的时候并不会停止执行。

^运算符
^按位异或(一样的位0,不一样的为1)

    byte a = 11;
    byte b = 0;
    //按位异或
    System.out.println(a^b);

这里写图片描述

|运算符
| 按位或(见1为1),也为非中断式或。

    public static void main(String[] args) {
    byte a = 11;
    byte b = 0;
    //按位或
    System.out.println(a|b);
    //非中断或
    System.out.println(f1()|f2()|f3());
}
private static boolean f1() {
    System.out.println("f1");
    return true;
}
private static boolean f2() {
    System.out.println("f2");
    return false;
}
private static boolean f3() {
    System.out.println("f3");
    return true;
}

结果为

11
f1
f2
f3
true

按位或结果为11的原因为。
这里写图片描述
打印出来f1,f2,f3的原因为,非中断式或在碰到true的时候并不会停止执行。

&&运算符
中断式与,在碰到false的时候,后面的不执行

public static void main(String[] args) {
    System.out.println(f1()&&f2()&&f3());
}
private static boolean f1() {
    System.out.println("f1");
    return true;
}
private static boolean f2() {
    System.out.println("f2");
    return false;
}
private static boolean f3() {
    System.out.println("f3");
    return true;
}

结果

f1
f2
false

||运算符
中断式或,在碰到true的时候,后面的不执行。

public static void main(String[] args) {
    System.out.println(f1()||f2()||f3());
}
private static boolean f1() {
    System.out.println("f1");
    return true;
}
private static boolean f2() {
    System.out.println("f2");
    return false;
}
private static boolean f3() {
    System.out.println("f3");
    return true;
}

结果

f1
true

?:运算符

System.out.println(1>2?1:2);

结果

2

表达式?结果1:结果2
如果表达式为真,输出结果1,负责为2。

混合赋值运算符
+=,-=,*=。。。。。。

    //以+=为例子
    int i =0;
    i += 1;
    System.out.println(i);

    int t = 0;
    t = t+1;
    System.out.println(t);

上面的代码等于下面的代码,只是混合赋值运算符减少了一些代码的书写。

其他
函数简介

    //int 当前方法的返回值
    //Max2 函数名
    //(int a,int b) 形式参数
    //{  方法体  }
    //return 返回值
    public static int Max2(int a,int b)
    {
        if(a>b)
        {
            return a;
        }
        else
        {
            return b;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值