黑马程序员——标识符和运算符

时间:2023-02-19 13:33:18

一、标识符


标识符:是给程序里面的常量、变量、方法取的名字。


标识符的规范:

1,标识符有26个字母、数字以及_(下划线)、$(美元符号)这两个符号组成。

2,数字不能开头。

3,长度不限制。

4,标识符的名字最好反应它的作用。

5,java字母严格区分大小写。


常量:字母全部大写,如果是由多个单词组成,则在单词之间加_(下划线)。

变量:字母全小写,如果由多个单词组成,则第一个单词的首字母小心,后面的单词首字母都大写。

方法:与变量一致。



二、运算符


运算符:java的表达式就是用运算符连起来的式子。


1,算术运算符。

+(加号)、-(减号)、*(乘号)、/(正斜杠、除号)、%(模)例子(13%3 = 1)、^(乘方)例子(3^2 = 3*3)、!(阶乘)例子(3!= 3*2*1)等

如下图

黑马程序员——标识符和运算符

注意:

算术运算符(%)和(/)这两个运算符在运算的时候右边的值不能是0,会出现 java.lang.ArithmeticException: / by zero ()算法错误

当出现一个字符与一个字符或数值相加时是运算两个的二进制,结果为数字。

运算一般是从左到右运算。

因为java的运算默认 整数:int   小数:double

所以int  x = 4370;

  x = x/1000*1000;

x 的值是4000而不是4370

因为x/1000得出来的值就是整数4而不是小数4.37,然后*1000的结果就是4000。

算术运算符(++)和(--)这两种出现在标识符的前面就如

int a = 2,int b = ++a;

a = 3;b = 3;

是先自增,然后运算左边的赋值动作。

当出现在标识符的后面就相反如

int a = 2 , int b = a++;

a = 3; b =2

是先执行左边的赋值动作,然后自增。


2,赋值运算符。


赋值运算符分别是 = ,+= (加等),-=(减等) , /=(除等) ,*-=(乘等), %=(模等)。

特点:

① 赋值运算符除了(=)这个符号其他的都会把(前面的标识符+赋值运算符+后面的标识符)运算的结果赋值给前面的标识符。

会自己进行强转。如

short  s =4 ;

s+=5;(这个是可以的,相当于s=(short)s+5)。

pass:如果把这句话s+=5换成 s = s+5 ,编译机就会提醒你右边的类型是int类型。



3,比较运算符


比较运算符有 ==(等等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、instanceof(XX)(是否是XX的实例) 。

特点:比较运算符的特点是结果是boolean类型的值,所以只有两个结果 true 和 false。


4,逻辑运算符


分别有 &(与) 、&&(与与)、  ^ (异或)、 ! (非)、 | (或)、 ||(或或)。

特点:

!的和面跟着结果为boolean类型的表达式。如  ! (9==9),结果是false。

除了(!)之外的逻辑运算符的左右都要加上结果为boolean类型的表达式或者直接写true或false也可以。

逻辑运算符运算的结果也是boolean类型的值。


逻辑运算符(&)与(&&)的区别?

&的前面的表达式结果不管是不是false,后面的表达式都会执行。

&& 的前面的表达式当结果是false的时候,后面不执行,直接整个表达式的结果为false。提高了程序运行的效率,但同时也要注意当前面不能直接填写false,因为当前面为false的时候即说明后面的表达式永远执行不到,会出现java.lang.Error: Unresolved compilation problems(无法解决的汇编错误)

逻辑运算符(|)与(||)的区别?


| 的前面表达式结果不管是不是true,后面的表达式都会执行。

|| 的前面的表达式当结果是true时,后面不执行,直接整个表达式的结果为true。同理,提高了运行效率,但 (||)的前面不能直接填写true,会出现java.lang.Error: Unresolved compilation problems(无法解决的汇编错误)。


逻辑运算符(^):比较特殊,因为该符号既作为逻辑运算符使用也可以当作位运算符使用。

当作为逻辑运算符时,只有当运算符两边的表达式结果一个为true,一个为false时整个表达式的结果为true,否则都为false。

可以把true当作二进制里面的1,false当作0,1+1 = 0,1+0 = 1,0+1=1;0+0 =0 。

当把(^)作为位运算符时,也是根据上面的规律运算的,例如14^8 是按照14和8的二进制代码进行异或运算的。

同时也因为上面的原因,(^)位运算符也用与加密文件,当你看到这个例子你会想到什么:ab都是数值,a^b^b = a

为什么最后的结果等于a呢?

我们可以吧这个表达式看成这样a^(b^b) 先执行括号里面的,按照异或的原理数字本身异或自己得到的二进制都是0,然后再把a跟0异或,答案很显然就是a了。



5,位运算符


分别有<<(含符号左移)、>>(含符号右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(取反)

位运算符的参与元素都是数字或单个字符。

(>>>)无符号右移是让符号或数字的二进制数的最高位保持和原来一致。

位运算符中的(^)可以用来进行置换两个变量的值而不借助于第三方变量。如置换a、b变量的值

a = 2 ,b = 3;

a = a^b;

b = a^b;

a = a^b;

最后得出a=3 ,b = 2;


6,三元运算符


三元运算符的格式是: (x+比较运算符+y)?a:b;

x和y是表达式,a和b是执行代码,

x+比较运算符+y 必须有结果true或false,所以a和b必须要执行一个。

三元运算符与if else 极其相似,但区别是什么?

可以把三元运算符当作if else语句的简写形式,但简写也就意味着功能会被缩小,三元运算符必须有结果,而if else可以有结果也可以没结果,

总的来说就是if else的语句可以简写成三元运算符就简写,不能就保持if else语句。


运算符的执行是有其先后顺序的,一般是按照

赋值运算符<逻辑与运算符<比较运算符<算术运算符 这样的规律。