编程思想基础知识学习(Java 操作符)

本文深入解析Java中的操作符,包括自增自减、关系、按位及移位操作符的使用与区别,通过实例演示equals与==在对象比较中的作用,并详细解释了Integer类中equals方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

++ – 自动递增或者自减 操作符
先执行++ 运算在执行输出语句
先把值传给输出语句后执行++

 int i = 1;
        //System.out.println("i++:" + i++);
        System.out.println("++i:" + ++i);// 2
        System.out.println("++i:" + i++);// 2
        //System.out.println("++i:" + ++i);

关系操作符
equels 和 == 的区别

 Integer integer = new Integer(2);
        Integer integer1 = new Integer(2);
        System.out.println(integer == integer1);// false
        System.out.println(integer != integer1);//ture
        System.out.println(integer.equals(integer1));// ture

自建Java类 未实现equals() 方法

 value v = new value();
        value v1 = new value();
        System.out.println(v == v1);// false
        System.out.println(v != v1);//ture
        System.out.println(v.equals(v1));// false

== 比较的是对象的引用;equals 比较的是对象的内容
下边是Integer 中实现equals方法
public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }
对比下边的描述可能更容易理解

value v2 = new value();
        value v3 = v2 ;
        System.out.println(v2 == v3);// true
        System.out.println(v2 != v3);//false
        System.out.println(v2.equals(v3));// true

按位操作符
&
两个输入位都是1才是1

 int a = 0x16;
        int b = 0x12;
        System.out.println("二进制"+ Integer.toBinaryString(a));
        System.out.println("a : "+ a);
        System.out.println("二进制"+ Integer.toBinaryString(b));
        System.out.println("b : " + b);
        System.out.println("& : "+ Integer.toBinaryString(a&b));
        System.out.println("b : " + (a & b));

执行结果

二进制10110
a : 22
二进制10010
b : 18
& : 10010
b : 18

|
两个输入位都为零才是零

 int a = 0x16;
        int b = 0x12;
        System.out.println("二进制"+ Integer.toBinaryString(a));
        System.out.println("a : "+ a);
        System.out.println("二进制"+ Integer.toBinaryString(b));
        System.out.println("b : " + b);
        System.out.println("| : "+ Integer.toBinaryString(a|b));
        System.out.println("b : " + (a | b));

运行结果如下:

二进制10110
a : 22
二进制10010
b : 18
& : 10110
b : 22

^
如果输入的位有一个为1 但不全是1则输出位为1

 int a = 0x16;
        int b = 0x12;
        System.out.println("二进制"+ Integer.toBinaryString(a));
        System.out.println("a : "+ a);
        System.out.println("二进制"+ Integer.toBinaryString(b));
        System.out.println("b : " + b);
        System.out.println("| : "+ Integer.toBinaryString(a^b));
        System.out.println("b : " + (a ^ b));

执行结果如下

二进制10110
a : 22
二进制10010
b : 18
^ : 100
b : 4

移位操作符

移位操作符只用来处理整数类型
左移位操作符 :<<
有符号右移操作符:>>
无符号右移操作符 : >>>

 int a = 0x16;
        System.out.println("二进制"+ Integer.toBinaryString(a));
        System.out.println("a : "+ a);
        int i = a >> 2;
        System.out.println("右移有符号"+ Integer.toBinaryString(i));
        System.out.println("i : "+ i);

        int j = (-a) >>> 2;
        System.out.println("查看-22: "+ Integer.toBinaryString(-a));

        System.out.println("右移无符号"+ Integer.toBinaryString(j));
        System.out.println("j : "+ j);
        int k = a << 2;
        System.out.println("左移"+ Integer.toBinaryString(k));
        System.out.println("k : "+ k);

执行结果如下

二进制10110
a : 22
右移有符号101
i : 5
查看-22: 11111111111111111111111111101010
右移无符号111111111111111111111111111010
j : 1073741818
左移1011000
k : 88
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值