版本:JDK1.8
注:观看尚硅谷视频的复习笔记
一、关键字和保留字
1、用于定义数据类型的关键字
class、interface、enum、byte、short、int、long、float、double、char、boolean、void
2、用于定义流程控制的关键字
if、else、switch、case、default、while、do、for、break、continue、return
3、用于定义访问权限修饰符的关键字
private、protected、public
4、用于定义类,函数,变量修饰符的关键字
abstract、final、static、synchronized
5、用于定义类与类之间关系的关键字
extends、implements
6、用于定义建立实例及引用实例,判断实例的关键字
new、this、super、instanceof
7、用于异常处理的关键字
try、catch、finally、throw、throws
8、用于包的关键字
package、import
9、其他修饰符关键字
native、strictfp、transient、volatile、assert
10、用于定义数据类型值的字面值
true、false、null
11、保留字
goto、const
二、标识符
1、定义:凡是可以自己命名的就是标识符
2、命名规则:
由26个英文字母大小写,0-9,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java 中严格区分大小写,长度无限制。
标识符不能包含空格
3、命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
三、变量
1、变量的概念:
内存中的一个存储区域
该区域的数据可以在同一类型范围内不断变化
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
2、变量的作用:
用于在内存中保存数据
3、使用变量注意:
Java中每个变量必须先声明,后使用
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{ }内
变量只有在其作用域内才有效
同一个作用域内,不能定义重名的变量
四、数据类型
1、基本数据类型(primitive type)
(1)、整数类型(byte,short,int,long)
long类型定义时末尾必须加 l或L
byte(1字节)、short(2字节)、int(4字节)、long(8字节)
(2)、浮点类型(float,double)
Java的浮点型常量默认为double型,定义float类型,末尾必须加f或F
float(4字节)、double(8字节)
(3)、字符型(char)
用’'括起来,内含一个字符或一个转义字符
char(2字节)
(4)、布尔型(boolean)
只能是true或false
2、引用数据类型(reference type)
类(class)、接口(interface)、数组([])
3、自动类型提升
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double
当byte、char、short三种类型的变量做运算时,结果为int型
4、强制类型转换
需要使用强转符:(),例如:(数据类型)变量;
五、进制之间的转换
二进制(binary) :0,1 ,满2进1.以0b或0B开头。
十进制(decimal) :0-9 ,满10进1。
八进制(octal) :0-7 ,满8进1,以数字0开头表示。
十六进制(hex) :0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
1、二进制 转十进制
原码:直接将一个数值换成二进制数。最高位是符号位 10000000
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
负数的补码:其反码加1。
正数的原码、反码、补码都相同。
*计算机底层以补码的形式存储数据。
2、十进制转二进制
除2取余的逆
3、二进制转八进制、二进制转十六进制
八进制:从右向左三个代表一个八进制数
十六进制:从右向左四个代表一个十六进制数
六、运算符
1、算术运算符
+、-、*、/、%、++
整形相除,强制取整
两数取余,符号取被取余的数,取余两侧都为整数
2、赋值运算符
=、+=、-=、*=、/=
3、比较运算符
==、!=、<、<=、>、>=、instanceof
4、逻辑运算符
&、|、^、&&、||、!
5、位运算符
<<、>>、>>>、&、|、^、~
(1)、<<(左移):每向左移一位 原数乘2
(2)、>>(右移):每向右移一位 原数除2
被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
(3)、>>>(无符号右移):被移位二进制最高位无论是0或者是1,空缺位都用0补。
(4)、&(与):只有1&1时结果是1,否则是0;
(5)、|(或):只有0 | 0时结果是0,否则是1;
(6)、^(异或):相异为1,相同为0
(7)、~(取反):各二进制码按补码各位取反
6、三元运算符 ?:
格式:(条件表达式)? 表达式1 :表达式2;
表达式1和表达式2必须统一类型
7、运算符优先级
七、程序流程控制
(一)、顺序结构
程序顺序执行
(二)、分支结构
1、if-else
2、switch-case
switch(表达式) {
case 常量1:
语句1:
break;
case 常量2:
语句2:
break;
default:
语句n;
根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
switch结构中的表达式,只能是如下的6种数据类型之一:byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
case 之后只能声明常量,不能声明范围。
default相当于if-else结构中的else。default结构是可选的,而且位置是灵活的。
(三)、循环结构
1、for
for(1初始化条件;2循环条件;4迭代条件){
3循环体;
}
int num = 1;
for(System.out.print('a');num <= 3;System.out.print('c'),num++) {
System.out.print('b');
}
//输出结果:abcbcbc
2、while
1初始化条件;
while(2循环条件){
3循环体;
4迭代条件;
}
3、do-while
1初始化条件;
do{
3循环体;
4迭代条件;
}while(2循环条件);
循环体必执行一次
(四)、break与continue
1、break
switch-case:跳出switch结构
循环:结束当前循环
2、continue
结束本次循环
3、带标签的break与continue
label:for(int i = 1;i <= 4;i++){
for(int j = 1;j <= 10;j++){
if(j % 4 == 0){
//break label;//结束指定标识的一层循环结构
continue label;//结束指定标识的一层循环结构当次循环
}
System.out.print(j);
}
System.out.println();
}