java基础-操作符

操作符相关知识点

在这里插入图片描述

1.优先级

最开始的优先级在我们脑子里大概就是先乘除后加减
我们来看看在ava操作符的优先级是怎么样的:

优先级运算符结合性
1()、[]从左向右
2!、+、-、~、++、–从右向左
3*、/、%从左向右
4+、-从左向右
5«、»、>>>从左向右
6<、<=、>、>=从左向右
7==、!=从左向右
8&从左向右
9^从左向右
10|从左向右
11&&从左向右
12||从左向右
13?:从右向左
14=、+=、-=、*=、/=、&=、=、^=、~=、«=、»=、>>>=从右向左

2.算数操作符

  1. 加号(+)
  2. 减号(-)
  3. 除号(/)
  4. 乘号()
    这四个都可以与赋值=组合使用 +=、 -=、 /=、
    =
    这里需要注意的是,很多时候我们在使用字符串拼接的时候喜欢使用+=,当我们使用+=去拼接字符串的时候,我们有没有想过底层是如何实现的,什么情况可以使用,什么情况要避免使用它。
我们动手来看看它的底层实现

第一步我们先来看下这段代码

		String str2 = "";
		 str2 += "str";
		System.out.println(str2);

我这里就当大家都有java环境
先编译 javac StringDemo.java 生成StringDemo.class
再用javap -c StringDemo.class来看看这个文件
在这里插入图片描述
那在循环里面会怎样呢

		String str = "";
		for (int i = 0; i < 10; i++) {
			str += i;
		}
		System.out.println(str);

在这里插入图片描述
一次循环一个StringBuilder对象,在循环拼接字符串的时候,建议使用一下方式

		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < 10; i++) {
			sb.append(i);
		}
		System.out.println(str);

这里就使用了一个StringBuilder对象,这里底层的代码我就不贴出来了,大家可以动手试试,多动手才是关键。
快捷运算 :-- ++
快捷运算符在前面 表示先运算再生成值
在后面的话 就是先生成值再运算

3.关系操作符

关系操作符生成的是boolean类型的结果,也就是关系表达式的成立与否
例如:(1 == 0) 、(2 >= 1)

4.逻辑操作符

  • 与 && 两个都为真才结果为真
  • 或 || 两个有一个为真就结果为真
  • 非 ! 结果取反
    根据参数的逻辑关系 生成一个boolean类型的结果
    我们需要注意的是或||,当它进行多个逻辑关系关联的时候,按顺序执行判断,
    当一个逻辑关系成立,后面的逻辑关系不再继续 ,称为“短路”

5.位操作符

按位操作符会对两个参数二进制对应位进行运算

  • 与 & 相同为一 不同为零
  • 或 | 两个中有一个为一 则为一 否则为零
  • 非 ~ 与其它几个不同 非只针对一个操作数 进行取反操作
  • 异或 ^ 两个中有一个为一 但不全为一 则为一 否则为零
    这里有个点值得注意:
    判断奇偶数的时候: (x & 1) == 0 效率高很多
    等于0则说明x是偶数,1的最低位是1其它都为0,只有x的最低位是0,x&1才会等于0

6.位操作符

针对的也是二进制数
针对的也是二进制数
<< 左移操作符 按照符号右边的数值 对二进制数向左移动对应的位数 低位补零
>> 右移操作符 按照符号右边的数值 对二进制数向右移动对应的位数 右移有符号位 符号位为正 高位补零 符号位为负则高位补一
>>>无符号右移操作符 按照符号右边的数值 对二进制数向右移动对应的位数 不管正负 高位都是补零
如何取得int类型-1的二进制数
这里我们可以复习一波:
1、先取-1的原码:10000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110(除符号位按位取反)
3、得补码: 11111111 11111111 11111111 11111111

7.三元操作符

三元表达式的格式:[条件语句] ? [表达式1] : [表达式2];
条件语句是一个结果为boolean的逻辑表达式,当条件为真是则表达式1有效,否则表达式2有效,类似下面:

		if(条件语句){
			
		}else{
			
		}

作者:sheepherder
出处:https://blog.csdn.net/weixin_45157630
版权所有,欢迎保留原文链接进行转载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值