博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运算符,复制运算符,自增,自减,++,--,==,!=,+拼接字符串,三元运算符,比较运算符
阅读量:3941 次
发布时间:2019-05-24

本文共 1785 字,大约阅读时间需要 5 分钟。

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来写。

转载地址:http://xznwi.baihongyu.com/

你可能感兴趣的文章
1.嵌入式开发环境搭建--虚拟机安装(unbutu)系统
查看>>
2.嵌入式开发环境搭建--(unbutu)系统
查看>>
Linux USB驱动分析之USB2.0协议分析
查看>>
关于iwpriv :no private ioctls 的问题
查看>>
SQL Server Union等操作时解决不同数据库字符集冲突的问题
查看>>
Linq GroupJoin(二)
查看>>
递归:访问页面的控件或文件夹的下文件
查看>>
DataGridView分頁控件
查看>>
Linq 使用entity framework查询视图返回重复记录的问题(转)
查看>>
项目中得到执行文件版本或其它信息
查看>>
WinForm DatagridView绑定大量数据卡顿的问题
查看>>
DataGridView或 DataTable导出到excel
查看>>
Ilist To DataTable
查看>>
SQL @@IDENTITY, IDENT_CURRENT,SCOPE_IDENTITY
查看>>
簡單工廠模式
查看>>
SQL Server的數據類型
查看>>
允許文本框輸入數字,退格鍵,小數點,負號
查看>>
SOLR的一些错误
查看>>
Linux下python升级步骤
查看>>
关于mongodb ,redis,memcache
查看>>