JavaSE的运算符

[Top]

算术运算

分类 运算符
算数运算符 * / + - % ++ --
赋值运算符 +=, -=, /=, *=, %=(扩展赋值运算符), =
比较(关系)运算符 == != > <= >= instanceof
逻辑运算符 & && | || ! ^
位运算符 ~ & | >> << >>>
条件运算符 (条件表达式)? 表达式1:表达式2

算数运算符

1.‘+’

  • 表示正数
  • 进行加法运算(数值+数值,数值+‘字符’,‘字符’+‘字符’)
  • 连接作用 (字符串+字符串,字符串+数值......字符串+其他)=字符串

2.‘-’

  • 表示负数
  • 减法运算(数值-数值,数值-‘字符’,‘字符’-‘字符’)
  • 注:字符串没有减法

3.‘*’

4.‘/’

5.‘++’

  • ++数值:先++再赋值y=x++ +3;//x+3
  • 数值++:先赋值再++y=++x+3;//x+1+3

6.‘--’

7.‘%’

  • 两边为整数

  • 与++同理

赋值运算符 ('=')

  • 将等号右边的值赋值给等号左边

下面举一个特殊的例子:

short s = 3;
s=s+2; ①会出错,因为2为int型
s+=2; ②是对的,+2后会进行隐式转换为s对应的数据类型/= ,*=,-=,%=同理

1688960932459

1688961030282

注:两边数据类型必须一致

比较运算符(结果为true与false)

1.'=='

判断两边数值是否相等(基本类型与基本类型),Boolean与Boolean进行比较,String与String进行比较(引用类型与引用类型),

注意 字符串自己不能比较大小,Boolean与Boolean不能比较大小

2.'!='

数值!=数值,bool!=bool,string!=string;

3.'>'和'<'

数值与数值,字符与数值,字符与字符

4.'>='与'<='

与3同理

5.instanceof

判断左边类型是否与右边类型一致

package homeworkday7.chouxiang;

public class Test {
    public static void main(String[] args) {
        Cuiweiyang dqw=new Dengqinwen();
        Cuiweiyang dqw2=new Dengqinwen2();
        Person zs = new Person();
          dqw.sleep();
          dqw2.sleep();
          Dengqinwen dqw3=(Dengqinwen) dqw;
          zs.feed(dqw3);
    }
}
package homeworkday7.chouxiang;

public class Person {
    public void feed(Cuiweiyang cuiweiyang){
        cuiweiyang.eat();
        if(cuiweiyang instanceof Dengqinwen){//判断cuiweiyang是否与Dengqinwen是一个类型
            System.out.println("转换为Dengqinwen成功!");
        }
    }
}

1689579249022

逻辑运算符

1.& 逻辑与

所有表达式结果为true,结果为true ,否则false

特点:当第一个表达式为false时,还会去继续执行第二个式子

2.&& 逻辑与/短路与

所有表达式结果为true,结果为true ,否则false

特点:当第一个结果为false时,不会再继续执行第二个式子

int a=1;
        int b=2;
        int c=3;
        System.out.println(a>b&(b++)>c);
        System.out.println(b);
        b=2;
        System.out.println(a>b&&(b++)>c);
        System.out.println(b);
false
3
false
2

3.| 逻辑或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,还会去继续执行第二个式子

4.|| 逻辑或/短路或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,不会去继续执行第二个式子

int a=1;
        int b=2;
        int c=3;
        System.out.println(a<b|(b++)>c);
        System.out.println(b);
        b=2;
        System.out.println(a<b||(b++)>c);
        System.out.println(b);
true
3
true
2

5.! 逻辑非

!true = false,!false = true;

6.^ 逻辑异或

相同为false 不同为true

条件运算符

(条件表达式)? 表达式 1 : 表达式2

若 条件表达式 为true 去执行表达式 1 ,否则执行表达式 2;

位运算符

1.<< 左移

空位补0,被移除的最高位丢弃,空缺位补0

int a=7;
        int b=4;
        System.out.println(b<<2);
        //0000 0100 4
        //0001 0000 16

2.>> 右移

被移位的二进制最高位是0,右移后,空缺位补0,最高位是1,空缺位补1

        int b=4;
        System.out.println(b>>2);
        //0000 0100 4
        //0000 0001 1

3.>>> 无符号 右移

被移位二进制最高位无论是0还是1,空缺位都用0补

正数

        int b=4;
        System.out.println(b>>>2);
        //0000 0100 4
        //0000 0001 1

负数

		int b=-4;
        System.out.println(b>>>2);
        /*
            0111 1111 1111 1111 
            1111 1111 1111 1100 -4
         */
        /*
            0011 1111 1111 1111
            1111 1111 1111 1110 1073741823
         */

4.& 与

对应两位都为1,则结果为1,否则0

		int a=2;
        int b=4;
        System.out.println(a&b);
        /*
            0000 0010 2
            0000 0100 4 &
            0000 0000
         */

5.^ 异或

对应两位都相等,则结果为0,否则1

		int a=2;
        int b=4;
        System.out.println(a^b);
        /*
            0000 0010 2
            0000 0100 4 ^
            0000 0110
         */

6.| 或

对应两位都为0,则结果为0,否则1

		int a=2;
        int b=4;
        System.out.println(a|b);
        /*
            0000 0010 2
            0000 0100 4 |
            0000 0110
         */

7.~ 非

对所有位取反 1~0 0~1

		int a=2;
        int b=4;
        System.out.println(~a);
        /*
            ~0000 0010 2
             1111 1101 -3(最高位为1)
         */

注:使用byte类型移位时,系统会自动换为int进行位运算

posted @   Yang0710  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
世间美好与你环环相扣 - 柏松
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 尹初七

作曲 : 柏松

编曲 : 彭圣杰

偏偏秉烛夜游

偏偏秉烛夜游

午夜星辰 似奔走之友

爱你每个结痂伤口

酿成的陈年烈酒

入喉尚算可口

入喉尚算可口

怎么泪水 还偶尔失守

邀你细看心中缺口

裂缝中留存 温柔

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

让樱花偷偷 吻你额头

让世间美好 与你环环相扣

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

当樱花开的纷纷扬扬

当世间美好 与你环环相扣

特别鸣谢:槿葵,我们的海报制作妹妹。

原唱:柏松

吉他:柏松

和声:柏松

录音:柏松

混音:张强

点击右上角即可分享
微信分享提示