集合的迭代(遍历)(模仿了数鸡蛋的方式)
1 java 接口 Iterator(迭代器) 描述了逐一遍历的
方法.
2 Iterator 描述了一个顺序结构, 并且有一个游标
概念, 游标默认在第一个元素之前. 调用方法
hasNext() 可以检查游标是否有下一个元素.
使用next() 方法移动游标,并且返回当前游标指向的
元素. 这两个方法经常与while循环组成模式化
结构, 用来遍历集合内容. 是常见的标准结构.
3 凡是对集合的遍历都应采用Iterator接口实现.
编程中十分常见.
4 集合在迭代期间不能调用集合的更新方法 add()
remove set 等
5 如果需要迭代时候删除集合内容, 可以调用迭代器的
删除方法 ite.remove() 删除当前元素.
系统登录实例
系统登录
1 根据用户名找到用户对象
2 比较用户对象的密码与当前密码是否一致
散列表概念
1 容量: 散列表中散列数组大小.
2 散列运算: key->散列值(散列数组下标)的算法,
如: "mm".hashCode()%10->8
3 散列桶: 散列值相同的元素的"线性集合"
4 加载因子: 就是散列数组加载率, 一般小于75%性能比较理想
就是:元素数量/散列数组大小, 如: 7/10=70%
5 散列查找: 根据Key计算散列值, 根据散列值(下标)找到
散列桶,在散列桶中顺序比较Key, 如果一样, 就返回value
6 散列表中Key不同, Value可以重复
异常
1 行为的意外结果
2 一个方法如果抛出了异常,这个方法就必须声明异常的抛出.
异常的声明:在方法上声明方法的意外结果,如:
User reg(String name, String pwd, String email)
throws UserExistException;
User login(String name, String pwd)
throws NameOrPwdException;
3 异常类一般继承于Exception
4 调用抛出异常的方法,必须处理异常
4.1 使用try catch finally 捕获
4.2 直接再抛出异常
4.3 捕获 再抛出.
处理方式,依赖于具体业务逻辑,很灵活。
5 如果代码有异常发生,异常以后的代码将不再执行。
6 try catch finally
try 是尝试运程代码块,如果有异常会被随后的catch捕获
异常发生以后代码不执行
catch代码块是异常处理代码。需要提供合理的处理,异常的处理
是与具体业务逻辑有关。可以写多个catch处理一系列异常,但是
要注意:异常的大小关系,大类型的放到后面处理。
有的时候 catch(Exception) 粗粒度处理异常,代码简洁
语义含糊. 根据业务逻辑适当选用。
finally 代码块,不够是否出现异常,总会执行的代码块。
经常用来处理现场的清理,比如:可靠的数据库连接关闭。
7 异常有一个基本原则:能够底层处理的尽量处理,但是
如果不能处理,必须抛出到调用者(方法)。不应该简单的
抛弃。
8 异常捕获再抛出, 是一种把底层异常进行封装,转换为另外
一种异常类型。
9 *建议在捕获到异常时候使用e.printStackTrace(),打印到
控制台,输出内容是:出现异常时候的方法调用堆栈.
一般情况下,凡是捕获异常代码都输出:e.printStackTrace()
10 异常的分类
Throwable
|--Error 是系统不可恢复的错误,由JVM发生
| |--OutOfMemoryError 堆内存溢出
| |--StackOverflowError 栈内存溢出
|--Exception 程序可以检查处理的异常,常见的异常继承根
|--java.text.ParseException format解析对象时候发生
| 如:Date d = dateformat.parse("2010-5-5");
|--RuntimeException 非检查异常,Javac忽略对
| 这类异常的语法检查,如:异常抛出,异常处理等。
|--IllegalArgumentException
|--NullPointerException *
|--ArrayIndexOutOfBoundsException *
|--ClassCastException *
|--NumberFormatException * Integer.parseInt()
11 软件中会大量使用自定义异常,一般从Exception继承。
异常类命名要有实际意义。
IO 输入与输出(Input/Output)
1 在包:java.io
1 File 类, 代表文件/文件夹(目录)
a 查看文件/目录属性
目录: 相对目录: 是JavaVM启动的目录, Eclipse中
默认的相对目录是: 项目文件夹!
b 创建文件/目录
c 访问文件系统(目录系统), 列文件/列目录/过滤列目录
预习: Java 输入与输出流 InputStream/OutputStream
1 java 接口 Iterator(迭代器) 描述了逐一遍历的
方法.
2 Iterator 描述了一个顺序结构, 并且有一个游标
概念, 游标默认在第一个元素之前. 调用方法
hasNext() 可以检查游标是否有下一个元素.
使用next() 方法移动游标,并且返回当前游标指向的
元素. 这两个方法经常与while循环组成模式化
结构, 用来遍历集合内容. 是常见的标准结构.
3 凡是对集合的遍历都应采用Iterator接口实现.
编程中十分常见.
4 集合在迭代期间不能调用集合的更新方法 add()
remove set 等
5 如果需要迭代时候删除集合内容, 可以调用迭代器的
删除方法 ite.remove() 删除当前元素.
系统登录实例
系统登录
1 根据用户名找到用户对象
2 比较用户对象的密码与当前密码是否一致
散列表概念
1 容量: 散列表中散列数组大小.
2 散列运算: key->散列值(散列数组下标)的算法,
如: "mm".hashCode()%10->8
3 散列桶: 散列值相同的元素的"线性集合"
4 加载因子: 就是散列数组加载率, 一般小于75%性能比较理想
就是:元素数量/散列数组大小, 如: 7/10=70%
5 散列查找: 根据Key计算散列值, 根据散列值(下标)找到
散列桶,在散列桶中顺序比较Key, 如果一样, 就返回value
6 散列表中Key不同, Value可以重复
异常
1 行为的意外结果
2 一个方法如果抛出了异常,这个方法就必须声明异常的抛出.
异常的声明:在方法上声明方法的意外结果,如:
User reg(String name, String pwd, String email)
throws UserExistException;
User login(String name, String pwd)
throws NameOrPwdException;
3 异常类一般继承于Exception
4 调用抛出异常的方法,必须处理异常
4.1 使用try catch finally 捕获
4.2 直接再抛出异常
4.3 捕获 再抛出.
处理方式,依赖于具体业务逻辑,很灵活。
5 如果代码有异常发生,异常以后的代码将不再执行。
6 try catch finally
try 是尝试运程代码块,如果有异常会被随后的catch捕获
异常发生以后代码不执行
catch代码块是异常处理代码。需要提供合理的处理,异常的处理
是与具体业务逻辑有关。可以写多个catch处理一系列异常,但是
要注意:异常的大小关系,大类型的放到后面处理。
有的时候 catch(Exception) 粗粒度处理异常,代码简洁
语义含糊. 根据业务逻辑适当选用。
finally 代码块,不够是否出现异常,总会执行的代码块。
经常用来处理现场的清理,比如:可靠的数据库连接关闭。
7 异常有一个基本原则:能够底层处理的尽量处理,但是
如果不能处理,必须抛出到调用者(方法)。不应该简单的
抛弃。
8 异常捕获再抛出, 是一种把底层异常进行封装,转换为另外
一种异常类型。
9 *建议在捕获到异常时候使用e.printStackTrace(),打印到
控制台,输出内容是:出现异常时候的方法调用堆栈.
一般情况下,凡是捕获异常代码都输出:e.printStackTrace()
10 异常的分类
Throwable
|--Error 是系统不可恢复的错误,由JVM发生
| |--OutOfMemoryError 堆内存溢出
| |--StackOverflowError 栈内存溢出
|--Exception 程序可以检查处理的异常,常见的异常继承根
|--java.text.ParseException format解析对象时候发生
| 如:Date d = dateformat.parse("2010-5-5");
|--RuntimeException 非检查异常,Javac忽略对
| 这类异常的语法检查,如:异常抛出,异常处理等。
|--IllegalArgumentException
|--NullPointerException *
|--ArrayIndexOutOfBoundsException *
|--ClassCastException *
|--NumberFormatException * Integer.parseInt()
11 软件中会大量使用自定义异常,一般从Exception继承。
异常类命名要有实际意义。
IO 输入与输出(Input/Output)
1 在包:java.io
1 File 类, 代表文件/文件夹(目录)
a 查看文件/目录属性
目录: 相对目录: 是JavaVM启动的目录, Eclipse中
默认的相对目录是: 项目文件夹!
b 创建文件/目录
c 访问文件系统(目录系统), 列文件/列目录/过滤列目录
预习: Java 输入与输出流 InputStream/OutputStream