运算符
  lo3R5ihTjlK9 2023年11月02日 25 0

运算符

算数运算符

操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A – B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21
-- 自减: 操作数的值减少1 B-- 或 --B 等于 19
//这里演示算数运算符
//+ 、- 、* 、 /  、 % 、++ 、--
public class OperatorDemo{
    public static void main(String[] args){
        int a = 30;
        int b = 20;
        
        System.out.println( a + b );	//50
        
        System.out.println( a - b );	//10
        
        System.out.println( a * b );	//600
        
        System.out.println( a / b );	//1
        
        System.out.println( a % b );	//10
        
        System.out.println( a++ );		//30
        
        System.out.println( ++a );		//32
        
        System.out.println( b-- );		//20
        
        System.out.println( --b );		//18
    }
}

image-20230720215716730

  • ++a 先加后赋值 先加一后运算

  • a++ 先赋值后加 先运算后加一

  • —b 先减后赋值 先减一后运算

  • b— 先赋值后减 先运算后减一

关系运算符

运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)为假。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)为真。
//这里演示关系运算符
//>大于		>= 大于等于		< 小于	<=小于等于		== 等于	!= 不等于
//关系运算符的运算结果一定是布尔类型(true/false)
public class OperatorDemo1{
    public static void main(String[] args){
        int a = 30;
        int b = 20;
        
        System.out.println( a > b );	//true
        
        System.out.println( a >= b );	//true
        
        System.out.println( a < b );	//false
        
        System.out.println( a <= b );	//false
        
        System.out.println( a == b );	//false
        
        System.out.println( a != b );	//true
    }
}        

image-20230720222707961

逻辑运算符

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为
功能
||(短路或) 都为false,则false。有一个为true便不再继续判断了
|(逻辑或) 都为false,则false。所有的条件都判断
&&(短路与) 都为true,则true。有一个为false便不再继续判断了
&(逻辑与) 都为true,则true。所有的条件都判断
!(非) 变成相反的样子
^(异或) 相同则为false,不相同则为true
//这里演示逻辑运算符
//||(短路或)		|(逻辑或)		&&(短路与)		&(逻辑与)		!(非)	^(异或)
//逻辑运算符的运算结果一定是布尔类型(true/false)
public class OperatorDemo2{
    public static void main(String[] args){
        boolean a = true;
        boolean b = false;
        
        System.out.println( a || b );	//true
        
        System.out.println( a | b );	//true
        
        System.out.println( a && b );	//false
        
        System.out.println( a & b );	//false
        
        System.out.println(  ! b );		//true
        
        System.out.println( a ^ b );	//true
    }
}        

image-20230721104200655

条件运算符

三目运算符 boolean?值1:值2; 前面为true取值1赋值取值2

//这里演示条件运算符
//三目运算符      boolean?值1:值2;		前面为true取值1赋值取值2
public class OperatorDemo3{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        
        System.out.println( a > b ? a : b );		//20
        
        System.out.println( a < b ? a : b );		//10
        
        System.out.println(  a > b ? ++a : --b  );	//19
        
        System.out.println(  a < b ? a-- : b++  );	//10
        
    }
}        

赋值运算符

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
&= 按位与赋值运算符 C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2
//这里演示赋值运算符
//基本赋值运算符:=
//扩展赋值运算符:+=  、-=  、*=  、/= 、%=
public class OperatorDemo4{
    public static void main(String[] args){
        int a = 10;
        int b = 31;
        
        System.out.println( a );		//a=10
        
        System.out.println( a += b );	//a=a+b=10+31=41
        
        System.out.println( a -= b );	//a=a-b=41-31=10
        
        System.out.println( a *= b );	//a=a*b=10*31=310
        
        System.out.println( a /= b  );	//a=a/b=310/31=10
        
        System.out.println( b %= a );	//b=b%a=31%10=1

    }
}     

image-20230721112744902

//byte类型加减需要强制类型转换
public class OperatorDemo5{
    public static void main(String[] args){
        byte by = 50;
        byte by1 = 40;
//        byte by2 = by + by1;    //报错 错误: 不兼容的类型: 从int转换到byte可能会有损失 原因是在运算中把by,by1默认int类型,需要强制类型转换
        byte by2 = (byte)(by + by1);
        System.out.println(by2);
    }
}     

image-20230721114337423

字符串连接运算符

image-20230721115143914

// " "作为字符串的连接
//char类型会转为对应的ASCII码
public class OperatorDemo6{
    public static void main(String[] args){
		String str1 = "我爱学习";
        String str2 = "学Java,月薪过万";
        System.out.println(str1 + str2);
        System.out.println("-----------------------");
        char ch1 = 'a';
        char ch2 = 'b';
        System.out.println(ch1 + ch2);
        System.out.println("-----------------------");
        char ch3 = 65;
        char ch4 = (char)(ch3 + 32) ;
        System.out.println(ch3);
        System.out.println(ch4);
    }
}    

image-20230721122354443

位运算符

操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

Java运算符优先级

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr-- 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 > >= < <= 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

字节与字符的区别

字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。

字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。

一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。

img

字节与字符:

  • ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
  • UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
  • Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
  • 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 **。**占2个字节的大小。
  • UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
  • UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。

ASCII编码

ASCII编码即美国信息交换标准代码(American Standard Code for Information Interchange)是一套共有128个字符的编码,它基于阿拉丁字母,主要作用是用来表示英语和西欧语言字符。ASCII规范编码第一次公布于1967年,ascii码在1986年完成最后一次更新。ASCII码对照表等同于国际标准 ISO/IEC 646,ASCII码对照表是世界最通用的信息交换标准。

32 - 127,共96个。ASCII码对照表32~127之间的ASCII码表示的符号,在我们的键盘上都可以被找到。其中:32表示空格,127表示删除命令。

十进制 八进制 十六进制 二进制 符号 HTML实体 说明
32 040 20 00100000 空格
33 041 21 00100001 ! ! 感叹号
34 042 22 00100010 " " 双引号
35 043 23 00100011 # # 井号
36 044 24 00100100 $ $ 美元符
37 045 25 00100101 % % 百分号
38 046 26 00100110 & &
39 047 27 00100111 ' ' 单引号
40 050 28 00101000 ( ( 左括号
41 051 29 00101001 ) ) 右括号
42 052 2A 00101010 * * 星号
43 053 2B 00101011 + + 加号
44 054 2C 00101100 , , 逗号
45 055 2D 00101101 - - 连字号或减号
46 056 2E 00101110 . . 句点或小数点
47 057 2F 00101111 / / 斜杠
48 060 30 00110000
49 061 31 00110001 1 1 1
50 062 32 00110010 2 2 2
51 063 33 00110011 3 3 3
52 064 34 00110100 4 4 4
53 065 35 00110101 5 5 5
54 066 36 00110110 6 6 6
55 067 37 00110111 7 7 7
56 070 38 00111000 8 8 8
57 071 39 00111001 9 9 9
58 072 3A 00111010 : : 冒号
59 073 3B 00111011 ; ; 分号
60 074 3C 00111100 < < 小于
61 075 3D 00111101 = = 等号
62 076 3E 00111110 > > 大于
63 077 3F 00111111 ? ? 问号
64 100 40 01000000 @ @ 电子邮件符号
65 101 41 01000001 A A 大写字母 A
66 102 42 01000010 B B 大写字母 B
67 103 43 01000011 C C 大写字母 C
68 104 44 01000100 D D 大写字母 D
69 105 45 01000101 E E 大写字母 E
70 106 46 01000110 F F 大写字母 F
71 107 47 01000111 G G 大写字母 G
72 110 48 01001000 H H 大写字母 H
73 111 49 01001001 I I 大写字母 I
74 112 4A 01001010 J J 大写字母 J
75 113 4B 01001011 K K 大写字母 K
76 114 4C 01001100 L L 大写字母 L
77 115 4D 01001101 M M 大写字母 M
78 116 4E 01001110 N N 大写字母 N
79 117 4F 01001111 O O 大写字母 O
80 120 50 01010000 P P 大写字母 P
81 121 51 01010001 Q Q 大写字母 Q
82 122 52 01010010 R R 大写字母 R
83 123 53 01010011 S S 大写字母 S
84 124 54 01010100 T T 大写字母 T
85 125 55 01010101 U U 大写字母 U
86 126 56 01010110 V V 大写字母 V
87 127 57 01010111 W &#087 大写字母 W
88 130 58 01011000 X X 大写字母 X
89 131 59 01011001 Y Y 大写字母 Y
90 132 5A 01011010 Z Z 大写字母 Z
91 133 5B 01011011 [ [ 左中括号
92 134 5C 01011100 \ \ 反斜杠
93 135 5D 01011101 ] ] 右中括号
94 136 5E 01011110 ^ ^ 音调符号
95 137 5F 01011111 _ _ 下划线
96 140 60 01100000 ` ` 重音符
97 141 61 01100001 a a 小写字母 a
98 142 62 01100010 b b 小写字母 b
99 143 63 01100011 c c 小写字母 c
100 144 64 01100100 d d 小写字母 d
101 145 65 01100101 e e 小写字母 e
102 146 66 01100110 f f 小写字母 f
103 147 67 01100111 g g 小写字母 g
104 150 68 01101000 h h 小写字母 h
105 151 69 01101001 i i 小写字母 i
106 152 6A 01101010 j j 小写字母 j
107 153 6B 01101011 k k 小写字母 k
108 154 6C 01101100 l l 小写字母 l
109 155 6D 01101101 m m 小写字母 m
110 156 6E 01101110 n n 小写字母 n
111 157 6F 01101111 o o 小写字母 o
112 160 70 01110000 p p 小写字母 p
113 161 71 01110001 q q 小写字母 q
114 162 72 01110010 r r 小写字母 r
115 163 73 01110011 s s 小写字母 s
116 164 74 01110100 t t 小写字母 t
117 165 75 01110101 u u 小写字母 u
118 166 76 01110110 v v 小写字母 v
119 167 77 01110111 w w 小写字母 w
120 170 78 01111000 x x 小写字母 x
121 171 79 01111001 y y 小写字母 y
122 172 7A 01111010 z z 小写字母 z
123 173 7B 01111011 { { 左大括号
124 174 7C 01111100 | | 垂直线
125 175 7D 01111101 } } 右大括号
126 176 7E 01111110 ~ ~ 波浪号
127 177 7F 01111111 删除
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
lo3R5ihTjlK9
作者其他文章 更多

2023-12-08

2023-12-07

2023-12-05

2023-11-13

2023-11-02

2023-11-02

2023-11-02