1.java关键字的使用
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所字母都为小写
2.保留字:现Java版本尚未使用,但以后版本可能会作为关键字使用。
注意:自己命名标识符时要避免使用这些保留字
3.标识符的使用
定义:凡是自己可以起名字的地方都叫标识符。
涉及到的结构:类名、变量名、方法名、接口名、包名、常量名
规则:(必须要遵守。否则,编译不通过)
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
规范:(可以不遵守,不影响编译和运行。但是要求大家遵守)
包名:多单词组成时所字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意点:在起名字时,为了提高阅读性,要尽量意义,“见名知意”。
1.变量的分类
1.1 按数据类型分类
//1.整型:byte (1字节:-128~127) / short (2字节) / int (4字节) / long(8字节)
//通常,我们将一个整型变量定义为int。
//如果定义long型变量,必须后缀为:l或L
//整型的常量,默认为int型。
//2.浮点型:float (4字节)/ double (8字节)
//从存储数据的表数范围上讲:float的范围比long要大。
//如果定义float型变量,必须后缀为:f或F
//通常,我们将一个浮点型变量定义为double.
//浮点型的常量,默认为double型
//3.字符型:char (2字节)
//通常情况下,声明一个字符,使用一对''
//char的不同表示方式:1.声明一个字符 2.声明转义字符 3.使用Unicode码(了解)
//4.布尔型:boolean
//只能保存true 或 false. 不能取值为null. (Boolean:null)
//常常在条件判断、循环中,使用boolean型变量
1.2 按声明的位置分类(了解)
2.定义变量的格式:
1)数据类型 变量名 = 初始化值
2)数据类型 变量名;
变量名 = 初始化值;
3.变量使用的注意点:
1)变量必须先声明,后使用。
2)变量都有其定义所在的一对{}。这一对{}即为其作用域。
3)变量只有在其定义的作用域内才有效。
4)变量在定义时,一定会包含:数据类型,变量名,初始化值。
4.变量类型转换
4.1 涉及到的基本数据类型:
4.2 自动类型转换(只涉及7种基本数据类型):
容量小的数据类型和容量大的数据类型的变量做运算,运算的结果为容量大的数据类型。
byte 、short 、char --> int --> long --> float --> double
特别地,byte、short、char三者之间做运算,结果为int型。
4.3 强制类型转换(只涉及7种基本数据类型):
1.自动类型提升的逆过程。
2.容量大的数据类型的变量如果想转换为容量小的数据类型的变量,就需要使用强制类型符进行转换。
3.强制类型转换符:()
注意点:强转过程中,有可能出现精度损失的情况。
4.4 String与8种基本数据类型间的运算
1.String类属于引用数据类型的变量
2.String类型的变量值使用一对""括起来表示。
3.String类与基本数据类型(8种)变量之间只能做连接运算:+
4.String类与基本数据类型(8种)变量做运算的结果为:String类型
1.编程中涉及的进制及表示方式:
二进制:0,1 ,满2进1.以0b或0B开头。
十进制:0-9 ,满10进1.
八进制:0-7 ,满8进1. 以数字0开头表示。
十六进制:0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如:0x21AF +1= 0X21B0
算数运算符
1.取余:% : 余数的符号与被模数的符号相同
2.(前)++ :先自增1,然后再运算
(后)++ :先运算,后自增1
3.(前)-- :先自减1,然后再运算
(后)-- :先运算,后自减1
4. 连接符:+:只适用于String 和其他类型的变量之间。结果一定是String型。
赋值运算符 “ = ”
比较运算符
1.运算的结果,都是boolean类型。
2. == 和 != 也适用于非数值型的变量。
逻辑运算符
1.运算符操作的是boolean型变量,运算的结果也为boolean类型
2.
//& 与 && : 两个符号判断以后的结果是相同的。
//相同点:如果符号左边的值为true,两个运算符都要执行符号右边的运算。
//不同点:如果符号左边的值为false,&:仍然要执行符号右边的运算。&&:不在执行符号右边的运算
//开发中:习惯于使用:&&
// | 与 ||:两个符号判断以后的结果是相同的。
//相同点:如果符号左边的值为false,两个运算符都要执行符号右边的运算。
//不同点:如果符号左边的值为true,&:仍然要执行符号右边的运算。&&:不在执行符号右边的运算
//开发中:习惯于使用:||
位运算符
1.操作的都是数值型变量
2. << : 在一定范围内,每左移一位,相当于数值 * 2 :过犹不及
>> : 在一定范围内,每右移一位,相当于数值 / 2
>>>:右移以后,最高位拿0补。
6.三元运算符:(条件表达式)? 表达式1 : 表达式2;
【典型代码】
//获取两个整数的较大值
int m = 10,n = 10;
int max = (m > n)? m : n;
System.out.println("较大值为:" + max);
//获取三个整数的最大值
//方式一:
int num1 = 23,num2 = 44,num3 = 2;
//int max1 = (num1 > num2)? num1 : num2;
//int max2 = (max1 > num3)? max1 : num3;
//方式二:
int max2 = (((num1 > num2)? num1 : num2) > num3)? ((num1 > num2)? num1 : num2) : num3;
System.out.println(max2);
【特别说明的】
1.条件表达式的结果为boolean.
2.根据boolean类型的值,决定执行表达式1 (true) 还是表达式2 (false).
3.表达式1 与 表达式2 要保持一致!
4.三元运算符可以相互嵌套
5.三元运算符一定可以转换为使用if-else实现。反之,不成立。
如果既可以使用三元运算符,又可以使用if-else,建议使用三元运算符。因为:简单,执行效率高。
顺序结构:程序从上到下执行。
分支结构:
if-else 和 switch-case
循环结构:
for
while
do-while
1.if-else条件判断结构
1.结构一:
if(条件表达式){
执行代码块;
}
结构二:
if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
结构三:
if(条件表达式1){
执行代码块1;
}else if(条件表达式2){
执行代码块2;
}else if(条件表达式3){
执行代码块3;
}
...
else{
执行代码块2;
}
2.说明:
1.else结构:可选的。
2.如果两个条件表达式没有公共的交集,此时两个else if结构,可以交换顺序。
如果两个条件表达式有公共的交集,"即为包含关系时",要求将范围小的条件表达式放在范围大的条件表达式的上面,此时两个条件表达式才有可能都被执行到。
3.if-else可以嵌套使用的
4.如果if-else中的执行语句只有一行,那么可以省略其所在的一对{}.但是不建议大家省略.
2.switch-case选择结构
1.结构:
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
2.说明:
1.根据case中的情况,选择满足条件的case进入执行其语句。执行完此case中的语句后,仍会继续向下执行其他的case语句,直到遇到break或者执行完所有的case结束。
2.break:可以使用在switch-case结构中,表示结束当前的switch-case结构。
3.default:是可选的,同时位置是灵活的。
4.switch中的表达式代表的数据类型只能是如下的这些:byte short char int 枚举类的对象 String(jdk7.0新增)
5.switch-case适用于变量取值不多,而且表达式满足指定的6种变量类型的情况。
6.如果多个case中的执行语句相同,可以合并。
7.凡是使用switch-case实现的结构,都可以转换为if-else实现。
反之,不成立。
8.在switch-case和if-else都可以使用的情况下,switch-case的执行效率更高一些。
1.循环结构的四要素
①初始化条件
②循环条件 --->boolean类型的结果
③循环体
④迭代条件
说明:当循环条件返回false时,结束循环结构
2.三种循环结构:
2.1 for循环结构
for(①;②;④){
③;
}
执行过程:①-②-③-④-②-③-④-②-③-④-.....-②
2.2 while循环结构
①
while(②){
③;
④;
}
执行过程:①-②-③-④-②-③-④-②-③-④-...-②
说明:
在while循环的{}内,别忘了声明④,如果忘了,会导致死循环的出现.我们写程序,需要避免死循环!
总结:
1.只要是循环的需求,都可以考虑使用for循环,或者使用while循环.
2.for循环和while是可以相互转换的!
3.不同点:关于初始化在出了循环结构以后的调用上:while还可以调用,for不可以调用了。
2.3 do-while循环结构
①
do{
③;
④;
}while(②);
执行过程:①-③-④-②-③-④-②-③-④-...②
说明:do-while:至少执行一次循环体!
3.“无限循环”结构: for(;;) 或者 while(true)
总结:如何结束一个循环结构?
①循环条件返回false时
②在循环体中,满足某个条件的情况下,执行break
4.嵌套循环
1.嵌套循环:一个循环结构a,作为另一个循环结构b的循环体出现。
内层循环:循环结构a
外层循环:循环结构b
2.说明:
1)外层循环控制行数,内层循环控制列数。
2)内层循环循环次数为m次,外层循环循环次数n次,则一共需要循环m * n次。
break与continue