运算符,复制运算符,自增,自减,++,--,==,!=,+拼接字符串,三元运算符,比较运算符

5种运算符:

1.赋值运算符,2.算术运算符,3.比较运算符,4.逻辑运算符,5.三元运算符

在这里插入图片描述

2.算术运算符(自增和自减)

自增:
在这里插入图片描述
自减:
在这里插入图片描述
在企业中禁止使用自增和自减,并不能够保证原子性,要么这三步全走了,要么这三步全都不走,再多线程高并发的时候,自增和自减很容易出现问题。

特例

在这里插入图片描述
自增之后依旧是100,即使程序顺序运行到输出num++之后的值,也依旧是100,原因是存在变量缓存机制,即使循环100次自增,结果输出num还是原来的值100
在这里插入图片描述
在这里插入图片描述

+拼接字符串

只要出现字符串,那么之后的所有数字都将看做是字符拼接在一起,如果需要运算几个数字可以用括号括起来,括号的优先级比较高
在这里插入图片描述
在这里插入图片描述

3.比较运算符(比较运算符的结果是Boolean类型,只有true/false两种结果)

==是比较两个变量的地址值是否相等
!=是比较两个变量的地址值是否不等

在这里插入图片描述
不管是基本数据类型还是引用数据类型,比较的都是地址值

下图代码很重要

package com.javasm.deom;

/**
 * @author: JAVASM
 * @classNAME: YunSuanFu1
 * @description:
 * @date: 2021/3/26 10:31
 * @version:0.1
 * @since:1.8
 */
public class YunSuanFu1 {
    public static void main(String[] args) {
        //比较运算符
        int a=10;
        int b=10;
        //==比较的是地址值,a与b保存的数据都是10,因此在栈内存中的地址都是一样的, 都是储存10这个数据的内存单元的地址
        System.out.println(a==b);//true
        String str1="hello";
        String str2="hello";
        String str3=new String("hello");//用new开辟出来的字符串是一个对象,其存储在堆中,变量名依旧存储在栈中
        System.out.println(str1==str2);//true
        System.out.println(str1==str3);//false
        // Str3存储在堆中,str1存储在栈中,虽然两者存储的内容相同,但两者存储的位置不同,而变量名储存的就是地址值,因此两者不相等
        //很多时候我们要比较的并不是地址值,而是变量所存储的地址,该地址单元内存储的值或者说数据。String类为我们提供了equals功能,可以直接比较两个字符串内容
        // 比较数据equals();-------> 字符串1.equals(字符串2)
        System.out.println(str1.equals(str3));//进行内容比较,结果为true
        System.out.println(str1 != str3);//比较两个字符串地址值不同,结果为true
    }
}

内存示意图如下:
在这里插入图片描述

1.有时候可以直接把基本数据类型的比较看做是数据的比较,因为它们都存在于栈内存中,如果存储地址一样那么一定数据相等。

2.比较运算符的结果一定是Boolean类型,结果一定是true或者false。

4.逻辑运算符(短路与&&,逻辑与&,短路或||,逻辑或|)

在这里插入图片描述
代码演示如下:
在这里插入图片描述
位运算符&
在这里插入图片描述

位运算符|
在这里插入图片描述
位运算符^
在这里插入图片描述

5.三元(目)运算符(能使用三元运算符就用三元运算符,尽量不要使用if…else来写)

在这里插入图片描述

  1. 三元运算符的运算结果有多种,可能是整型,小数,布尔,字符,字符串,对象都是可以的。
  2. 必须用相同类型的变量来承接三元运算符得出的结果,或者使用比表达式类型高的数据类型来
    承接结果,因为低转高是数据类型自动转换。
  3. 语法组成:
   数据类型 变量 = (表达式boolean)?表达式1:表达式2;
   变量的类型肯定与表达式1/表达式2相似(比运算结果高的数据类型来承接结果)或者一致的类型。

三元运算符代码演示:
在这里插入图片描述
能使用三元运算符就用三元运算符,尽量不要使用if…else来写。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值