关键字和保留字
- 关键字
- 保留字
goto、const
标识符
- 标识符
凡是自己可以起名字的地方都叫标识符。 - 命名要求
由26个英文字母大小写,0-9,_或$组成;
数字不可以开头;
不可以使用关键字和保留字,但能包含关键字和保留字;
Java中严格区分大小写,长度无限制;
标识符不能包含空格。 - 命名规范
包名:多单词组成时所有字母都小心:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
变量
- 定义变量的格式
数据类型 变量名 = 变量值; - 说明
变量必须先声明后使用。
变量都定义在其作用域内。在作用域内,它是有效的。
同一个作用域内,不可以声明两个同名的变量。 - 数据类型
1.按照数据类型来分
基本数据类型:
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
引用数据类型:
类(class)
接口(interface)
数据(array)
2.变量在类中声明的位置
成员变量
局部变量
运算符
- 算术运算符
运算符 | 运算 | 范例 | 结果 | 备注 |
---|---|---|---|---|
+ | 正号 | +3 | 3 | |
- | 负号 | b=4;-b | -4 | |
+ | 加 | 5+5 | 10 | |
- | 减 | 6-4 | 2 | |
* | 乘 | 3*4 | 12 | |
/ | 除 | 5/5 | 1 | |
% | 取模(取余) | 7%5 | 2 | 结果的符号与被模数的符号相同 |
++ ++ |
自增(前),先运算后取值 自增(后),先取值后运算 |
a=2;b=++a a=2;b=a++ |
a=3;b=3 a=3;b=2 |
|
-- -- |
自减(前),先运算后取值 自减(后),先取值后运算 |
a=2;b=--a a=2;b=a-- |
a=2;b=1 a=1;b=2 |
|
+ | 字符串连接 | "He"+"llo" | "Hello" |
赋值运算符:=
拓展赋值运算符:+=、-=、*=、/=、%=(不会改变变量本身的数据类型)比较运算符(关系运算符)
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | ture |
instanceof | 检查是否是类的对象 | "Hello" instanceof String | true |
- 逻辑运算符
&——逻辑与、&&——短路与(&与&&的运算结果相同;当符号左边是true时,二者都会执行右边的运算;当符号左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算。)
|——逻辑或、||——短路或
!——逻辑非、^——逻辑异或
- 位运算符
运算符 | 运算 | 注释 |
---|---|---|
<< | 左移 | 在一定范围内,每向左移1位,相当于*2 空位补0,被移除的高位丢弃,空缺位补0 |
>> | 右移 | 在一定范围内,每向右移1位,相当于/2 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1 |
>>> | 无符号右移 | 被移位二进制最高位无论是0或者是1,空缺位都用0补 |
& | 与 | |
| | 或 | |
^ | 异或 | |
~ | 取反 | 正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反 |
- 三元运算符
格式:(条件表达式)?表达式1:表达式2
条件表达式的结果为boolean类型
如果表达式为true,则执行表达式1;如果表达式为false,则执行表达式2
程序流程控制
- 顺序结构
- 分支结构
if-else结构
第一种:
if(条件表达式){
执行表达式
}
第二种:二选一
if(条件表达式){
执行表达式1
}else{
 执行表达式2
}
第三种:多选一
if(条件表达式1){
执行表达式1
}else if(条件表达式2){
执行表达式2
}
...
else{
执行表达式n
}
如何从键盘获取不同类型的变量:使用Scanner类
具体实现步骤:
1.导包: import java.util.Scanner;
2.Scannner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法,来获取指定类型的变量:String name = scan.next();
注意:
需要根据相应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMachException,导致程序终止。
获取[a,b]内的随机数
(int)(Math.random() * (b - a + 1) + a)
switch-case结构
switch(表达式){
case 常量1:
语句1;
//break;
case 常量2:
语句2;
//break;
......
case 常量n:
语句n;
//break;
default:
语句:
//break;
}
根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
break可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。
switch结构中的表达式,只能是如下6中数据类型之一:byte、short、char、int、枚举类型()、String类型。
- 循环结构
>for循环
>>结构:
for(初始化条件;循环条件;迭代条件){
循环体;
}
>while循环
>>结构:
初始化条件
while(循环条件){
循环体;
迭代条件;
}
>do-while循环
>>结构:
初始化条件;
do{
循环体;
迭代条件;
}while(循环条件);
使用范围 | 循环中使用的作用 | |
---|---|---|
break | switch-case 循环结构中 |
结束当前循环 |
continue | 循环结构中 | 结束当次循环 |