赋值语句的bool值问题
boolean a = false;
if(a = false)//这里是赋值表达式
System.out.println(111);//没有输出
System.out.println(a);//a最后仍为false
boolean类型在实际编译的过程都是转化为int类型进行底层运算的,false转为0,true转为非0整数。 if(a = false) ==> if((a = 0) != 0) 也就是a先赋为0,再判断是否不等于0,结果为false,不输出。
同理 if(a = true) ==> if((a = 1) != 0) a先赋为1,再判断是否不等于0。
短路与和逻辑与
短路与:&& 逻辑与:&
两者的共同点:判断结果相同,全部都是true则为结果true,出现一个false则结果为false。
两者的不同点:对于&&短路与而言,如果第一个条件为false,后面的条件就不会再判断。对于&逻辑与而言,如果第一个条件为false,后面的条件仍然会判断。&&效率较高。
public static void main(String[] args){
int a = 5,b = 9;
if(a < 1 && ++b < 50) {//短路与
System.out.print("");
}
System.out.print("a=" + a + " b=" + b);//结果b仍为9,说明后面没有判断,++没起作用
}
public static void main(String[] args){
int a = 5,b = 9;
if(a < 1 & ++b < 50) {//逻辑与
System.out.print("");
}
System.out.print("a=" + a + " b=" + b);//b为10,++起作用了
}
同理,短路或(||)与逻辑或(|)的区别就是——短路或如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高。 而逻辑或不管第一个条件是否为true,第二个条件都要判断。
开发中基本使用 && 和 || 。
逻辑异或(a ^ b)—— 当a和b不同时,结果为true,否则为false。
标识符
标识符概念
1. Java对各种变量、方法和类等命名时使用的字符序列成为标识符。
2. 凡是自己可以起名字的地方都叫标识符。
标识符命名规则
1. 由26个英文字母大小写,0-9,_和$组成。
2. 数字不可以开头。
3. 不可以使用关键字和保留字(比如class等),但能包含关键字和保留字(a_class)。
保留字(reserved words):现有Java版本尚未使用,但以后版本可能会作为关键字使用。如goto,const,inner等。
关键字(keywards):被Java语言赋予了特殊含义,用作专门用途的字符串,特点是关键字中所有字母都为小写,如class,public,int等。
4. Java中严格区分大小写,长度无限制。
5. 标识符不能包含空格。
标识符命名规范
1. 包名:多单词组成时所有字母都小写,比如 com.hsp.crm
2. 类名,接口名:多单词组成时,所有单词的首字母大写,比如 TankShotGame(大驼峰)
3. 变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写,比如 tankShotGame(小驼峰,简称驼峰法)。
4. 常量名:所有字母都大写,多单词组成时每个单词用下划线连接,比如 TAX_RATE。