目录
2.1 代码注释与编码规范
在程序代码中适当地添加注释可以提高程序的可读性和可维护性。好的编码规范可以使程序更易阅读和理解。
2.1.1 代码注释
1.单倍注释
“//”注联标记,从符号“//”开始直到换行为止的所有内容均作为注释而被编泽器忽略。
例如:
2.多倍注释
“/**/”为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。注释中的内容可以换行。
例如:
3.文档注释
“/** */”为文档注释标记。符号“/**”与“*/”之间的内容均为文档注释内容。当文档注释出现在声明(如类的声明、类的成员变量的声明、类的成员方法声明等)之前时,会被Javadoc文档工具读取作为Javadoc文档内容。文档注释的格式与多行注释的格式相同。
2.1.2 编码规范
在学习开发的过程中要养成良好的编码习惯,因为规整的代码格式会给程序的开发与日后的维护提供很大方便。
1、每条语句要单独占一行,一条命令要以分号结束。
注意:程序代码中的分号必须为英文状态下输入的,初学者经常会将“;”写成中文状态下的“;”,此时编译器会报出illegal character(非法字符)这样的错误信息。
2、在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型,也要将其放置在单独的一行上,这样有助于添加注释。
3、在java代码,中关键字与关键字之间如果有多个空格,这些空格均被视作一个。
4、为了方便日后的维护,不要使用技术性很高,难懂,易混淆判断的语句。
5、对于关键的方法要多加注释,这样有助于阅读者了解代码结构。
2.2 变量与常量
在程序执行过程中,其值能被改变的量称为变量,其值不能被改变的量称为常量。变量与常量的命名都必须使用合法的标识符。将向读者介绍标识符与关键字、变量与常量的声明。
2.2.1 标识符与关键字
1.Java语言规定标识符由任意顺序的字母、下划线(_)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的保留关键字。
编写Java代码命名规范:
(1)类名:通常使用名词,第一个单词字母必须大写,后续单词首字母大写。
(2)方法名:通常使用动词。第一个单词首字母小写,后续单词首字母大写。
(3)变量:第一个单词首字母小写,后续单词首字母大写。
(4)常量:所有字母均大写。
(5)单词的拼接法:通常使用“userLastName"方式拼接单词,而不是user-last-name
2.关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。简单理解为凡是在Eclipse变成红色粗体的单词,都是关键字。
2.2.2 变量
变量的使用是程序设计中一个十分重要的环节。为什么要声明变量呢?简单地说,就是要告诉编译器这个变量是属于哪一种数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了便于操作,给这段空间取个名字,就是我们声明的变量名。内存空间内的值就是变量值。在声明变量时可
以没有赋值,也可以直接赋给初值。
变量名的规则
(1)变量名必须是一个有效标识符。
(2)变量名不可以使用java 中的关键字。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名。
2.2.3 常量
在程序运行过程中,一直不会改变的量称为常量,通常也被称为“final 变量” ,常量名通常使用大写字母,但这并不是必须的,很多Java程序员使用大写字母表示常量,是为了清楚的表明正在使用常量。
package hellojava;
public class ConstantTest{//创建ConstantTest类
final double PI=3.14;//声明常量PI
public static void main(String[] args) {//主方法
final double PI=3.14; //声明常量PI,并且赋值3.14
PI=1.1;//再次给常量赋值会报错
System.out.println("常量PI的值为:"+PI);//输出常量的值
System.out.println("半径为3的圆的周长为:"+(PI*2*3));//输出半径为3的圆的周长为
System.out.println("半径为4的圆的面积为:"+(PI*4*4));// 输出半径为4的圆的面积为
}
}
2.3 基本数据类型
2.3.1 整数类型
整数类型用来存储整数数值,即没有小数部分的数值,可以是正数,也可以是负数。整型数据根据它在内存中所占大小的不同,可分为byte、short int和long 4种类型。它们具有不同的取值范围。
整数数据类型
数据类型 | 内分配空间 | 取值范围 | |
字节 | 长度 | ||
byte | 1字节 | 8位 | -128~127 |
short | 2字节 | 16位 | - 32768~32767 |
int | 4字节 | 32位 | -2147483648~2147483647 |
long | 8字节 | 64位 | -9223372036854775808~9223372036854775807 |
1. int型
例如,声明int型变量,代码如下:
int x;//声明int型变量x
int x,y;//同时声明int型变量x,y
int x= 10,y= -5; //同时声明int型变量x,y并赋予初值
int x = 5+23;//声明int型变量x,并赋予公式(5+23) 计算结果的初值
int型变量在内存中占4字节,也就是32位bit,在计算机中bit是用0和1来表示的。
2. byte 型
byte型的声明方式与int型相同。
3. short 型
short型的声明方式与int 型相同。
4. long 型
long型的取值范围比int型大,属于比int高级的数据类型,所以在赋值的时候要和int做出区分,需要在整数后面加L或者1。
整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
十进制:进表现形式大家都很熟悉,如 120、0、-127。
注意:不能以0作为十进制数的开头(0除外)。
八进制:如0123(转换成进制数为83 )、-0123(转换成十进制数为-83)。
注意:八进制必须以0开头。
十六进制:如0x25(转换成十进制数为 37)、0Xb0le(转换成十进制数为45086)。
注意:十六进制必须以 0X 或 0x开头。
public class Keben {//创建Kenben类
public static void main(String[] args) {//主方法
int a=11;//十进制整型
System.out.println(a);//1输出十进制表示的整型值
int b=001;//八进制整型
System.out.println(b);//输出八进制表示的整型值
int c=0x11;//十六进制整型
System.out.println(c);//输出十六进制表示的整型值
}
}
2.3.2 浮点类型
1. 浮点类型表示有小数部分的数字。Java 语言中浮点类型分为单精度浮点类型(loat) 和双精度浮点类型(double), 它们具有不同的取值范围。
浮点型数据类型
数据类型 | 内存空间(8位等于1字节) | 取值范围 | |
字节 | 长度 | ||
float | 4字节 | 32位 | 1.4E-45~3.4028235E38 |
double | 8字节 | 64位 | 4.9E-324~1.7976931348623157E308 |
2. 在默认情况下小数都被看作double型,若想使用float 型小数,则需要在小数后面添加F或f,另外,可以使用后缀d或D来明确表明这是一个double 类型数据。但加不加“d”没有硬性规定,可以加也可以不加。而声明float 型变量时如果不加“f”,系统会认为是double类型而出错。下 面举例介绍声明浮点类型变量的方法。
public class Dkjkjk {//创建Dkjkjk类
public static void main(String[] args) {//主方法
double a =4.35*100;//用double计算4.35*100的结果
System.out.println("a="+a);//输出这个double值
int b =(int) a;//将double类型强制转换成int类型
System.out.println("b="+b);//输出int值
System.out.println("a的四舍五入值="+Math.round(a));//使用四舍五入
}
}
public class DoubleUnAccurate {//创建DoubleUnAccurate类
public static void main(String[] args) {//主方法
double a=0.1;//给a赋值
double b=2.0-1.9;//用double计算2.0-1.9的结果;
System.out.println("a="+a);//输出这个double值
System.out.println("b="+b); // 输出这个double值
System.out.println("a==b的结果:"+(a==b));//a==b的结果是false
/*
* Math. abs()是取绝对值的方法,1e-6表示1*10的-6次方,是计算机中最小数的概念。
*如果两数之差的绝对值小于最小数,则认为这两个数是相等的。
*/
boolean bool=Math.abs(a-b)<(1e-6);//判断
System.out.println("两数之差绝对值小于最小数的结果:"+bool);//输出两数之差绝对值小于最小数的结果
}
}
2.3.3 字符类型
1.char型
字符类型(char) 用于存储单个字符,占用16位(两个字节)的内存空间。在声明字符型变量时,要以单引号表示,如‘s’表示一个字符。
同C、C++语言一样,Java语言也可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符(0x0000 0ffff),所以Java中的字符几乎可以处理所有国家的语言文字。
2.转义字符
转义字符是一种特殊的字符变量, 其以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。
转义字符
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
public class Zhuanyizifu {//创建Zhuanyizifu类
public static void main(String[] args) {//主函数
char c1='\\';//反斜杠转义字符
char c2='\'';//单引号转义字符
char c3='\"';//双引号转义字符
char c4='\u2605';//16进制表示的字符
char c5='\101';//8进制表示字符
char c6='\t';//制表符转义字符
char c7='\n';//换行符转义字符
System.out.println("["+c1+"]");//输出c1转义字符的值
System.out.println("["+c2+"]");//输出c2转义字符的值
System.out.println("["+c3+"]");//输出c3转义字符的值
System.out.println("["+c4+"]");//输出c4转义字符的值
System.out.println("["+c5+"]");//输出c5转义字符的值
System.out.println("["+c6+"]");//输出c6转义字符的值
System.out.println("["+c7+"]");//输出c7转义字符的值
}
}
2.3.4 布尔类型
1.布尔类型又称逻辑类型,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
2.通过关键字boolean来声明布尔类型变量。
public class BooleanTest {//创建BooleanTest类
public static void main(String[] args) {//主方法
boolean b;//声明布尔型变量b
boolean bl,b2; // 声明布尔型变量bl、b2
boolean b3=true,b4=false;//声明布尔型变量b1赋给初值true,b2赋给初值false
boolean b5=2<3,b6=(2 == 4);//声明布尔型变量赋与逻辑判断的结果
System.out.println("b5的结果是:"+b5);//输出布尔型b5的结果
System.out.println("b6的结果是:"+b6);//输出布尔型b6的结果
}
}
3. 在Java虚拟机中,布尔值只使用1位(bit), 但由于Java最小分配单元是1字节,所以一个布尔变量在内存中会分配一个字节。
2.4 数据类型转换
1.类型转换是将一个值从一种类型更改为另种类型的过程。 例如,不仅可以将String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为String 类型。
2.如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。
3.数据类型转换有两种方式,即隐式转换与显式转换。
2.4.1 隐式转换
1.从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换, 也可以称为自动转换。下列基本数据类型会涉及数据转换,不包括逻辑类型。这些类型按精度从“低”到“高”排列的顺序为byte < short < int < long < float < double。
public class Shujuzhuanhuan {//创建Shujuzhuanhuan类
public static void main(String[] args) {//主方法
byte mybyte =127;//声明byte型变量mybyte,并把byte型变量允许的最大值赋给mybyte
int myint=150;//声明int型变量myint,并赋值150
float myfloat=452.12f;//声明float型变量myfloat,并赋值
char mychar=10; //声明char型变量mychar,并赋值
double mydouble=45.46546;//声明double型变量,并赋值
/*将运算结果输出*/
System.out.println("byte型与float型数据进行运算结果为:"+(mybyte+myfloat));//输出byte型与float型数据进行运算结果的值
System.out.println("byte型与int型数据进行运算结果为:"+(mybyte*myint));//输出byte型与int型数据进行运算结果的值
System.out.println("byte型与char型数据进行运算结果为:"+(mybyte/mychar));//输出byte型与char型数据进行运算结果的值
System.out.println("double型与char型数据进行运算结果为:"(mydouble+mychar));//double型与char型数据进行运算结果的值
}
}
2.4.2 显式转换
当把高精度的变量值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换,当执行显式类型转换时可能会导致精度损失。
public class ExplicitConversion {//创建ExplicitConversion类
public static void main(String[] args) {//主方法
int a=(int)45.23;//double类型强制转换int类型
long b=(long)456.6f;//float类型强制转换long类型
char c=(char)97.14;//double类型强制转换char类型
System.out.println("45.23强制转换成int的结果:"+a);//输出45.23强制转换成int的结果的值
System.out.println("456.6f强制转换成int的结果:"+b);//输出456.6F 强制转换成long的结果的值
System.out.println("97.14强制转换成int的结果:"+c);//输出97.14 强制转换成 char的结果的值
}
}
2.5 运算符
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。提供了丰富的运算符,如赋值运算符、算术运算符和比较运算符等。本节将向读者介绍这些运算。
2.5.1 赋值运算符
1.赋值运算符以符号“=”表示,它是一个双目运算符(对两个操作数做处理),其功能是将右边操作数所含的值赋给左边的操作数。
int a=100; //该表达式是将100赋值给变量a
2.左边的操作数必须是一个量, 而右边的操作数则可以是变量(如a、number)、 常量(如123、‘book’)、有效的表达式(如45*12)。
public class EqualsSign {//创建EqualsSign类
public static void main(String[] args) {//主方法
int a,b,c=11;//声明整型变量a,b,c
a=32;//将32赋值给变量a
c=b=a+4;//将a与4的和先赋值给变量b,再赋值给变量c
System.out.println("a="+a);//输出a的值
System.out.println("b="+b);//输出b的值
System.out.println("c="+c);//输出c的值
}
}
2.5.2 算术运算符
Java中的算术运算符主要有+(加号)、-(减号)、*(乘号)、/(除号)、%(求余),它们都是双目运算符。
算术运算符
运算符 | 说明 | 实例 | 结果 |
+ | 加 | 12.45f+15 | 27.45 |
- | 减 | 4.56-0.16 | 4.4 |
* | 乘 | 5L*12.45f | 62.25 |
/ | 除 | 7/2 | 3 |
% | 取余 | 12%10 | 2 |
其中,“+”和“_”运算符还可以作为数据的正负符号,如+5、-7。
注意:在进行除法和取余运算时,0不能做除数。
public class ArithemticOperator {//创建ArithemticOperator类
public static void main(String[] args) {//主方法
float num1 = 45.2f;//num1赋值为45.2f
int num2 = 120;//num2赋值为120
int num3 =17, num4=10;//num3赋值为17,num4赋值为10
System.out.println("num1+num2的和为:"+(num1+num2));//输出num1+num2的和的值
System.out.println("num1-num2的差为:"+(num1-num2));//输出num1+num2的差的值
System.out.println("num1*num2的积为:"+(num1*num2));//输出num1+num2的积的值
System.out.println("num1/num2的商为:"+(num1 /num2));//输出num1+num2的商的值
System.out.println("num3/num4的余数为:"+(num3%num4));//输出//输出num1+num2的余数的值
}
}
2.5.3 自增和自减运算符
1.自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1。
public class AutoIncrementDecreasing {//创建AutoIncrementDecreasing类
public static void main(String[] args) {//主方法
int a =1;//创整型量初始值为1
System.out.println("a="+a);//输出此时a的值
a++;
// a自增+1
System.out.println("a++="+a);//输出此时a的值
a++;
// a自增+1
System.out.println("a++="+a);// 输出此时a的值
a++;
//a自增+1
System.out.println("a++="+a);// 输出此时a的值
a--;
//a自减-1
System.out.println("a--="+a);// 输出此时a的值
}
}
2.自增自减运算符摆放位置不同,增减的操作顺序也会随之不同。前置的自增、自减运算符会先将变量的值加1 (减1),再让该变量参与表达式的运算。后置的自增、自减运算符会先让变量参与表达式的运算,再将该变量加1 (减1)。
2.5.4 关系运算符
关系送算符属于双目运算符,用来判断一个操作数与另外一个操作数之间的关系。关系运算符的计算结果都是布尔类型的。
运算符 | 说明 | 实例 | 结果 |
== | 等于 | 2==3 | false |
< | 小于 | 2<3 | true |
> | 大于 | 2>3 | false |
<= | 小于等于 | 5<=6 | true |
>= | 大于等于 | 7>=7 | true |
!= | 不等于 | 2!=3 | ture |
public class RelationalOperator {//创建RelationalOperator类
public static void main(String[] args) {//主方法
int num1 =4,num2=7; //声明int型变量num1,并赋值4,声明int型变量num2,并赋值7
int num3 =7; //声明int型变量num3,并赋值7
System.out.println("numl<num2 的结果:"+(num1 < num2));//输出numl<num2 的结果的值
System.out.println("numl>num2 的结果:"+(num1 > num2));//输出numl>num2 的结果的值
System.out.println("num1==num2的结果:"+(num1 ==num2));//输出numl==num2 的结果的值
System.out.println("numl!=num2 的结果:"+(num1 != num2));//输出numl!=num2 的结果的值
System.out.println("numl<=num2的结果:"+(num1 <= num2));//输出numl<=num2 的结果的值
System.out.println("num2>=num3的结果:"+(num2>= num3));//输出numl>=num2 的结果的值
}
}
2.5.5 逻辑运算符
1. 逻辑运算符是对真和假这两种逻辑值进行运算,运算后的结果仍是一个逻辑值。逻辑运算符包括&& (逻辑与)、 II (逻辑或)、! (逻辑非)。逻辑运算符计算的值必须是boolean 型数据。在逻辑运算符中,除了“!”是单目运算符之外,其他都是双目运算符。
逻辑运算符
运算符 | 含义 | 举例 | 结果 |
&& | 逻辑与 | A&&B | (对)与(错)=错 |
|| | 逻辑或 | A||B | (对)或(错)=对 |
! | 逻辑非 | !A | 不(对)=错 |
逻辑运算符的运算结果
A | B | A&&B | A||B | !A |
ture | ture | ture | ture | false |
ture | false | false | ture | false |
false | ture | false | ture | ture |
false | false | false | false | ture |
2.逻辑运算符与关系运算符同时使用,可以完成复杂的逻辑运算。
public class LogicalAndRelational {//创建LogicalAndRelational类
public static void main(String[] args) {//主方法
int a = 2; //声明int型变量a
int b =5; //声明int型变量b
boolean result =((a >b) && (a != b));//声明boolean型变量,用于保存应用逻辑运算符“&&”后的返回值
boolean result2 = ((a > b) || (a !=b));// 声明boolean 型变量,用于保存应用逻辑运算符“||”后的返回值
System.out.println(result); // 将量result 输出
System.out.println(result2); //将变量result2输出
}
}
2.5.6 位运算符
位运算的操作数类型是整型,可以是有符号的也可以是无符号的。位运算符可以分为两大类:位逻辑运算符和位移运算符。
运算符 | 含义 | 举例 |
& | 与 | a&b |
| | 或 | a|b |
~ | 取反 | ~a |
^ | 异或 | a^b |
<< | 左移位 | a<<2 |
>> | 右移位 | b>>4 |
>>> | 无符号右移位 | x>>>2 |
1.位逻辑运算符
位逻辑运算符包括&、|、^和~,前三个是双目运算符,第四个是单目运算符。
A | B | A&B | A|B | A^B | ~A |
0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1.位逻辑与实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求与,若两个操作数对象同一位都为1,则结果对应位为1,否则结果对应位为0。
2.位逻辑或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求或,若两个操作数对象同一位都为0, 则结果对应位为0,否则结果对应位为1.
3.位逻辑异或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求异或,若两个操作数对象同一位不同时,则结果对应位为1,否则结果对应位为0。
4.取反运算符,实际上是将操作数转换成二进制表示方式,然后将各位二进制位由1变为0,由0变为1。
A | B | A&B | A|B | A^B |
ture | ture | ture | ture | false |
ture | false | false | ture | ture |
false | ture | false | ture | ture |
false | false | false | false | false |
public class LogicalOperator {//创建LogicalOperator类
public static void main(String[] args) {//主方法
short x = ~123; //给short x 赋值
System.out.println("12与8的结果为: " + (12 & 8)); //位逻辑与计算整数的结果
System.out.println("4或8的结果为: " + (4|8)); //位逻辑与计算整数的结果
System.out.println("31异或22的结果为: " + (31^ 22)); //位逻辑异与计算整数的结果
System.out.println("123取反的结果为: " + x); //位逻辑取反与计算整数的结果
System.out.println("2>3与4!-7的与结果: " + (2 >3 &4 != 7)); //位逻辑与计算布尔值的结果
System.out.println("2>3与4!-7的或结果: " + (2 > 3 | 4 != 7)); //位逻辑与计算布尔值的结果
System.out.println("2<3与4!=7的与异或结果: " + (2 < 3 ^ 4 != 7)); //位逻辑与计算布尔值的结果
}
}
2.位移运算符
移位运算有三个,分别是左移<<、 右移>>和无符号右移>>>,这三个运算符都是双目的。
(1)左移是将一个二进制操作数对象按指定的移动位数向左移,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移相当于乘以2的幂。
(2)右移是将一个二进制的数按指定的位数向右移动,右边(低位端)滋出的位被丢弃,左边(高位端)用符号位补充,正数的符号位为0,负数的符号为1.右移位运算相当于除以2的幂。
(3)无符号右移是将一个二进制的数按指定的位数向右移动,右边(低位端)溢出的位被丢弃,左边(高位端)一律用0填充,运算结果相当于除以2的幂。
public class BitwiseOperator1 {//创建BitwiseOperator1类
public static void main(String[] args) {//主方法
int a = 24;//定义a的值
System.out.println(a +"右移两位的结果是:"+ (a >> 2)); //输出a右移两后的值
int b = -16;//定义b为负数
System.out.println(b+"左移三位的结果是:"+ (b << 3));//输出b左移三后的值
int c = -256;//定义负数c
System.out.println(c+"无符号右移2位的结果是:"+ (c >>> 2));//输出c无符号右移2位的结果
}
}
public class BitwiseOperator2 {//创建BitwiseOperator2类
public static void main(String[] args) {//主方法
byte a = (byte)(-32 >>> 1);//yete无符号右移
System.out.println("byte无符号右移的结果:" + a);//输出byte无符号右移的结果的值
short b=(short) (-128 >>> 4); //short无符号右移
System.out.println("short无符号右移的结果:" + b);//输出short无符号右移的结果的值
}
}
2.5.7 复合赋值运算符
和其他主流编程语言一样, Java 中也有复合赋值运算符。所谓的复合赋值运算符,就是将赋值运算符与其他运算符合并成个运算符来使用,从而同时实现两种运算符的效果。
2.5.8 三元运算符
三元运算符的使用格式为:
条件式?值1:值2
三元运算符的运算规则为:若条件式的值为truc,则整个表达式取值1,否则取值 2
boolean b = 20<45?ture:false;
2.5.9 圆括号
圆括号可以提升公式中计算过程的优先级,在编程中常用,使用圆括号更改运算的优先级,可以得到不同的结果。
2.5.10 运算符优先级
1.Java中的表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是增量和减量运算、算术运算、比较运算、逻辑运算、赋值运算。
2.如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。
优先级 | 描述 | 运算符 |
1 | 括号 | 0 |
2 | 正负号 | +、- |
3 | 单目运算符 | ++、--、! |
4 | 乘除 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | >>、>>>、<< |
7 | 比较大小 | <、>、>=、<= |
8 | 比较是否相等 | ==、! = |
9 | 按位与运算 | & |
10 | 按位异与运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三目运算符 | ?: |
15 | 赋值运算符 | = |