Java前六章知识点复习+扩充
一、 程序注释
a) 什么是注释?
注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示(注释是解释性文本,在运行程序时,会被程序跳过,不做处理)
b) 为什么要用注释?(注释的作用)
能提高程序代码的可读性,以便于以后的参考、修改
c) 怎么加注释?(规则)
i. 内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害
d) 什么时候必须加注释?
i. 基本注释
1. 类(接口)的注释
2. 构造函数的注释
3. 方法的注释
4. 全局变量的注释
5. 字段/属性(变量)的注释
ii. 特殊必加注释(必须加)典型算法必须有注释。
1. 在代码不明晰处必须有注释。
2. 在代码修改处加上修改标识的注释。
3. 在循环和逻辑分支组成的代码中加注释。
4. 为他人提供的接口必须加详细注释。
e) 注释的分类
i. 单行注释(语句注释)
ii. 多行注释(块注释)
iii. 文档注释
1. 类(接口)
2. 构造函数
3. 方法
4. 全局变量
二、 数据类型和变量
a) 为什么?
程序的组成(数据+算法)
Java是一种强类型的语言。所有的变量和数据在定义之前都要先说明类型
b) 数据类型
i. 基本数据类型(四类八种)
1. 第一类:整型 byte short int long
2. 第二类:浮点型 float double
3. 第三类:逻辑型 boolean(它只有两个值可取true false)
4. 第四类:字符型 char
ii. 基本数据类型的自动转换和强转
1. 小可转大,大转小会失去精度。
iii. 引用数据类型
1. 在java中除基本数据类型之外其余的都是引用类型
2. 引用数据类型和基本数据类型的区别
a) 堆和栈的介绍
i. 栈: 一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配(当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间)
ii. 堆: 堆内存用于存放由new创建的对象和数组。(引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉)
iii. 总结
堆主要用来存放对象的,栈主要是用来执行程序的
三、 运算符
a) 运算符的分类
i. 运算符按照其要求的操作数数目来分
1. 单目运算符[+(取正)-(取负) ++(自增) - -(自减)]
a) “+”运算符有多种用途
1. 数值取正(单目运算)
2. 加法运算(双目运算)
3. 字符串连接符
b) i++和++i的区别
1. i++ 和 ++i;两个语句最终效果相同(都是使i变量中的值自增),但是这两个语句在执行过程中的含义不同。
例如:如果有表达式 a = i++ 它等价于 a = i ; i = i + 1; 如果有表达式 a = ++i 它等价于 i = i + 1; a = i;
2. 双目运算符
a) + - * / %(取余)[加减乘除取整取余]
3. 三目运算符
a) a>b?true:false
ii. 运算符按其功能来分(视频中有详细的讲解在这里不做过多介绍)
1. 有算术运算符
2. 赋值运算符
3. 关系运算符
4. 逻辑运算符
5. 位运算符
6. 其他运算符
四、 分支语句
a) 分支语句是什么?
1. 在一定的条件下有选择的执行或跳过特定的语句
b) 为什么要用分支语句?
1. 程序能够根据不同的实际情况进行不同的响应
c) 条件分支语句有哪些?
1. If else(语句规则)(简单介绍三种写法 常规写法、没有大括号写法和三目运算写法)
a) if后的括号不能省略,括号里表达式的值最终必须返回的是布尔值
b) 如果条件体内只有一条语句需要执行,那么if后面的大括号可以省略,但这是一种极为不好的编程习惯。
c) 对于给定的if,else语句是可选的,else if 语句也是可选的
d) else和else if同时出现时,else必须出现在else if 之后
e) 如果有多条else if语句同时出现,那么如果有一条else if语句的表达式测试成功,那么会忽略掉其他所有else if和else分支。
2. If-else的嵌套和多重if-else的讲解和练习(学生分数题)
3. Switch-case(语句规则)
a) switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
b) default就是如果没有符合的case就执行它,default并不是必须的. 3、case后的语句可以不用大括号.
c) switch语句的判断条件可以接受(jdk1.7)int,byte,char,short,不能接受其他类型.
d) 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
4. Switch与if语句对比
a) (效率)绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true编译器编译switch与编译if...else...不同。不管有多少case,都直接跳转,不需逐个比较查询;switch只计算一次值
b) (代码可读性)有很多else if的时候,用switch case比较清晰
c) (灵活性)switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。
5. Switch 语句中传入值的变量类型
a) switch语句的判断条件可以接受int,byte,char,short,String(jdk1.7)
五、 循环语句
a) 循环是什么?
i. 在程序中循环表示需要重复执行的代码动作(表示有规定的重复某一动作)
b) 为什么要用循环?
i. 在程序中不可避免的要做一些重复操作,使用循环可以使程序简单易懂
c) 循环的分类
1. While循环(循环跳出:当while中的条件为假时跳出循环)
a) While与do-while对比。
1. do-while循环保证循环体至少执行一次,while循环在一开始条件不满足的情况下一次也不执行。
2. 在实际程序开发中,不经常使用 do/while 循环语句。因为这种语句是先执行循环体再检测条件,所以会有一些危险数据不经检测,就会被执行
2. For循环
a) For循环有两种写法
i. 常规for循环(写法在视频中有详细的讲解)
ii. 增强for循环(作用对数组进行遍历)
1. 语法(以数组为例)
for(数组变量类型 变量名:数组变量){
//循环代码
}
(注:绿色部分为声明部分,红色部分为表达部分)
• 声明: 新声明变量,声明与数组存储变量相同的变量。在循环代码中以此变量代替数组中的内容
• 表达: 这个计算结果完成需要循环数组。表达式即为需要循环的数组变量
3. For循环和while循环的区别
语句的表达方式不一样,但是一定程度上可以互相改写的。
一般来说for用于次数一定的循环,while用于次数未知的循环
4. break continue return
a) break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.
b) Continue也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
c) Return 有两个作用一个是返回一个指定数据给主调函数, 另外的一个作用就是结束所在函数的执行 (return关键字写在main函数中会导致程序结束)
5. For循环练习
六、 数组
a) 数组的定义
数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引 用类),但同一个数组里只能存放类型相同的元素
b) 提问: 同一个数组能存储不能类型的变量吗?(object)
c) 数组的初始化
i. 静态初始化是在声明数组的同时进行赋值;
ii. 动态初始化是在声明数组后在对其进行赋值。
d) 数组说明
i. 数组是对象类型数据,声明数组时注意new的使用。
ii. 声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。数组一旦被声明,它的容量就固定了,不容改变。(要想改变数组的容量就需要重新创建数组)
iii. 其实数组有一个缺点,就是一旦声明,就不能改变容量,这个也是其使用频率不高的原因。(简单提出一个集合的概念)
e) 数组的边界
i. 一个数组的下标从0开始,数组通过数组的对象引用变量的下标访问数组。组中第一个元素的索引为0, 第二元素的索引为1,依次类推。如果一个数组长度是5,要访问最后一个数组元素可以通过下标4来访问,如果通过下标5访问,超出了数组的边界,在运行时会抛出ArrayIndexOutOfBoundsException。(演示数组越界情况)
ii. 练习(创建一个数组。通过控制台输入数组获取数字相应下标的在数组中对应的值)
iii. 讲解数组的length属性及其用法(与String的length方法区分)
f) 数组的查找和排序
1. 简单介绍两种查找方式和三种排序方法
2. 练习数组排序
g) java.util.Arrays辅助类的介绍。
i. 通过API讲解arrays类(讲解其中的四个常用方法)
h) 数组的拷贝(简单介绍和练习)
数组的长度一旦确定之后便不能调整,我们可以通过复制数组的内容变通实现改变数组长度。在System类中提供一个辅助的 arraycopy方法提供复制数组内容的功能
public static void arraycopy(Object src,int srcPos, Object dest, int destPos,int length)
一、 程序注释
a) 什么是注释?
注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示(注释是解释性文本,在运行程序时,会被程序跳过,不做处理)
b) 为什么要用注释?(注释的作用)
能提高程序代码的可读性,以便于以后的参考、修改
c) 怎么加注释?(规则)
i. 内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害
d) 什么时候必须加注释?
i. 基本注释
1. 类(接口)的注释
2. 构造函数的注释
3. 方法的注释
4. 全局变量的注释
5. 字段/属性(变量)的注释
ii. 特殊必加注释(必须加)典型算法必须有注释。
1. 在代码不明晰处必须有注释。
2. 在代码修改处加上修改标识的注释。
3. 在循环和逻辑分支组成的代码中加注释。
4. 为他人提供的接口必须加详细注释。
e) 注释的分类
i. 单行注释(语句注释)
ii. 多行注释(块注释)
iii. 文档注释
1. 类(接口)
2. 构造函数
3. 方法
4. 全局变量
二、 数据类型和变量
a) 为什么?
程序的组成(数据+算法)
Java是一种强类型的语言。所有的变量和数据在定义之前都要先说明类型
b) 数据类型
i. 基本数据类型(四类八种)
1. 第一类:整型 byte short int long
2. 第二类:浮点型 float double
3. 第三类:逻辑型 boolean(它只有两个值可取true false)
4. 第四类:字符型 char
ii. 基本数据类型的自动转换和强转
1. 小可转大,大转小会失去精度。
iii. 引用数据类型
1. 在java中除基本数据类型之外其余的都是引用类型
2. 引用数据类型和基本数据类型的区别
a) 堆和栈的介绍
i. 栈: 一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配(当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间)
ii. 堆: 堆内存用于存放由new创建的对象和数组。(引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉)
iii. 总结
堆主要用来存放对象的,栈主要是用来执行程序的
三、 运算符
a) 运算符的分类
i. 运算符按照其要求的操作数数目来分
1. 单目运算符[+(取正)-(取负) ++(自增) - -(自减)]
a) “+”运算符有多种用途
1. 数值取正(单目运算)
2. 加法运算(双目运算)
3. 字符串连接符
b) i++和++i的区别
1. i++ 和 ++i;两个语句最终效果相同(都是使i变量中的值自增),但是这两个语句在执行过程中的含义不同。
例如:如果有表达式 a = i++ 它等价于 a = i ; i = i + 1; 如果有表达式 a = ++i 它等价于 i = i + 1; a = i;
2. 双目运算符
a) + - * / %(取余)[加减乘除取整取余]
3. 三目运算符
a) a>b?true:false
ii. 运算符按其功能来分(视频中有详细的讲解在这里不做过多介绍)
1. 有算术运算符
2. 赋值运算符
3. 关系运算符
4. 逻辑运算符
5. 位运算符
6. 其他运算符
四、 分支语句
a) 分支语句是什么?
1. 在一定的条件下有选择的执行或跳过特定的语句
b) 为什么要用分支语句?
1. 程序能够根据不同的实际情况进行不同的响应
c) 条件分支语句有哪些?
1. If else(语句规则)(简单介绍三种写法 常规写法、没有大括号写法和三目运算写法)
a) if后的括号不能省略,括号里表达式的值最终必须返回的是布尔值
b) 如果条件体内只有一条语句需要执行,那么if后面的大括号可以省略,但这是一种极为不好的编程习惯。
c) 对于给定的if,else语句是可选的,else if 语句也是可选的
d) else和else if同时出现时,else必须出现在else if 之后
e) 如果有多条else if语句同时出现,那么如果有一条else if语句的表达式测试成功,那么会忽略掉其他所有else if和else分支。
2. If-else的嵌套和多重if-else的讲解和练习(学生分数题)
3. Switch-case(语句规则)
a) switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
b) default就是如果没有符合的case就执行它,default并不是必须的. 3、case后的语句可以不用大括号.
c) switch语句的判断条件可以接受(jdk1.7)int,byte,char,short,不能接受其他类型.
d) 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
4. Switch与if语句对比
a) (效率)绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true编译器编译switch与编译if...else...不同。不管有多少case,都直接跳转,不需逐个比较查询;switch只计算一次值
b) (代码可读性)有很多else if的时候,用switch case比较清晰
c) (灵活性)switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。
5. Switch 语句中传入值的变量类型
a) switch语句的判断条件可以接受int,byte,char,short,String(jdk1.7)
五、 循环语句
a) 循环是什么?
i. 在程序中循环表示需要重复执行的代码动作(表示有规定的重复某一动作)
b) 为什么要用循环?
i. 在程序中不可避免的要做一些重复操作,使用循环可以使程序简单易懂
c) 循环的分类
1. While循环(循环跳出:当while中的条件为假时跳出循环)
a) While与do-while对比。
1. do-while循环保证循环体至少执行一次,while循环在一开始条件不满足的情况下一次也不执行。
2. 在实际程序开发中,不经常使用 do/while 循环语句。因为这种语句是先执行循环体再检测条件,所以会有一些危险数据不经检测,就会被执行
2. For循环
a) For循环有两种写法
i. 常规for循环(写法在视频中有详细的讲解)
ii. 增强for循环(作用对数组进行遍历)
1. 语法(以数组为例)
for(数组变量类型 变量名:数组变量){
//循环代码
}
(注:绿色部分为声明部分,红色部分为表达部分)
• 声明: 新声明变量,声明与数组存储变量相同的变量。在循环代码中以此变量代替数组中的内容
• 表达: 这个计算结果完成需要循环数组。表达式即为需要循环的数组变量
3. For循环和while循环的区别
语句的表达方式不一样,但是一定程度上可以互相改写的。
一般来说for用于次数一定的循环,while用于次数未知的循环
4. break continue return
a) break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.
b) Continue也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
c) Return 有两个作用一个是返回一个指定数据给主调函数, 另外的一个作用就是结束所在函数的执行 (return关键字写在main函数中会导致程序结束)
5. For循环练习
六、 数组
a) 数组的定义
数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引 用类),但同一个数组里只能存放类型相同的元素
b) 提问: 同一个数组能存储不能类型的变量吗?(object)
c) 数组的初始化
i. 静态初始化是在声明数组的同时进行赋值;
ii. 动态初始化是在声明数组后在对其进行赋值。
d) 数组说明
i. 数组是对象类型数据,声明数组时注意new的使用。
ii. 声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。数组一旦被声明,它的容量就固定了,不容改变。(要想改变数组的容量就需要重新创建数组)
iii. 其实数组有一个缺点,就是一旦声明,就不能改变容量,这个也是其使用频率不高的原因。(简单提出一个集合的概念)
e) 数组的边界
i. 一个数组的下标从0开始,数组通过数组的对象引用变量的下标访问数组。组中第一个元素的索引为0, 第二元素的索引为1,依次类推。如果一个数组长度是5,要访问最后一个数组元素可以通过下标4来访问,如果通过下标5访问,超出了数组的边界,在运行时会抛出ArrayIndexOutOfBoundsException。(演示数组越界情况)
ii. 练习(创建一个数组。通过控制台输入数组获取数字相应下标的在数组中对应的值)
iii. 讲解数组的length属性及其用法(与String的length方法区分)
f) 数组的查找和排序
1. 简单介绍两种查找方式和三种排序方法
2. 练习数组排序
g) java.util.Arrays辅助类的介绍。
i. 通过API讲解arrays类(讲解其中的四个常用方法)
h) 数组的拷贝(简单介绍和练习)
数组的长度一旦确定之后便不能调整,我们可以通过复制数组的内容变通实现改变数组长度。在System类中提供一个辅助的 arraycopy方法提供复制数组内容的功能
public static void arraycopy(Object src,int srcPos, Object dest, int destPos,int length)