1.1关键字与保留字
1.1.1关键字
定义:被Java语言赋予了特殊含义,专门用途的字符串
特点:关键字中所有的字母都为小写
可以登录:官网关键字与保留字查看
分类:关键字
用于定义数据类型的关键字:class interface enum byte short
int long float double char boolean void
用于定义流程控制的关键字:if else switch case default while do for break continue return
用于定义访问权限修饰符的关键字:private protected public
用于异常处理的关键字:try catch finally throw throws
用于包的关键字:package import
其他修饰符关键字:native strictfp transient volatile assert
用于定义数据类型值的字面值:true false null
1…1.2保留字
现在的版本还没有使用,但要预留下来以后可能使用的单词:如goto,const
1.2标识符
Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
技巧:凡是自己可以起名字的地方都叫标识符。 定义合法标识符规则:
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格
Java中的名称命名规范:原则:见名知意(参考:《代码整洁之道.pdf》)
1.包:xxxyyyzzz
2.类,接口:XxxYyyZzz
3.方法,变量:xxxYyyZzz
4.常量:XXX_YYY_ZZZ
1.3变量
1.3.1概念:
内存中的一个存储区域
该区域的数据可以在同一类型范围内不断变化
变量是程序中最基本的存储单元,包括变量类型,变量名和存储的值
1.3.2作用:内存中保存数据
1.3.3使用变量注意:
Java中每个变量必须先声明后使用,使用变量名来访问这块区域的数据
使用变量名来访问这块区域的数据
作用域:定义所在的一对{}内
同一个作用域内,不能定义重名的变量
1.3.4声明变量
int a;
变量的赋值:int a = 10;
1.3.5变量的分类:
基本类型:
数值型:byte,short,int,long
字符型:float,double
布尔型:boolean
引用数据类型:
类(字符串)
数组
接口
根据声明的位置不同:
在方法体外,类体内声明的变量称为成员变量
在方法体内部声明的变量称为局部变量
基本数据类型的转换:
自动类型转换:容量小的类型自动转换为容量大的数据类型
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
boolean类型不能与其它数据类型运算。
当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
String不是基本数据类型,属于引用数据类型
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意
字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
如: String a = “43”; int i = Integer.parseInt(a);
boolean类型不可以转换为其它的数据类型
1)short s = 5;
s = s-2; //判断:no,因为自动转换为int类型
2) byte b = 3;
b = b + 4; //判断:no,总动转为int
b = (byte)(b+4); //判断:yes
3)char c = ‘a’;
int i = 5;
float d = .314F;
double result = c+i+d; //判断:yes
4) byte b = 5;
short s = 3;
short t = s + b; //判断:no,short,char,byte相加为int
1.4运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符
1.4.1运算符:算术运算符
下面的结果是
public static void main(String[] args){
int i1 = 10;
int i2 = 20;
int i = i1++;//i=10
System.out.print(“i=”+i);//i=10
System.out.println(“i1=”+i1);//i1=11
i = ++i1;//i=12
System.out.print(“i=”+i);//i=12
System.out.println(“i1=”+i1);//i1=12
i = i2--;//i=20
System.out.print(“i=”+i);//i=20
System.out.println(“i2=”+i2);//i2=19
i = --i2;
System.out.print(“i=”+i);//i=18
System.out.println(“i2=”+i2);//i2=18
}
1.4.2赋值运算符
*扩展赋值运算符: +=, -=, =, /=, %=
int n = 10;
n += (n++) + (++n); //n++为11,但n++加的值还是10;++n为12,结果32
System.out.println(n);
1.4.3比较运算符
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
1.4.3比较运算符
boolean b1 = false;
//区分好==和=的区别。
if(b1==true)
System.out.println("结果为真");
else
System.out.println("结果为假");
写出输出的结果
int x = 1;
int y = 1;
if(x++==2 & ++y==2){//x=2,y=2,不是短路与所以第二个也会判断
x =7;
}
System.out.println("x="+x+",y="+y);x=2,y=2
int x = 1,y = 1;
if(x++==2 && ++y==2){ //第一个判断不通过,
x =7;
}
System.out.println("x="+x+",y="+y);//x=1,y=1
int x = 1,y = 1;
if(x++==1 | ++y==1){//不是短路或
x =7; //x=2,y=2--->x=7,y=2
}
System.out.println("x="+x+",y="+y);
int x = 1,y = 1;
if(x++==1 || ++y==1){
x =7;//x=2,y=2--->x=7,y=2
}
System.out.println("x="+x+",y="+y);
面试题:
1. class Test {
2. public static void main (String [] args) {
3. boolean x=true;
4. boolean y=false;
5. short z=42;
6. //if(y == true)
7. if((z++==42)&&(y=true))z++;//z=44
8. if((x=false) || (++z==45)) z++;//z=46
10. System.out.println(“z=”+z);
11. }
12. }
1.4.4三元运算符
练习1.获取两个数中最大的
2.获取三个书中最大的之