Java基础之运算符

简介: Java运算符包括算术、赋值、关系、逻辑、条件和类型等,如加减乘除、自增自减(前缀++n/后缀n++)、赋值(+/-/*/=等)、比较(==/!=/>/<等)、逻辑(&&/||/!)和三元运算符。自增前后缀的区别在于赋值顺序。初面常问:=与==的区别(赋值vs比较),==与equals()(引用vs内容比较),&&与&(短路逻辑与vs按位与)。

Java基础之运算符
我们上学的时候已经学过加减乘除等运算符,Java也提供了丰富的运算符,这些运算符按照功能可以分为以下几类:
1.算术运算符:用于执行基本的数学运算。
+(加法)| -(减法)|(乘法)| /(除法)| %(取模)| ++(自增)| --(自减)
自增和自减运算符用于将变量的值增加或减少1。
它们可以放在变量之前(前缀形式)或之后(后缀形式)。
前缀形式(++n)会先改变变量的值,然后返回改变后的值;
后缀形式(n++)会先返回变量的原始值,然后改变变量的值。
代码演示下:
int a = 10;
int b = 20;
int sum = a + b; // 加法
int diff = a - b; // 减法
int prod = a
b; // 乘法
int quot = a / b; // 除法
int mod = a % b; // 取模
2.赋值运算符:用于将值赋给变量。
=(赋值)
+=(加后赋值)a+=5;//等同于a=a+5
-=(减后赋值)同理,a-=5;//等同于a=a-5
*=(乘后赋值)
/=(除后赋值)
%=(取模后赋值)
<<=(左移后赋值)

  >>=(右移后赋值)
  &=(按位与后赋值)
  ^=(按位异或后赋值)
  |=(按位或后赋值)
  这个左移右移位的我也不会,看着都头疼,这么多年也没用过忽略了吧,管求她呢。
3.关系运算符:用于比较两个值,并返回一个布尔结果。
  ==(等于)
  !=(不等于)
  >(大于)
  <(小于)
  >=(大于等于)
  <=(小于等于)
  boolean isEqual = (a == b); // 判断a是否等于b
4.逻辑运算符:用于组合多个条件,并返回一个布尔结果。
  &&(逻辑与)
  ||(逻辑或)
  !(逻辑非)
  boolean a = true;
  boolean b = false;
  boolean result = a && b; // 逻辑与运算
5.条件运算符(三元运算符):根据条件返回两个值中的一个。
  语法:
  条件 ? 值1 : 值2
  这个常用啊,经常用它来简写代码:
  int max = (a > b) ? a : b;
  其实这个就等同于:
  // 如果a大于b,则max等于a,否则等于b
  int max;
  if(a > b){
    max = a;
  }else{
    max = b;
  }
  System.out.println("a和b最大值:" + max);
6.类型运算符:用于检查对象是否是指定类型的实例。
  instanceof 这个我们在关键字那一篇见过哈
  语法:
  Object obj = "Hello";
  boolean isString = obj instanceof String; // 检查 obj 是否是 String 类的实例
  System.out.println("obj 是否是 String 类的实例:" + isString );
7.位运算符:用于操作整数类型的二进制位。 哎呀,这玩意一直没细看过,有兴趣研究吧,我列出来不研究。
  &(按位与)
  |(按位或)
  ^(按位异或) 这个用过,可以加密图片,叫异或操作。
  ~(按位非)
  <<(左移)前面说了,这个我不会
  >>(右移)这个一样不会
  >>>(无符号右移)更不会
  这些运算符通常用于底层编程,如网络协议、加密算法等,我是没写过。
就是这些了,基本上和数学学过的差不多。
主要是那个自增的前后缀可能混淆:a++和++a,我们用代码再说明一次:
int num1 = 5;
int result1 = ++num1; // num1变成6,result 也是 6, 计算是 num1 = 5+1=6,result1=6,num1先变得6哦
int num2 = 5;
int result2 = num2++; // result2是6,然后num2变成6,计算是result2=num1+1,先给了result2,num2成了6哦
也就是说原始值+1的顺序不一样,想不明白就不用想了,不重要。

初级面试有时候会问这些问题:
赋值运算符 = 和 == 有什么区别? 
= 是赋值运算符,用于将右侧的值赋给左侧的变量。
== 是关系运算符,用于比较两个变量的值是否相等。

那== 和 equals() 方法有什么区别?
== 运算符用于比较两个对象的引用是否相同,即它们是否指向内存中的同一个对象。
equals()方法则是用来比较两个对象的内容是否相同,这个后面面向对象的时候学。

逻辑运算符 && 和 & 有什么区别? 
逻辑运算符 && 和 & 都表示逻辑与,但是它们在行为上有一个关键的区别:
&&(逻辑与):也称为短路逻辑与。如果第一个操作数为 false,那么第二个操作数将不会被评估,因为整个表达式的结果已经确定为 false。这被称为短路行为,因为它缩短了评估的路径。这种行为对于避免执行不必要的计算或可能引发异常的操作非常有用。
在处理布尔逻辑时,通常使用 && 而不是 &,因为 && 提供的短路行为可以提高代码的效率和安全性。然而,当需要对整数进行按位与操作时,只能使用 &。

其他的想不到了,就这吧,最讨厌数学了。

END
目录
相关文章
|
7天前
|
安全 Java 测试技术
day16:Java零基础-instanceof 运算符
【7月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
21 8
|
9天前
|
Java 测试技术
day14:Java零基础-条件运算符
【7月更文挑战第14天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
19 3
|
8天前
|
Java 测试技术 开发者
day15:Java零基础-赋值运算符
【7月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
9 1
|
1月前
|
Java
哇塞!Java 基本语法的运算符,你真的懂了吗?算术运算符篇
【6月更文挑战第14天】Java中的算术运算符是编程基础,包括加法`+`(用于数字相加和字符串拼接)、减法`-`、乘法`*`、除法`/`(需防除数为零)和取余`%`。它们在计算位移、周期性问题等场景中广泛应用。理解并熟练掌握这些运算符,能提升编程效率和代码质量。现在就开始实践,发掘它们的更多可能性吧!
|
1月前
|
Java 程序员 API
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
|
1月前
|
算法 Java
炸裂!Java 基本语法的运算符世界,等你来探索!算术运算符特辑
【6月更文挑战第14天】Java中的算术运算符是基础关键,如加法&quot;+&quot;用于数字相加和字符串拼接,减法&quot;-&quot;求差,乘法&quot;*&quot;相乘,除法&quot;/&quot;注意整数除法会舍去小数,浮点数则保留,取模&quot;%&quot;)返回除法余数。熟练掌握这些运算符能提升编程效率,构建复杂逻辑。继续探索Java运算符世界,创造更多精彩程序!
|
25天前
|
存储 Java
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
21 0
|
25天前
|
Java
Java中的左移运算符及其在实现加法效果上的应用
Java中的左移运算符及其在实现加法效果上的应用
12 0
|
2月前
|
Java
JAVA运算符详解与实战应用
JAVA运算符详解与实战应用
24 3
|
2月前
|
Java 数据处理
Java的运算符与表达式详解
Java的运算符与表达式详解
24 1