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
目录
相关文章
|
8天前
|
Java
Java运算符
Java运算符
37 12
|
2月前
|
Java 测试技术 数据处理
Java零基础教学(17):Java运算符详解
【8月更文挑战第17天】Java零基础教学篇,手把手实践教学!
45 4
|
1月前
|
Java 测试技术 程序员
Java零基础(23) - Java赋值运算符,了解一下!
【9月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 11
|
2月前
|
Java 测试技术 计算机视觉
Java零基础(18) - Java运算符,了解一下!
【8月更文挑战第18天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
30 5
|
2月前
|
Java
【Java 第三篇章】注释、数据类型、运算符
【8月更文挑战第2天】 Java支持三种注释:单行(`//`)、多行(`/*...*/`)及文档注释(`/**...*/`)。它定义了八种基本数据类型,包括四种整数类型(`byte`、`short`、`int`、`long`),两种浮点类型(`float`、`double`),一种字符类型(`char`)和一种布尔类型(`boolean`)。数据类型之间可以自动转换或通过强制转换改变,但后者可能导致精度损失。Java中的运算符涵盖算术(如`+`、`-`)、赋值(如`=`)、比较(如`==`)、逻辑(如`&&`)和三目运算符等。例如,算术运算可用于执行基本数学计算,而逻辑运算符用于组合条件判断。
15 1
|
2月前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(下)
02 Java基础语法(变量+数据类型+运算符)
22 5
|
1月前
|
Java 测试技术 开发者
Java零基础(24) - Java条件运算符,了解一下!
【9月更文挑战第3天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
21 0
|
2月前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(上)
02 Java基础语法(变量+数据类型+运算符)
42 4
|
3月前
|
安全 Java 测试技术
day16:Java零基础-instanceof 运算符
【7月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 8
|
3月前
|
Java 测试技术
day14:Java零基础-条件运算符
【7月更文挑战第14天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
32 3
下一篇
无影云桌面