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

教材学习内容总结

第十六章

①JDBC(Java DataBase Connectivity)

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

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

插图1:

对于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:

另外,类的加载是什么意思呢? 指的是将类的.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

参考资料

20145314郑凯杰 《Java程序设计》第9周学习总结 积极主动敲代码的更多相关文章

  1. 20175211 2018-2019-2 《Java程序设计》第二周学习总结

    目录 教材学习内容总结 第二章 第三章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 其他(感悟.思考等,可选) 学习进度条 参考资料 教材学习内容总结 第二章 ...

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

    20145314郑凯杰 <Java程序设计>第10周学习总结 代码托管: 学习内容总结 网络编程 会打手机吗? 第一个问题:会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛 ...

  3. 20145314郑凯杰 《Java程序设计》课程总结

    20145314郑凯杰 <Java程序设计>课程总结 每周读书笔记链接汇总 ①寒假预习--"helloworld" ②第一周读书笔记 ③第二周读书笔记 ④第三周读书笔记 ...

  4. 20145314郑凯杰 《Java程序设计》实验五 实验报告

    20145314郑凯杰 <Java程序设计>实验五 实验报告 实验搭档王亦徐:http://www.cnblogs.com/1152wyx/p/5471524.html 实验要求 完成实验 ...

  5. 20145314郑凯杰 《Java程序设计》实验四 实验报告

    20145314郑凯杰 <Java程序设计>实验四 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...

  6. 20145314郑凯杰 《Java程序设计》实验三 敏捷开发与XP实践实验报告

    20145314郑凯杰 <Java程序设计>实验二 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...

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

    20145314郑凯杰 <Java程序设计>第8周学习总结 教材学习内容总结 代码已托管 第十五章 通用API ①日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用到日志信息 使 ...

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

    20145314郑凯杰 <Java程序设计>第7周学习总结 教材学习内容总结 首先放上代码托管图片和本地代码图片: 插图4: 插图5: 插图6: 第十三章 时间与日期 13.1 认识时间与 ...

  9. 20145314郑凯杰 《Java程序设计》实验二 实验报告

    20145314郑凯杰 <Java程序设计>实验二 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...

随机推荐

  1. json写入到excel表

    1. 拼接返回的json数据 // 拼接需要下载报表的HTML,并返回html;reportHtml(reporttData) { let html = `<html xmlns:o=" ...

  2. Angular2+学习第3篇 基本知识-组件

    一.插值表达式 基本用法与ng1一样. 可以使用 Angular 内置的 json 管道,来显示对象信息,管道用来格式化数据 import { Component } from '@angular/c ...

  3. HDU 4348 To the moon(可持久化线段树)

    To the moon Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...

  4. Codeforces Round #118 (Div. 1) A. Plant

    A. Plant 题目链接:http://codeforces.com/problemset/problem/185/A 题意:一个植物会长,一开始是一个正三角形,每过一年,一个向上的正三角形会变成三 ...

  5. Fully qualified name FQCN

    Fully qualified name - Wikipedia https://en.wikipedia.org/wiki/Fully_qualified_name In computer prog ...

  6. golang http.ResponseWriter valid json

      golang httpserver如果采用 fmt.Fprintf(w, result)来输出json数据时,若json数据包含%号,则会出现问题.   输出结果里面会包含(MISSING)字样, ...

  7. Git 使用配置

    应用情景:使用Git前需要配置 user.name 和 user.email 信息.Git利用这些信息记录谁进行了什么样的操作.Git属于分布式版本管理系统,开发者很多,配置这个就相当于自报家门,告诉 ...

  8. CMDB实现的四种方式

    第一种(agent): 这种方式是通过向每一台服务器安装agent脚本,然后通过中控机的API,来收集所需要的数据,最后放到数据库中,在通过web的方式显示出来. 实现流程图: 1.录入资产(主机名, ...

  9. https通讯原理

    https通讯原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经 ...

  10. centos7 设置mongodb远程连接

    /etc/mongod.conf 更改 bindIp: 127.0.0.1 为 bindIp: 0.0.0.0