Java学习笔记4_运算符

运算符

1、算术运算符

1、算术运算符包括:+、-、*、/、%、前++、后++、前–、后–、连接符+
2、取余运算中,结果的符号与被模数的符号相同,开发中经常使用%来判断是否被除尽的情况,举例如下:

class Compulate_tem{
	public static void main(String[] args){
		int n1 = 12;
		int n2 = 5;
		System.out.println("n1 % n2 = " + n1 % n2);
		
		int n3 = -12;
		int n4 = 5;
		System.out.println("n3 % n4 = " + n3 % n4);
		
		int n5 = 12;
		int n6 = -5;
		System.out.println("n5 % n6 = " + n5 % n6);
		
		int n7 = -12;
		int n8 = -5;
		System.out.println("n7 % n8 = " + n7 % n8);
	
	}
}

运行结果:
在这里插入图片描述
3、前++:先自增1,后参与运算
    后++:先参加运算,后自增1
    前–:先自减1,后参与运算
    后–:先参加运算,后自减1
    自增或自减不会改变本身变量的数据类型(效率高,推荐使用)

2、赋值运算符

1、赋值运算符 (推荐使用) :=、+=、-=、*=、/=、%=
2、例子:num1 += 2(num1 = num1 + 2)
3、运算时不会改变变量本身的数据类型,举例如下:
在这里插入图片描述
在这里插入图片描述

3、比较运算符

1、比较运算符:==、!=、>、<、>=、<=、instanceof(多态时学习)
2、重点区分 == 和 =,举例如下:

class Compare1{
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		
		System.out.println(i == j); //false
		System.out.println(i = j); //20
		
		boolean b1 = true;
		boolean b2 = false;
		
		System.out.println(b1 == b2); //false
		System.out.println(b2 = b1);//true
		
	}
}

运行截图:
在这里插入图片描述
3、注意: ①、比较运算符的结果是boolean类型
          ②、>、<、>=、<=只能使用在数值类型之间
          ③、==和!=:不仅可以在数值类型之间使用,还可以在引用类型变量之间使用。

Account acct1 = new Account(1000);
Account acct2 = new Account(1000);
boolean b1 = (acct1 == acct2);// 比较两个Account是否是同一个账户
boolean b2 = (acct1 != acct2);

4、逻辑运算符

1、逻辑运算符:

aba&ba&&ba | ba||b!aa^b
turetruetruetruetruetruefalsefalse
turefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

2、区分& 与 &&
相同点1:& 与 &&的运算结果相同
相同点2:当符号左侧是true时,二者都会执行符号右侧的运算
不同点:当符号左侧是false时,&继续执行符号右侧的运算、&&不会继续执行符号右侧的运算。
开发中,推荐使用&&
3、|与|| 和 &与&& 的异同点相似,开发中,推荐使用||
4、逻辑运算符操作的都是boolean类型的变量,而且结果也是boolean类型

5、位运算符

1、位运算符:<<、>>、>>>、&、|、^、~
2、提问:你能否写出最高效的 2 * 8 的实现方式以及原因(空间复杂度),可以写入评论区
3、位运算符操作的是整型的数据
4、<<:在一定范围内,每左移一位,相当于*2;
   >>、在一定范围内,每右移一位,相当于/2;
5、编程题:如何求一个0~255范围内的整数的十六进制,例如60的十六进制表示形式3C
答:

class Transform{
	public static void main(String[] args){
		int i1 = 60;
		//取i1二进制表达式的后四位
		int i2 = i1 & 15;
		
		String j = (i2 > 9) ? (char)(i2-10 + 'A')+"" : i2+"";
		
		int temp = i1 >>> 4;
		i2 = temp & 15;
		
		String k = (i2 > 9) ? (char)(i2-10 + 'A')+"" : i2+"";
		
		System.out.println(k + "" + j);
	}
}

运行结果截图:
在这里插入图片描述

6、三元运算符

1、结构:(条件表达式)? 表达式1:表达式2
2、条件表达式的结果为boolean类型,如果表达式的结果为true,则执行表达式1,否则执行表达式2。
3、表达式1和表达式2的要求是一致的
4、三元运算可以改写成if-else语句,但是在开发中有优先选择三元运算符,原因是简洁,执行效率高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值