20155238 2016-2017-2 《JAVA程序设计》第九周学习总结
2017-04-22 22:51
471 查看
教材学习内容总结
第十六章
JDBC
SQL的解决方案是JDBC,在Java中,JDBC API主要用来存取数据库。
*JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC代表Java数据库连接。[可参考](http://www.yiibai.com/jdbc/jdbc_quick_guide.html)
JDBC库中所包含的API任务通常与数据库使用: * 连接到数据库 * 创建SQL或MySQL语句 * 在数据库中执行SQL或MySQL查询 * 查看和修改记录
JDBC可以做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。
Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }
Collection是数据库连接的数据对象。执行SQL,必须取得
java.aql.Statement,是SQL描述的代表对象。
在使用
Collection,
Statement,
ResultSet时,要将之关闭以释放资源
第十七章
Class.forName()方法实现动态加载类,可用字符串指定类名称来获得相关信息。
此方法在找不到指定类时会抛出ClassNotFoundException异常。
*从Class类中获取信息,取得Class对象后,就可以从Class文档中获得相应信息
Package p = String.class.getPackage() System.out.println(p.getName())
Classloader 类加载器,用来加载Java类到 Java 虚拟机中的一种加载器。
第十八章
自定义泛型
使用extends限制指定T实际类型时,必须是某类的子类。B是A的子类,而Node可视为一种Node,称Node具有共変性或有弹性的。反之称为有逆变性。
自定义枚举
Enum是个抽象类,无法直接实例化,他操作了Comparable接口
自定义enum时有个特定值类本体语法,可用于操作接口或重新定义分类方法。
关于注释
@Override是标准注释。教材学习中的问题和解决过程
问题1:什么是反射?问题1解决方案:查阅相关资料,可参考
反射,一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。
指程序可以访问、检测和修改它本身状态或行为的一种能力。
程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。
问题2: 为什么要创建属于自己的ClassLoader?
问题2解决方案:查阅相关资料得知。
因为JVM自带的ClassLoader只是懂得从本地文件系统加载标准的java class文件,如果编写你自己的ClassLoader,你可以做到:
1)在执行非置信代码之前,自动验证数字签名
2)动态地创建符合用户特定需要的定制化构建类
3)从特定的场所取得java class,例如数据库中
4) 等等
...
代码调试中的问题和解决过程
问题1: 出现java.lang.illegalargumentexception
问题1解决方案:经查阅,得知这是方法的参数错误,需要回到代码中重新检查是否是在方法参数的调用中出现了问题。
代码托管
上周考试错题总结
Linux中使用rm删除文件时,如果想忽略提示,直接删除文件,可以使用[b]-f选项强制删除。Linux中使用cp命令拷贝目录时要加上-r ,-R选项。
NIO2中,可以使用FileSystem中的方法取出文件系统根目录信息
-正则表达式 zo* 匹配
z
zo
zoo
zooooooooooooooooooooooooooo
-正则表达式 r[aou]t 能够匹配字符串
rat
rut
正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是
Pattern.compile("r.t").matcher("rat")
-Which of the following method declarations correctly defines a method with a variable length parameter list?(下面哪个方法声明正确定义了一个变长参数的方法)
public int average(int ... list)
Suppose we have an array of String objects identified by the variable names. Which of the following for loops will not correctly process each element in the array.(假如我们有一个名为names的String对象数组,下面哪个for循环不能遍历数组中的每一个元素?)
for(int i = 0; i < names.length(); i++)
Which of the following array declarations are invalid? (下面哪个数组声明是不合法的)
int[] grades = new int[5];
int grades[] = new int[5];
int[] grades = { 91, 83, 42, 100, 77 };
*以上三个都合法
Which of the statements is true about the following code snippet?(对于下面的代码段,说法正确的是?)
int[] array = new int[25]; array[25] = 2;
This code will result in a run-time error. (代码会产生运行时错误)
In Java, array indexes always begin at ______0__________ .(Java中,数组索引从______开始)
结对及互评
评分标准
正确使用Markdown语法(加1分):不使用Markdown不加分
有语法错误的不加分(链接打不开,表格不对,列表不正确...)
排版混乱的不加分
模板中的要素齐全(加1分)
缺少“教材学习中的问题和解决过程”的不加分
缺少“代码调试中的问题和解决过程”的不加分
代码托管不能打开的不加分
缺少“结对及互评”的不能打开的不加分
缺少“上周考试错题总结”的不能加分
缺少“进度条”的不能加分
缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
一周提交次数少于20次的不加分
其他加分:
周五前发博客的加1分
感想,体会不假大空的加1分
排版精美的加一分
进度条中记录学习时间与改进情况的加1分
有动手写新代码的加1分
课后选择题有验证的加1分
代码Commit Message规范的加1分
错题学习深入的加1分
点评认真,能指出博客和代码中的问题的加1分
结对学习情况真实可信的加1分
扣分:
有抄袭的扣至0分
代码作弊的扣至0分
迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
参考示例
点评过的同学博客和代码
本周结对学习情况20155216
结对照片
结对学习内容
上周博客互评情况
20155213
20155222
20155233
20155312
20145226
其他(感悟、思考等,可选)
了解了JDBC,认识掌握到了一种新的java API。关于反射和类加载器在看书过程中问题很多,但在经过看老师的教学指导,同学们的博客以及在网上查阅相关资料后,有了一个较为直观的了解。
掌握了什么是共変性逆变性,以及基本上对于自定义泛型,自定义枚举,自定义注释有了清晰地认识。
能合理的分配时间,学习相应的模块,循序渐进,而不是填鸭式的学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/4 | 8/12 | |
第二周 | 70/80 | 1/5 | 16/28 | |
第三周 | 120/200 | 1/6 | 12/40 | |
第四周 | 300/500 | 1/7 | 20/60 | |
第五周 | 500/1000 | 1/8 | 15/75 | |
第六周 | 600/1600 | 1/9 | 15/90 | |
第七周 | 400/2000 | 2/11 | 20/110 | |
第八周 | 500/2500 | 1/12 | 22/132 | |
第九周 | 500/3000 | 2/14 | 40/172 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:25小时
实际学习时间:40小时
改进情况:对于java学习的时间,有了系统性的规划,并不是像以前零散或者突击性的学习。对JAVA有了更深入的学习。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
...
[/b]
相关文章推荐
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
- 20155306 2016-2017-2 《Java程序设计》第九周学习总结
- 20155320 2016-2017-2《Java程序设计》第九周学习总结
- 20155229 2016-2017-2 《Java程序设计》第九周学习总结
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
- # 20155337 2016-2017-2 《Java程序设计》第九周学习总结
- 20155333 2016-2017-2 《Java程序设计》第九周学习总结
- 20155315 2016-2017-2 《Java程序设计》第九周学习总结
- 20155304 2016-2017-2 《Java程序设计》第九周学习总结
- 20155310 2016-2017-2 《Java程序设计》第九周学习总结
- 20155238 2016-2017-2 《Java程序设计》第五周学习总结
- 20155238 2016-2017-2 《JAVA程序设计》第七周学习总结
- 20155238 2016-2017-2 《Java程序设计》第四周学习总结
- 20155238 2016-2017-2 《JAVA程序设计》第八周学习总结
- 2016-2017-2 20155309南皓芯《java程序设计》第九周学习总结
- 20155321 2016-2017-2 《Java程序设计》第九周学习总结
- 20155330 2016-2017-2 《Java程序设计》第九周学习总结
- 20155238 2016-2017-2 《Java程序设计》第二周学习总结
- 20155331 2016-2017-2 《Java程序设计》第九周学习总结
- 20155236 2016-2017-2 《Java程序设计》第九周学习总结