首页 技术 正文
技术 2022年11月18日
0 收藏 305 点赞 3,464 浏览 2219 个字

20145314郑凯杰 《Java程序设计》第9周学习总结

教材学习内容总结

第十六章

①JDBC(Java DataBase Connectivity)

即java数据库连接,是一种用于执行SQL语句的Java API

JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

插图1:
20145314郑凯杰 《Java程序设计》第9周学习总结 积极主动敲代码

对于JDBC,其使用有两个步骤,一是首先进行驱动程序的装载,再进行连接的建立。

驱动的四种类型:

  • JDBC-ODBC Bridge Driver
  • Native API Driver 提供原生链接库
  • JDBC-Net Driver 将方法调用转换为特定的网络协议调用
  • Native Protocal Driver

此分类是按照操作方式来分类的。

建立数据库的步骤:

  1. 注册Driver的操作对象
  2. 取得Connection操作对象
  3. 关闭connection操作对象

(1)Statemet和Resultset

接下来执行SQL的话,必须取得java.sql.Statement操作对象。

可使用ConnectioncreateStatemet()建立Statemet对象。

Resultsetnext()可通过返回true或者false表示是否有下一笔数据。

(2)PreparedStatement和CallableStatement

使用ConnectionpreparedStatement()方法建立预先编译(Precompile)的SQL语句,当参数会变动的部分,先指定“?”这个占位字符。

②RowSet

JDBC定义了javax.sql.RowSet接口,用以代表数据的列集合。这里的数据并不一定是数据库中的数据,可以是试算表数据、XML数据或任何具有行集合概念的数据源。

RowSetResultSet的子接口,所以具有ResultSet的行为,可以使用RowSet对行集合进行增删查改,RowSet也新增了一些行为,如通过setCommand()设置查询命令、通过execute()执行查询命令以填充数据等。

第十七章

①运用反射

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

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

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

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

②了解类加载器ClassLoader

JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤。

插图2:
20145314郑凯杰 《Java程序设计》第9周学习总结 积极主动敲代码

另外,类的加载是什么意思呢? 指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个这个类的Java.lang.Class对象,用来封装类在方法区类的对象

第十八章

①自定义泛型

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

共变性(Covariance):,BA的子类,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厚厚的一本书终于学完了,突然觉得自己好有成就感,短短几周就学完了这样一门语言。有着与好友们一起开发程序梦想的我!终于可以用自己的双手开始实现这一想法了,真的很开心。多少个日日夜夜,对着屏幕敲代码,心中烦躁得不行,口中念骂着这语言为啥这么复杂,现在居然已经学完了。真是松了一口气,但是下一周,要把理论付诸实践!开始干吧!不要浪费每一秒青春的时间,用代码写出想写的东西!
现在也对得起那句话了:积极主动敲代码,没日没夜学加瓦。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 50/50 1/2 20/20
第二周 700/600 2/4 38/38
第三周 900/1100 1/7 60/60
第四周 913/1350 1/9 90/90
第六周 764/1350 1/9 90/90
第七周 314/1350 1/9 60/120
第八周 293/1350 1/9 60/120
第九周 xxx/1350 1/9 75/120

参考资料

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,955
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,774