java学习日记10.5

运算符

优先级

最高

  1. 括号 ( ) [ ]
  2. 后缀自增/自减 i++/i--

单目运算符

  1. 前缀自增/自减、正负号、按位取反、逻辑非 i++/i--、+/-、~、!

  2. 强制类型转换 (int)


算术运算符

  1. 乘、整除、求模 *、/、%
  2. 加、减 +、-

位运算符与移位

  1. 左移、右移、无符号右移 <<、>>、>>>
  2. 比较、类型判断 <、>、<=、>=、instanceof
  3. 等于、不等于 ==、!=
  4. 按位与 &
  5. 按位异或 ^

逻辑运算符

  1. 逻辑与(短路) &&

条件与赋值

  1. 三元运算符(条件运算符) ?:
  2. 赋值运算符 =、+=、-=、*=、/=、%=、&=、^=、<<=、>>=、>>>=

最低优先级

  1. 逗号运算符 ,

算术运算符

+加法,-减法,*乘法,/整除,%求模(余),++在自己基础上加1,--在自己基础上减1

++和--

我先用一个代码示范一下

int a = 3;
int b = a++;
int c = ++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);

这里的输出结果是5,3,5

为什么呢?

int a = 3;
int b = a++;//这行代码有两个过程
//1.赋值	b = a
//2.执行	a = a + 1
int c = ++a;//这行代码同样有两个过程
//1.执行	a = a + 1
//2.赋值	c = a

所以输出的a的值是5,b是3,c是5

幂运算

这个需要用到Math.

double pow = Math.pow(2,3);
//注意这里只能用double定义
System.out.print(pow);

赋值运算符

=

关系运算符

<小于,>大于,<=小于等于,>=大于等于,==等于,!=不等于

逻辑运算符

&&与,||或,!非

 boolean a = true;
 boolean b = false;

 System.out.println("a && b : "+(a&&b));
//两个变量都为true,结果为true
 System.out.println("a || b : "+(a||b));
//两个变量有一个为true,结果为true
 System.out.println("! (a && b) : "+!(a&&b));
//如果为真,结果为假;如果为假,结果为真

a && b : false
a || b : true
! (a && b) : true

短路:

 System.out.println("a && b : "+(b&&a));

由于b已经为假,那么就不会继续计算a是否为真,直接输出结果

证明:

int c = 5;
boolean b = (c < 4)&&(c++ < 4);
System.out.print(b);
System.out.print(c);

如果计算了(c++<4)那么结果应该为false和6

但输出结果为false和5,说明并没有执行

位运算符

&,|,^,~,>>,<<,>>>

条件运算符

?,:

int score = 80;
String type = score<60?"不及格":"及格";

条件?结果1:结果2

若结满足条件,则赋值结果1,若不满足,则赋值结果2

虽然可以使用if,但是条件运算符更加精简

扩展赋值运算符

+=,-=,*=,/=

a += b;//a = a + b
a -= b;//a = a + b

字符串连接符

只要在+任意一侧出现String类型,往后另一侧会自动转化为String类型

a = 10;
b = 20;
System.out.print(""+a+b);
System.out.print(a+b+"");

输出的结果是1020,30

字符串往后的所有都转化为String类型,字符串往前的所有任然按照原本的数据类型进行计算

posted @ 2025-10-06 12:10  Jian18  阅读(5)  评论(0)    收藏  举报