从啥也不会开始学习Java-----第三篇

来源:互联网 发布:帝国cms收费吗 编辑:程序博客网 时间:2024/05/17 08:04


学习书籍:Java从入门到精通第三版(明日科技)

开发IDE:Eclipse

(本系列文章只是充作本人学习笔记,如有侵权,请告知,将立即删除。如因此给版权人带来困扰,在此致以诚挚的歉意)

1、运算符

运算符分类:

①赋值运算符

表示:"="                                        

解释:二元运算符, 将右边操作数的值赋值给左边的操作数

②算术运算符

表示:"+(加号)、-(减号)、*(乘号)、/(除号)、%(求余)"              

解释:二元运算符,

③自增、自减运算符

表示:"++、--"                            

解释:单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型浮点型变量。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算;放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1) 。

④比较运算符

表示:">、<、==、>=、<=、!="

解释:二元运算符,用于程序中的变量和变量之间、变量和常量之间以及其他类型的信息之间的比较。比较运算符的运算结果boolean型,当运算符对应的关系成立时,运算结果是true,否则结果是false。上述符号意义分别为:左方是否大于右方(同数学中大于号)、左方是否小于右方(同数学中小于号)、左方是否等于右方、左方是否大于等于右方(同数学中≥)、左方是否小于等于右方(同数学中)、左方是否不等于右方(同数学中≠)

⑤逻辑运算符

表示:&&(&)(逻辑与)、||(|)(逻辑或)、!(逻辑非)

解释:返回值为布尔类型的表达式,操作元也必须是boolean型数据。和比较运算符相比,逻辑运算符可以表示更加复杂的条件,例如连接几个关系表达式进行判断。在逻辑运算符中,除了“!”是一元运算符之外,其余的都是二元运算符

注意!&&和&都是与,他们的区别是:&会判断两个表达式的Boolean值,而&&当第一个表达式为false时就不再判断第二个表达式的值。通常将这种在

逻辑表达式中从左端的表达式可推断出整个表达式的值称为”短路“,而那些始终执行逻辑运算符两边的表达式称为”非短路“。”&&“和”||“属于”短路“运算符,”&“和”|“属于”非短路“运算符。

⑥位运算符

表示:~(按位取反)、&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)、>>>(无符号右移)

解释:用于处理整型和字符型的操作数,对其内存进行操作,数据在内存中以二进制的形式表示,例如int型变量7的二进制表示是00000000 00000000 00000000 00000111,-8的二进制表示是111111111 111111111 1111111 11111000,最高位是符号位,0表示正数,1表示负数。

另:按位取反、按位与、按位或、按位异或很好理解、解释一下移位运算符:

移位运算符操作的数据类型只有5中:byte、short、char、int、long

理论解释:左移<<,就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补0

实际上来记:左移一位,该数乘一个2,右移一位,该数除一个2,简记为:左乘右除(>>>也是除2)

⑦三元运算符

表示:? :  例:boolean b = 20 < 45?true:false

解释:三目运算符,其操作元有三个,第一个是条件表达式,其余的是两个值,条件表达式成立时运算取第一个值,不成立时取第二个值

对例子来说,结果为true

2、运算符优先级

括号最高,正负号第二,自增减第三,乘除取余第四,加减第五,移位第六,比较大小第七,比较相等第八,按位与、按位异或、按位或、逻辑与、逻辑或、三元运算、赋值符。

优先级相同,从左到右依次运算。

书中的例子:不用其他变量实现两个变量互换

import java.util.Scanner;public class VariableExchange{      Scanner scan = new Scanner(System.in);      System.out.println("请输入变量A的值");      long A = scan.nextLong();      System.out.println("请输入变量B的值");      long B = scan.nextLong();       System.out.println("A="+ A + "\tB=" + B);      System.out.println("执行变量互换...");      A = A ^ B;      B = B ^ A;      A = A ^ B;     System.out.println("A=" + A + "\tB=" + B);}



0 0