运算符(2)有哪些具体类型?

2026-05-19 13:221阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1587个文字,预计阅读时间需要7分钟。

运算符(2)有哪些具体类型?

运算符算术运算符的补充作用:+ 表示正数(省略正字)+ 表示相加操作+ 用于字符串的拼接:符号左右两侧任意一侧为字符串,则该符号具有字符串拼接的作用,结果一定是字符串

运算符 算术运算符补充

+的作用:

  1. 表示正数(省略不写)
  2. 表示相加操作
  3. 进行字符串的拼接:+号左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串

代码练习:

public class TestOpe{ public static void main(String[] args){ //表示正数: System.out.println(+5);//5 //相加操作: System.out.println(5+6);//11 System.out.println(5+'6');//59 //字符串的拼接: //规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串 int num = 56; System.out.println("num="+num);//"num=56" ---> num=56 System.out.println(5+6+"7");//11+"7"--->"117" --->117 System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597 System.out.println("5"+6+"7");//"56"+"7" --->"567"--->567 System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567 System.out.println("5"+'6'+'7');//"56"+'7'--->"567"---567 } }

++的用法: (--同理)

++单独用时:++单独使用的时候,无论放在前面还是后面,都是加1操作

int a = 5; a++;//理解为:相当于 a=a+1 操作 System.out.println(a);//6 ----------------------------- a = 5; ++a;//理解为:相当于 a=a+1 操作 System.out.println(a); //6

将++参与到运算中:看++在前还是在后,如果++在后:先进行运算,然后再对++操作的变量加1;如果++在前,先加1,然后再运算

int a = 5; int m = a++ + 7;//先运算--->m=a+7 再加1--->a = a+1 System.out.println(m);//12 System.out.println(a);//6 --------------------------------------------------- a = 5; int n = ++a + 7;//先加1--->a=a+1 再运算:--->n = a+7 System.out.println(n);//13 System.out.println(a);//6 赋值运算符(=)

x = x + 4 等价于 x += 4;

二者区别:

(1)x += 4; 可读性稍差 编译效率高 底层自动进行类型转换

(2)x = x + 4 可读性好 编译效率低 手动进行类型转换

//给出三个数,求和: //1.给出三个数: int num1 = 10; int num2 = 20; int num3 = 30; //2.求和 //int sum = num1+num2+num3; //定义一个变量,用来接收和: int sum = 0; sum = sum + num1;//等效: sum += num1; sum = sum + num2;// sum += num2; sum = sum + num3;//sum += num3; //3.将和输出: System.out.println("和:"+sum);

ps:请问a+=b 相当于 a=a+b,那么也相当于 a=b+a吗?

在基本数据类型中,可以这样理解,但对String类型就不成立了
譬如:

String a = "hello"; String b = "world"; a = a + b;//"helloworld" a = b + a;//"worldhello" 关系运算符(boolean)

Java包含丰富的关系运算符。

检验相等性,可以使用两个等号 ==。

3 == 7;//flase

检验不等性,可以使用 !=

3 != 7;//true

同意也有<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

逻辑运算符

逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么是true,要么false

逻辑与(&)规律:只要有一个操作数是false,那么结果一定是false

1 > 2 & 1<4;//flase 1 < 4 & 1 > 5;//flase 1 < 2 & 1 < 5;//flase

短路与(&&):效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false,相当于短路了一样

int a = 3; int b = 4; a++ > 3 && ++b > 4;//flase System.out.println(a)//4 System.out.Println(b)//4

ps:执行a++过程中,先运算再赋值,所以 a++ > 3(3 > 3)为flase,后面的语句不计算(b=4),不会执行++操作,最后再把(3+1的值赋给a)

逻辑或(|):只要有一个操作数是true,那么结果一定是true

运算符(2)有哪些具体类型?

短路逻辑或(||):只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true

int a = 3; int b = 4; ++a > 3 || ++b > 4;//true System.out.println(a)//4 System.out.Println(b)//4

逻辑非(!):取相反结果

!(1 < 3);//flase !(1 > 2);//true

逻辑异或(^):两个操作数结果相同,结果为false,不相同,结果为true

(1 < 3) ^ (1 < 2)//flase

三目运算符:condition ? expression1 : expression2

a ? b : c

其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:
如果a的结果是true,那么表达式最终结果为b
如果a的结果是false,那么表达式最终结果为c

int num = (5 > 7) ? 6 : 9;//num = 9 x < y ? x : y;//返回x和y中较小的那个数 运算符优先级

不需要去刻意的记优先级关系,同级别的运算符按照从左往右依次计算
赋值<三目<逻辑<关系<算术<单目,同一级别

PS:实际开发中我们不会写特别复杂的表达式,你要想先算谁就用()括起来

写在最后

作为Java初学者,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。

本文共计1587个文字,预计阅读时间需要7分钟。

运算符(2)有哪些具体类型?

运算符算术运算符的补充作用:+ 表示正数(省略正字)+ 表示相加操作+ 用于字符串的拼接:符号左右两侧任意一侧为字符串,则该符号具有字符串拼接的作用,结果一定是字符串

运算符 算术运算符补充

+的作用:

  1. 表示正数(省略不写)
  2. 表示相加操作
  3. 进行字符串的拼接:+号左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串

代码练习:

public class TestOpe{ public static void main(String[] args){ //表示正数: System.out.println(+5);//5 //相加操作: System.out.println(5+6);//11 System.out.println(5+'6');//59 //字符串的拼接: //规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串 int num = 56; System.out.println("num="+num);//"num=56" ---> num=56 System.out.println(5+6+"7");//11+"7"--->"117" --->117 System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597 System.out.println("5"+6+"7");//"56"+"7" --->"567"--->567 System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567 System.out.println("5"+'6'+'7');//"56"+'7'--->"567"---567 } }

++的用法: (--同理)

++单独用时:++单独使用的时候,无论放在前面还是后面,都是加1操作

int a = 5; a++;//理解为:相当于 a=a+1 操作 System.out.println(a);//6 ----------------------------- a = 5; ++a;//理解为:相当于 a=a+1 操作 System.out.println(a); //6

将++参与到运算中:看++在前还是在后,如果++在后:先进行运算,然后再对++操作的变量加1;如果++在前,先加1,然后再运算

int a = 5; int m = a++ + 7;//先运算--->m=a+7 再加1--->a = a+1 System.out.println(m);//12 System.out.println(a);//6 --------------------------------------------------- a = 5; int n = ++a + 7;//先加1--->a=a+1 再运算:--->n = a+7 System.out.println(n);//13 System.out.println(a);//6 赋值运算符(=)

x = x + 4 等价于 x += 4;

二者区别:

(1)x += 4; 可读性稍差 编译效率高 底层自动进行类型转换

(2)x = x + 4 可读性好 编译效率低 手动进行类型转换

//给出三个数,求和: //1.给出三个数: int num1 = 10; int num2 = 20; int num3 = 30; //2.求和 //int sum = num1+num2+num3; //定义一个变量,用来接收和: int sum = 0; sum = sum + num1;//等效: sum += num1; sum = sum + num2;// sum += num2; sum = sum + num3;//sum += num3; //3.将和输出: System.out.println("和:"+sum);

ps:请问a+=b 相当于 a=a+b,那么也相当于 a=b+a吗?

在基本数据类型中,可以这样理解,但对String类型就不成立了
譬如:

String a = "hello"; String b = "world"; a = a + b;//"helloworld" a = b + a;//"worldhello" 关系运算符(boolean)

Java包含丰富的关系运算符。

检验相等性,可以使用两个等号 ==。

3 == 7;//flase

检验不等性,可以使用 !=

3 != 7;//true

同意也有<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

逻辑运算符

逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么是true,要么false

逻辑与(&)规律:只要有一个操作数是false,那么结果一定是false

1 > 2 & 1<4;//flase 1 < 4 & 1 > 5;//flase 1 < 2 & 1 < 5;//flase

短路与(&&):效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false,相当于短路了一样

int a = 3; int b = 4; a++ > 3 && ++b > 4;//flase System.out.println(a)//4 System.out.Println(b)//4

ps:执行a++过程中,先运算再赋值,所以 a++ > 3(3 > 3)为flase,后面的语句不计算(b=4),不会执行++操作,最后再把(3+1的值赋给a)

逻辑或(|):只要有一个操作数是true,那么结果一定是true

运算符(2)有哪些具体类型?

短路逻辑或(||):只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true

int a = 3; int b = 4; ++a > 3 || ++b > 4;//true System.out.println(a)//4 System.out.Println(b)//4

逻辑非(!):取相反结果

!(1 < 3);//flase !(1 > 2);//true

逻辑异或(^):两个操作数结果相同,结果为false,不相同,结果为true

(1 < 3) ^ (1 < 2)//flase

三目运算符:condition ? expression1 : expression2

a ? b : c

其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:
如果a的结果是true,那么表达式最终结果为b
如果a的结果是false,那么表达式最终结果为c

int num = (5 > 7) ? 6 : 9;//num = 9 x < y ? x : y;//返回x和y中较小的那个数 运算符优先级

不需要去刻意的记优先级关系,同级别的运算符按照从左往右依次计算
赋值<三目<逻辑<关系<算术<单目,同一级别

PS:实际开发中我们不会写特别复杂的表达式,你要想先算谁就用()括起来

写在最后

作为Java初学者,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。