本文共 1785 字,大约阅读时间需要 5 分钟。
1.赋值运算符,2.算术运算符,3.比较运算符,4.逻辑运算符,5.三元运算符
自增:
自减: 在企业中禁止使用自增和自减,并不能够保证原子性,要么这三步全走了,要么这三步全都不走,再多线程高并发的时候,自增和自减很容易出现问题。只要出现字符串,那么之后的所有数字都将看做是字符拼接在一起,如果需要运算几个数字可以用括号括起来,括号的优先级比较高
==是比较两个变量的地址值是否相等 !=是比较两个变量的地址值是否不等
不管是基本数据类型还是引用数据类型,比较的都是地址值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。
位运算符|
位运算符^数据类型 变量 = (表达式boolean)?表达式1:表达式2; 变量的类型肯定与表达式1/表达式2相似(比运算结果高的数据类型来承接结果)或者一致的类型。
三元运算符代码演示:
能使用三元运算符就用三元运算符,尽量不要使用if…else来写。转载地址:http://xznwi.baihongyu.com/