您的位置:首页 > 编程语言 > Java开发

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/01/48/12
第二周70/801/516/28
第三周120/2001/612/40
第四周300/5001/720/60
第五周500/10001/815/75
第六周600/16001/915/90
第七周400/20002/1120/110
第八周500/25001/1222/132
第九周500/30002/1440/172
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

计划学习时间:25小时

实际学习时间:40小时

改进情况:对于java学习的时间,有了系统性的规划,并不是像以前零散或者突击性的学习。对JAVA有了更深入的学习。

(有空多看看现代软件工程 课件

软件工程师能力自我评价表)

参考资料

Java学习笔记(第8版)

《Java学习笔记(第8版)》学习指导

...

[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: