栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java运算符

java运算符
  • 1.概述
  • 2.算术运算符
  • 3.自增自减运算符
  • 4.关系运算符
  • 5.逻辑运算符
  • 6.赋值运算符
  • 7.条件运算符
  • 附:Java运算符优先级

1.概述

计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符
  • 位运算符

2.算术运算符
操作符描述
+相加运算符两侧的值
-左操作数减去右操作数
*相乘操作符两侧的值
/左操作数除以右操作数
%左操作数除以右操作数的余数(计算公式:a-a/b*b)(当a是一个小数时,公式:a-(int)a/b*b)
++操作数的值增加1
–操作数的值减少1

3.自增自减运算符

前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算

后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算

示例:

// 自增自减运算符
int a = 10;
int b = 20;
int c = a++;
int d = ++b;
System.out.println(c);
System.out.println(d);
----------------------------
输出:
10
21

面试真题:

1.阅读以下代码,该代码将输出什么?

int i = 1;
i = i++;
System.out.println(i);
-----------------------------
输出:
1
原因:规则使用临时变量,temp = i; i = i + 1; i = temp;
导致i的值还是1

2.阅读以下代码,该代码将输出什么?

int j = 1;
j = ++j;
System.out.println(j);
-------------------------
输出:
2

4.关系运算符
运算符描述
==检查如果两个操作数的值是否相等,如果相等则条件为真
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真

5.逻辑运算符
操作符描述
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真
ll称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真
!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false

真值表:

有时代码中会出现非短路逻辑运算符的写法(单个&或|),他们的区别是:如果第一个操作数已经可以判断结果,那么短路逻辑运算符将跳过第二个操作数,而非短路逻辑运算符则不会跳过,效率较低


6.赋值运算符

下面是Java语言支持的赋值运算符:

操作符描述
=简单的赋值运算符,将右操作数的值赋给左侧操作数
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
(%)=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<<=左移位赋值运算符
>>=右移位赋值运算符
&=按位与赋值运算符
^=按位异或赋值操作符
l=按位或赋值操作符

示例:

// 赋值运算符
int k = 1;
int l = 2;
k += l;
System.out.println(k);
---------------------
输出:
3

复合赋值运算符底层会进行一个强制的类型转换,所以以下代码是正确的:

byte m = 1;
m += 2;
System.out.println(m);

7.条件运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

variable x = (expression) ? value if true : value if false

示例:

// 三元运算符
int n , o;
n = 10;
// 如果 n 等于 1 成立,则设置 o 为 20,否则为 30
o = (n == 1) ? 20 : 30;
System.out.println( "Value of o is : " +  o );
-------------------------------
输出:
Value of o is : 30

底层其实是if-else语句


附:Java运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号