1.加减运算符+,-(4级)是二目运算符,结合方向是从左到右。
2.乘*,除/,求余%(3级)是二目运算符,结合方向是从左到右,操作元是整型或浮点型数据。
3.自增++,自减—是单目运算符,操作元必须是一个整型或浮点型变量。++x(--x)表示在使用x之前,先使x的值增(减)1;x++(x--)表示在使用x之后,使x的值增(减)1。
4.精度从低到高排列顺序是:byte,short,char,int,long,float,double。如果表达式中有double型数据,则输出double型;如果表达式中有float型数据,则输出float型;以此类推;如果表达式中最高精度低于int型整数,则按int型精度进行计算。
5.java允许把不超出byte,short,char的取值范围的算术表达式的值赋给byte,short,char型变量。
6.关系运算符(6级)用来比较两个值的关系,的运算结果是boolean型(true和false,不能是0,1)。如果是数据类型,则比较数据内容;如果是引用类型,则比较引用对象的引用值。
7.逻辑运算符包括&&(11级),||(12级),!(2级)。其中&&,||为二目运算符,结合方向为从左到右,!为单目运算符,结合方向为从右到左。操作元必须是boolean型数据。
8.赋值运算符=是二目运算符(14级),左面的操作元必须是变量,不能是常量和表达式,结合方向是从右到左。不要将赋值运算符=与关系运算符==混淆。
9.整数类型在内存中以二进制的形式表示,左面最高位是符号位,0表示正数,1表示负数。负数采用补码表示。
10.按位与运算符&是双目运算符,对两个整型数据a,b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则是0。如果b的精度高于a,那么结果c的精度和b相同。
11. 按位或运算符|是双目运算符,对两个整型数据a,b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。
12.按位非运算~是单目运算符,对一个整型数据a按位进行运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则是0。
13. 按位异或运算符^是双目运算符,对两个整型数据a,b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都相同,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。
14.位运算符也可以操作逻辑型数据,法则是:
当a,b都是true时,a&b是true,否则a&b是false。
当a,b都是false时,a|b是false,否则a|b是true。
当a是true时,~a是false;当a是false时,~a是true。
位运算符在操作逻辑型数据时,与逻辑运算符&&,||,!不同的是:位运算符要计算完a和b的值之后再给出运算的结果。
15.instanceof是二目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符的结果是true,否则是false。
16.运算符的优先级和结合性
17.if语句是单条件单分支语句,语法格式:
if(表达式){
若干语句
}
if后面的一对小括号()内的表达式的值必须是boolean类型,如果只有一条语句,{}可以省略不写。
18.if-else语句是单条件双分支语句,语法格式:
If(表达式){
若干语句
}
else{
若干语句
}
if后面的一对小括号()内的表达式的值必须是boolean类型。如果只有一条语句,{}可以省略不写。
19.switch语句是单条件多分支的开关语句,格式为(其中break语句是可选的):
switch(表达式)
{
case 常量值1:
若干语句
break;
case 常量值2:
若干语句
break;
case 常量值n:
若干语句
break;
default:
若干语句
}
switch语句中“表达式”的值可以为byte,short,int,char型(不可以是long型数据);常量值也是byte,short,int,char型,而且要互不相同。
20.for(表达式1;表达式2;表达式3){
若干语句
}
21.while(表达式){
若干语句
}
22.do{
若干语句
}while;
23.在循环体中可以使用break语句和continue语句。在一个循环中,例如循环50次的循环语句中,如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入下一次循环。
24.for(声明循环变量:数组的名字){
……
}
声明的循环变量的类型必须和数组的类型相同,声明循环变量必须是变量声明,不可以使用已经声明过的变量。
25.创建一个对象:Scannerreader=new Scanner(System.in);
然后用reader对象调用下列方法,读取用户在命令行输入的各种基本数据的类型。
nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()。
上述方法执行都会阻塞,等待用户在命令行输入数据回车确认。在从键盘输入数据时,经常让reader对象先调用hasNextXXX()方法等待用户在键盘输入数据,然后在键盘输入一个非数字字符串结束整个操作过程。