20155331 2016-2017-2 《Java程序设计》第九周学习总结

20155331 2016-2017-2 《Java程序设计》第九周学习总结

教材学习内容总结

JDBC是什么?

JDBC代表Java数据库连接,这对Java编程语言和广泛的数据库之间独立于数据库的连接标准的Java API。

JDBC库包含的API为每个通常与数据库的使用相关联的任务:

使得连接到数据库

创建SQL或MySQL语句

执行SQL或MySQL的查询数据库

查看和修改结果记录

从根本上说,JDBC是一种规范,它提供的接口,一套完整的,允许便携式访问底层数据库。可以用Java来写不同类型的可执行文件,如:

Java应用程序

Java Applets

Java Servlets

Java ServerPages (JSP)

Enterprise JavaBeans (EJBs)

所有这些不同的可执行文件就可以使用JDBC驱动程序来访问数据库,并把存储的数据的优势。

JDBC提供了相同的功能,ODBC,允许Java程序包含与数据库无关的代码。

运用反射

JAVA真正需要某个类时才会加载对应的.class文档,不是程序启动时就加载所有类。

通过Object的getClass()方法,或者.class常量取得每个对象对应的class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如,Integer.TYPE可取得代表int的Class对象。

使用class.forName()的方法来实现动态加载类。

java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。

自定义泛型

在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。

共变性(Covariance):,B是A的子类,Node B 可视为一种Node A ,称Node具有共变性。

通配字符“?”与extends限制T的类型,只能通过T声明的名称取得对象指定给Object,或将T声明的名称指定为null。

自定义枚举

enum定义了特殊的类,继承自java.lang.Enum。

enum是个抽象类,无法直接实例化。

enum操作Comparable接口,ordinal的值是会使用enum枚举的成员顺序。equals()与hashCode()基本上继承了Object的行为,但被标示为final。

可以使用values()的方法,将内部维护Action枚举实例的数组复制后返回。

教材学习中的问题和解决过程

问题一:java的反射通过类名加载类和ClassLoader通过类名加载类有什么区别?

ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。

问题二:Java中Class.forName和ClassLoader.loadClass的区别?

Class.forName(className)装载的class已经被初始化,而ClassLoader.loadClass(className)装载的class还没有被link。
forName支持数组类型,loadClass不支持数组
一般情况下,这两个方法效果一样,都能装载Class。但如果程序依赖于Class是否被初始化,就必须用Class.forName(name)了。

代码调试中的问题和解决过程

应该怎么该?

上周考试错题总结

NIO2中,可以使用()中的方法取出文件系统根目录信息。

A .Path

B .DirectoryStream

C .FileStore

D .FileSystem

正确答案: D

正则表达式”(‘|”)(.*?)\1”匹配 “'Hello',"World””的结果是()

A .不匹配

B .'Hello'

C ."World"

D .'Hello',"World"

正确答案: B C

abc? 匹配( )

A .ab

B .abc

C .abcc

D .abccc

正确答案: A B

正则表达式 zo* 匹配()

A .z

B .zo

C .zoo

D .zooooooooooooooooooooooooooo

正确答案: A B C D

正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是()

A ."rat".matcher("r.t")

B ."r.t".matcher("rat")

C .Pattern.compile("rat").matcher("r.t")

D .Pattern.compile("r.t").matcher("rat")

正确答案: D

结对及互评

评分标准

正确使用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

参考示例

点评过的同学博客和代码

上周博客互评情况

20155308

20155305

20155339

20155231

20155306

其他(感悟、思考等,可选)

这周的实验花费了大量的时间,其他基本没来得及看。

posted @ 2017-04-23 16:42  20155331  阅读(210)  评论(1编辑  收藏  举报