{"id":15069684,"url":"https://github.com/javaobjects/mylibary","last_synced_at":"2026-01-03T16:03:53.374Z","repository":{"id":105562446,"uuid":"198774775","full_name":"javaobjects/myLibary","owner":"javaobjects","description":"Java SE(Java + JDBC + 工厂模式) + GUI CMS-内容管理系统","archived":false,"fork":false,"pushed_at":"2023-11-16T19:08:52.000Z","size":4358,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T09:16:11.833Z","etag":null,"topics":["gui","javase","jdbc","jdk","mysql-database","oracle","swing"],"latest_commit_sha":null,"homepage":"https://github.com/javaobjects/myLibary","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mulanpsl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javaobjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-07-25T06:52:31.000Z","updated_at":"2023-11-13T19:37:36.000Z","dependencies_parsed_at":"2023-11-16T21:06:38.975Z","dependency_job_id":null,"html_url":"https://github.com/javaobjects/myLibary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FmyLibary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FmyLibary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FmyLibary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FmyLibary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaobjects","download_url":"https://codeload.github.com/javaobjects/myLibary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243847056,"owners_count":20357317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","javase","jdbc","jdk","mysql-database","oracle","swing"],"created_at":"2024-09-25T01:44:04.239Z","updated_at":"2026-01-03T16:03:53.354Z","avatar_url":"https://github.com/javaobjects.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href='https://docs.oracle.com/en/java/javase/8'\u003e\u003cimg alt=\"Java 8\" src=\"./config/Images/Java8.png\"\u003e\u003c/a\u003e\n    \u003ca href='https://docs.spring.io/spring-boot/docs/2.6.2-SNAPSHOT/reference/html'\u003e\u003cimg alt=\"Spring Boot 2\" src=\"https://img.shields.io/badge/Spring%20Boot%202-%23000000.svg?logo=springboot\"\u003e\u003c/a\u003e\n    \u003ca href='https://staging-cn.vuejs.org'\u003e\u003cimg alt=\"Vue 3\" src=\"https://img.shields.io/badge/Vue%202%20-%232b3847.svg?logo=vue.js\"\u003e\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Github stars\" src=\"https://img.shields.io/github/stars/201206030/novel?logo=github\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Github forks\" src=\"https://img.shields.io/github/forks/201206030/novel?logo=github\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Gitee stars\" src=\"https://gitee.com/novel_dev_team/novel/badge/star.svg?theme=gitee\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Gitee forks\" src=\"https://gitee.com/novel_dev_team/novel/badge/fork.svg?theme=gitee\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 图书管理系统\n\n+ 此项目是一个**Java J2SE（Java 2 Platform, Standard Edition）开发体系**[CMS(内容管理系统)](https://baike.baidu.com/item/CMS/315935?fr=aladdin)JAVASE项目,前端为GUI,主要使用以及应用到的技术如下：\n\n\n#### 项目描述\n\n1. Eclipse/Mysql/Navicat/Oracle/PlSQL/Git/Tomcat安装以及Jdk和Jre和Jvm在项目中的应用\n2. properties文件配置驱动用户名密码以及url链接数据库\n3. 对象的创建以及方法的定义及调用以及调用堆栈及流程控制语句/垃圾回收机制的使用\n4. 常量/变量/四类八种数据类型以及数据类型(隐/显)以及引用数据类型(上/下溯造型)的转换\n5. 数组/集合/包装类/字符串类/Math类/日期类/的使用\n6. 文件与流/多线程/异常处理以及自定义异常使用\n7. JDBC与Java数据库编程的使用\n8. DDL、DML、DQL在项目中的应用\n9. Oracle数据库迁移至Mysql数据库\n10. Java GUI技术的应用\n\n#### 开发环境\n\n+ Windows\n\n\n#### 配置环境\n\n| 程序           | 版本        | 说明                       |\n|--------------|-----------|--------------------------|\n| Jdk          | 1.8.0 161 | Java 开发工具包               |\n| Mysql        | 5.5.27    | 关系型数据库                   |\n| 或者 Oracle    | 11.2.0.1.0    | 关系型数据库                   |\n\n#### 开发工具\n\n| 工具                       | 版本            | 说明                      |\n|--------------------------|---------------|-------------------------|\n| Eclipse IDE              | 4.11.0(2022.12)| 前后端开发IDE                |\n| Git                      | 2.24.1        | 代码托管平台                  |\n| Navicat                  | 12       | 数据库连接工具                 |\n| PL/SQL                  | 11.2.0.1.0       | 数据库连接工具                 |\n\n####  编码规范\n\n- 规范方式：严格遵守阿里编码规约。\n- 命名统一：简介最大程度上达到了见名知意。\n- 分包明确：层级分明可快速定位到代码位置。\n- 注释完整：描述性高大量减少了开发人员的代码阅读工作量。\n- 工具规范：使用统一jar包避免出现内容冲突。\n- 代码整洁：可读性、维护性高。\n\n#### 包的作用\n\n| 包              | 作用                          |\n| :-------------- | ----------------------------- |\n| config.images   | 存放图片                      |\n| config.dbconfig | 存放数据库配置文件            |\n| lib             | 存放程序驱动                  |\n| entity          | 实体类                        |\n| util            | 公共类                        |\n| view            | 视图类                        |\n| factory         | 工厂类，专门生产各类dao的实例 |\n| ifac            | 接口类                        |\n| impl            | 接口实现类                    |\n| test            | 测试类                        |\n\n#### 项目运行\n\n1. 保证已安装jdk1.8的环境\n2. Eclipse与jdk要配置好\n3. navicat导入mylibary_all.sql运行生成对应的数据表前提是你安装好对应的mysql以及navicat\n4. 利用Eclipse打开测试类运行此项目\n\n#### 技术选型：\n```\n数据库：Oralce11G\nJDBC工具：DBUtils\n层与层之间解耦合：工厂设计模式\n数据展示控件：JTable\n访问数据库的查询方法封装使用技术：泛型，反射机制\n```\n\n#### 总体架构：\n\nMVC设计模式：\n1. **M(Model) 模型:** 应⽤程序的核⼼功能，管理这个模块中⽤的数据和值（bean,dao） 数据访问层：Dao\n2. **V(View )视图:** 视图提供模型的展示，管理模型如何显示给⽤户，它是应⽤程序的外观；（jsp/html）\n3. **C(Controller)控制器:** 对⽤户的输⼊做出反应，管理⽤户和视图的交互，是连接模型和视图的枢纽。（servlet/service）\n\u003e 在此项目中用的工厂模式 其实 ifac 包就相当于service\n4. entity文件夹 实体类属于公共层 不属于mvc任何层,也可存放于domain文件夹\n4. 本项目中view层调用dao层，dao层调用数据库，其中 dao层中 ifac为接口 impl为接口的实现 通过factory解耦合 并实现连接\n\n#### 模块划分\n\n##### 用户前台模块部分：\n```\n1. 注册信息\n2. 用户登陆\n3. 查看所有图书信息\n4. 查看热门图书信息\n5. 查看可借图书信息\n6. 查看已借图书信息(不可借)\n7. 查看本人所有借书记录\n8. 查看本人未归还图书记录\n9. 查看本人已归还图书记录(已还借书记录)\n10. 借书\n11. 还书\n```\n##### 管理员后台模块部分：\n```\n1. 用户登陆\n2. 查看所有图书信息\n3. 查看热门图书信息\n4. 查看可借图书信息\n5. 查看已借图书信息(不可借)\n6. 查看指定 图书名 的图书信息\n7. 添加图书\n8. 查看 所有用户的借阅记录\n9. 查看 所有用户的未还记录\n10. 查看 所用用户的已还记录\n11. 查看 当前用户的借阅记录\n12. 查看 当前用户的未还记录\n13. 查看 当前用户的已还记录\n14. 查看 指定用户的借阅记录\n15. 查看 指定用户的未还记录\n16. 查看 指定用户的已还记录\n17. 查询所有用户\n18. 查询指定用户\n```\n![系统结构图](config/Images/systemStructure.png)\n\n#### 主要功能\n\n1. 普通用户注册，主要功能为图书查询和借阅记录查询两大模块。\n\n+ 1. 查询所有图书\n  2. 借书\n  3. 还书\n  4. 查询自己的所有借书记录\n  5. 查询自己所有未还的图书\n  6. 查询自己的已还的借书记录\n\n2. 管理员用户注释，主要功能也是图书查询和借阅记录查询两大模块。\n   + 1. 查询所有的图书\n     2. 借书\n     3. 还书\n     4. 查询所有用户或指定用户的借书记录\n     5. 查询所有用户或指定用户的所有未还的图书\n     6. 查询所有用户或指定用户的已还的借书记录\n     7. 添加图书\n     8. 删除图书\n     9. 修改图书\n\n\n#### 数据库设计\n\n##### myLibary_book表\n\n| 列名       | 数据类型 | 可否为空 | 说明                           |\n| :--------- | -------- | -------- | ------------------------------ |\n| book_id    | int      | not null | 书籍编号，自增长               |\n| book_name  | varchar  | not null | 书籍名称                       |\n| book_count | int      | not null | 借出次数                       |\n| status     | int      | not null | 书籍状态（0，已借出，1，可借） |\n\n\n\n##### myLibary_user表\n|  列名\t |  数据类型  |  可否为空  |  说明  |\n| :----- | -------- | --------- | ------ |\n|user_id |\tint|\tnot null|\t用户编号，自增长|\n|user_name|\tvarchar|\tnot null|\t用户名，唯一|\n|user_password|\tvarchar\t|not null|\t用户密码|\n|user_type\t|int| 1not null |\t用户类型，1，普通用户，2，管理员|\n\n#### myLibary_record表\n\n\u003e 存放所有的借阅记录的表\n\n|  列名\t|  数据类型  |  可否为空  |\t 说明  |\n| :----  | --------- | --------- | ------ |\n| record_id\t| int | not null\t| 记录编号，自增长|\n| user_id\t| int | not null\t| 借书人的编号，外键|\n| book_id\t| int  | not null\t| 书籍编号，外键|\n| lend_time\t| date | not null\t| 借出时间|\n| return_time | date || 归还时间 |\n\n#### 业务功能简介\n\n1. 用户登录\n\n![](config/Images/1.png)\n\n![](config/Images/2.png)\n\n2. 用户注册\n\n![](config/Images/3.png)\n\n3. 所有图书查询功能\n\n![](config/Images/4.png)\n\n4. 热门图书查询\n\n![](config/Images/5.png)\n\n5. 可借图书查询\n\n![](config/Images/6.png)\n\n6. 不可借图书查询\n\n![](config/Images/7.png)\n\n7. 指定图书查询\n\n![](config/Images/8.png)\n\n8. 添加图书\n\n![](config/Images/9.png)\n\n9. 借阅记录查询 当前用户指定用户所有用户\n\n![](config/Images/10.png)\n\n10. 指定用户查询所有用户查询\n\n![](config/Images/11.png)\n\n#### 参考博客\n\n1. [JavaWeb中的MVC模式（有案例）](https://blog.csdn.net/weixin_45819587/article/details/120564732)\n1. [Java语言使用JDBC连接Mysql数据库的详细步骤，以及详细解释（一）](https://blog.csdn.net/weixin_44912627/article/details/109464979)\n1. [各个数据库中，查询前n条记录的方法](https://blog.csdn.net/Schaffer_W/article/details/117062045)\n1. [MySQL序列的使用](https://www.yiibai.com/mysql/mysql-using-sequences.html)\n1. [如何在MySQL中创建和使用序列？](https://www.nhooo.com/note/qa06il.html)\n1. [mysql与oracle的区别_MySQL](https://www.php.cn/mysql-tutorials-68362.html)\n1. [**Oracle与MySQL的几点区别**](https://blog.51cto.com/u_15067234/4183964)\n1. [[MySQL与Oracle之间的区别](https://www.cnblogs.com/KYKY22/p/5755105.html)]\n1. [mysql与oracle区别](https://blog.csdn.net/qq_37480021/article/details/80703081)\n1. [Oracle转MySQL日记（三） ---关于Oracle序列(Sequence)的转化](https://blog.csdn.net/zjfhhc/article/details/105935131)\n1. [Navicat设置自动递增的基本步骤](https://www.jianshu.com/p/6ede8ff21e4c)\n1. [Java Swing 隐藏JTable的某一列](https://blog.csdn.net/weixin_42089228/article/details/107901907)\n1. [Java Swing 只关闭当前窗体](https://zhuanlan.zhihu.com/p/150829207)\n1. [Java代码中如何判断一个字符串中是否包含特殊字符呢？](https://www.cnblogs.com/javalove2022/p/16689963.html)\n1. [如何给combobox设定一个默认值？](https://blog.csdn.net/weixin_34124651/article/details/85488261)\n1. [JTextField显示提示信息](https://blog.csdn.net/qq_43319748/article/details/108636961)\n1. [**Eclipse 快捷键返回值Alt+shift+L和Ctrl+1**](https://blog.51cto.com/u_14879850/5867019)\n1. [gitee的markdown文件图片显示不出来](https://www.cnblogs.com/hi3254014978/p/14150052.html)\n\n#### 技术应用\n\n + 1. Jdk和Jre和Jvm在项目中的应用\n\n + 2. Eclipse搭建Tomcat服务器以及Jdk8的应用\n\n + 3. 通过properties文件配置数据库驱动用户名密码url链接\n\n + 4. 变量和运算符\n\t+ Java程序运行原理\n\t\n\t+ 注释的使用\n\t\n\t+ 空白符和行号\n\t\n   + 类和主方法\n   \n   + 标识符、关键字和保留字\n   \n   + 常量\n        - 整型字面常量，如：123，067，0X1D，123L\n\t     - 浮点数字面常量，如：123.4，.18，1.8e1，1.2D，1.2F\n\t     - 布尔型字面常量，如：true，false\n\t     - 字符字面常量，如：’a’，’8’，‘\\n’，‘\\u123f’\n\t     - 字符串字面常量，如：“a”，“hello”\n\t     - 引用类型字面常量，：null\n\t     \n\t+ 数据类型\n\t\t- 基本数据类型：4类8种基本数据类型\n\t\t\t- 数值型\n\t\t\t\t- 整数类型 — byte、short、int默认、long\n\t\t\t\t- 浮点数类型 — float、double\n\t\t\t- 字符型 char\n\t\t\t- 布尔型 boolean\n\t\t- 引用数据类型\n\t\t\t- 类 class\n\t\t\t- 接口 interface\n\t\t\t- 数组 array\n\t\t\n\t+ 变量\n\t\n\t+ 数据类型的转换\n\t\t- 自动类型转换（隐式类型转换）\n\t\t\t* 有多种类型的数据混合运算时，系统首先自动的将所有数据转换成容量最大的那一种数据类型，然后进行计算\n\t\t\t* 自动转换规则\n\t\t\t\t+ boolean类型不可以转换为其他的数据类型\n\t\t\t\t+ 整型、字符型、浮点型的数据在混合运算中相互转换，转换时遵守以下原则(byte/short/char) --\u003e int --\u003e long --\u003e float ---\u003e double\n\t\t\t\t+ byte、short、char之间不会相互转换，他们三者在计算时首先会转换为int类型\n\t\t\t\n\t\t- 强制类型转换（显示类型转换）\n\t\t\t* 容量大的数据类型转换为容量小的数据类型时，需要使用强制类型转换，其格式如下：变量 = (目标类型) 值 例如： byte  a;int b;a = (byte) b;\n\t\t\t* 在强制类型转换过程中，源类型的值可能大于目标类型，因此可能造成精度降低或溢出，使用时需注意\n\t\t\n\t+ 运算符\n\t\t+ 算术运算符： +、﹣、*、/、%、++、 --\n\t\t\n\t\t+ 赋值运算符：=、+=、﹣=、*=、/=、%=\n\t\t\n\t\t+ 关系运算符：\u003e、\u003c、\u003e=、 \u003c=、= =、!=、instanceof\n\t\t\n\t\t+ 逻辑运算符：!、\u0026\u0026、||\n\t\t\n\t\t+ 移位运算符： \u0026、|、^ 、 ~、\u003e\u003e、\u003c\u003c、\u003e\u003e\u003e\n\t\t\n\t\t+ 条件运算符： ?：\n\t\t\n\t\t+ 运算符的优先级\n\t\t\n\t\t  - 按操作数多少划分\n\t\t  \t* 一元操作符 \u003e 二元操作符 \u003e 三元操作符\n\t\t  - 按运算类型划分\n\t\t  \t* 算术运算符 \u003e 关系运算符 \u003e 逻辑运算符 \u003e 赋值运算符\n\t\t  - 尽量多的使用括号\n\t\t  \t* 括号优先级别最高\n\t\t\n\t+ 表达式\n\t\n\t     - 表达式的值和类型\n             * 对表达式中操作数进行运算得到的结果称为表达式的值\n             * 表达式值的数据类型即为表达式的类型\n\t     \n\t     - 表达式的运算顺序\n\t     \t* 应按照运算符的优先级从高到低的顺序进行\n\t     \t* 优先级相同的运算符按照事先约定的结合方向进行\n\t\n+ 5. 流程控制语句\n\t- 条件语句\n\t\t* if语句\n\t\t* switch语句\n\t- 循环语句\n\t\t* while循环\n\t\t* do-while循环\n\t\t* for循环\n\t\t* 死循环\n\t\t* 嵌套循环\n\t\t* 循环的中断\n\n+ 6. 数组\n    - 一维数组\t\n        * 数组的定义和创建\n        * 数组的内存模型\n        * 数组的初始化\n        * 数组元素的访问\n        * 数组的属性\n        * 数组的异常\n    - 多维数组\t\n        * 多维数组的创建\n        * 多维数组的初始化\n        * 多维数组的内存模型\n    - 数组的操作\n        * 多维数组的遍历\n        * 数组的复制和排序\n\n+ 7. 方法定义及调用\n    - 方法的定义\n        * 什么是方法\n        \n          * 方法是完成某个功能的一组语句，通常将常用的功能写成一个\n        \n        * 方法的定义\n        \n          * [访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…)\n            {\n                方法体\n            }\n          * 修饰符：public 、static 被称为修饰符（后续会详细讲解它们）；\n          * 返回值类型：用来说明该方法运算结果的类型。如果返回其他类型，编译就可能出错；\n          * 方法名：它作为调用时引用方法的标识；\n          * 参数列表：方法的参数个数可以是0个到多个，每个参数前面要声明参数的数据类型；每个参数要用逗号分开。也可以一个参数都没有。\n          * 方法体：它是一个语句块，执行特定的功能操作。对于有返回值类型的方法，方法体当中最后一个语句是return关键字，它的作用是把方法的执行（运算）结果返回到方法外部。\t\t\n          * return  表达式：这里，进一步分析，return后面的表达式就是方法的返回值。需要注意表达式的类型，必须与方法头中声明的“返回类型”相匹配。\n        \n        * 方法的分类\n        \n          - 根据参数个数： \n        \n            * 无参方法\n            * 有参方法\n\n          - 根据返回值类型:\n            \t* 有返回值的方法：\n                    + 基本数据类型\n                    + 引用数据类型\n            \t* 无返回值的方法\n                    + void\n    - 方法的调用\n        * 无参方法的调用\n        * 有参方法的调用\n        * 使用方法时的注意问题\n    - 方法的重载\n    \t- 方法的重载就是在同一个类中允许同时存在一个以上同名的方法\n    \t- 方法重载的规则\n            + 方法名称相同\n            + 方法的参数必须不同\n            + 参数个数不同   或   参数类型不同\n            + 方法的返回值类型可以相同，也可以不同\n\n+ 8. 面向对象基础\n\t- 面向对象编程思想（OOP：Object-Oriented Programming ）\n    - 类的定义\n        * 什么是类\n        * 类的格式\n        * 类的成员\n    - 对象的创建和使用\n        * 什么是对象\n        * 创建对象\n        * 构造器（构造方法/构造器，Constructor）\n            - 具有与类相同的名称\n            - 不含返回值类型\n            - 不能在方法中用return语句返回一个值\n            - 一般访问权限为public\n            - 在一个类中，具有上述特征的方法就是构造器。\n            \t\t+ 构造器的作用\n                    - 完成对象的创建，即完成对象的实例化\n                    - 一般使用构造器来完成对成员变量的初始化\n\n        * 使用对象\n        \t- 在其他类中或main方法中，若想访问对象的属性或是方法必须先实例化这个类，然后通过对象名（引用）和点操作符来完成：\t对象名. 属性名（）；对象名. 方法名（）；\t\t\t\t- 如果在类内的方法中，访问本类的属性和方法就可以直接访问了。\n\n        * 匿名对象\n        \t- 创建完对象，在调用该对象的方法时，也可以不定义对象的句柄，而直接调用这个对象的方法。这样的对象叫匿名对象\n        * 变量的作用域\n    - this关键字\n    \t+ 代表对象自身的引用\n            - 一个引用\n            - 指向调用该方法的当前对象\n\t\t+ 通常在类的方法定义中使用\n\n    - 垃圾回收机制(Garbage First)\n    \t+ Java的垃圾回收机制是自动的，它保证程序健壮的主要手段，避免了由于程序员忘记回收内存而引起的内存泄漏，同时也避免了回收内存带来的代码繁琐。\n\t\t+ 垃圾回收机制实际上是JVM内部运行的一个优先级比较低的后台线程，这种多线程的模式使得java 具有更好的性能，完全不用程序员参与。\n\t\t+ 垃圾回收机制仅仅作用于堆内存，于栈内存无关。\n\t\t+ 对于程序员来说，对象何时变成垃圾呢？\n\t\t~~~\n            对象的引用被赋值为null； Person p = new Person( );   p = null;\n            一次性使用的匿名对象;\tnew Person( ).sayHello( );\n            超出生命周期的；如：\n                  for( int I = 0; i\u003c 100; i++){\n                    Person p = new Person( );\n                }\t\n\t\t~~~\n+ 9. 面向对象高级特性\n\n\t- 类的继承\n        * 理解继承的含义\n        * 继承的语法和规则\n        * 子类实例化的过程\n        * super关键字和this关键字\n\t- Java包的概念\t\n\t\t* 包的概念及应用\n        * Java类库中的常用包\n        * import导入包中的类\n        * 访问权限修饰符\t封装\n        * 访问权限修饰符\n\t- 方法的覆盖\n\t- 引用数据类型的转换\n        * 上溯造型\n        * 下溯造型\n        * instanceof运算符\n\t- 多态\n\n+ 10. 异常处理\n\n\t- 异常简介\n\t\t* 异常的定义\n\t- 异常类的继承关系\n        * 异常的继承树\n\t\t* 异常类型\n\t- 异常处理机制\n\t\t* 异常的处理过程\n\t\t* try..catch语句\n\t\t* finally语句\n\t\t* throws关键字\n\t\t* throw语句\n\t- 方法调用的堆栈\n\t- 自定义异常\n\n+ 11. 工具类\n\t- Java API\tJava API简介\n\t- Object\tObject介绍及方法\n\t- 包装类\t包装类简介\n        * 基本数据类型转换为包装类\n        * 字符串转换为包装类\n        * 包装类转换为基本数据类型\n        * 包装类转换为字符串\n        * 字符串转换为基本数据类型\n        * 自动装箱和自动拆箱\n\t- 字符串类\n        * String对象的创建\n        * String中常用的方法\n        * StringBuffer对象的创建\n        * StringBuffer中常用的方法\n        * StringBuilder对象的创建\n        * StringBuilder中常用的方法\n        * String与StringBuffer的比较\n        * StringBuffer与Stringbuilder的比较\n\t- Math类\n        * Math中常用的方法\n\t- 日期类\n        * Date类\n        * Date类中常用方法\n        * Calendar类\n        * Calendar类常用属性\n        * SimpleDateFormat类的使用\n\n+ 12. 集合\n\t\t-Java中的集合类\n\t\t* 集合概述\n\t\t* Java中集合框架层次结构\n\t\t-Collection接口\n        * Collection接口\n        * Set接口\n        * Set接口的实现类\n        * List接口\n        * List接口的实现类\n        * Iterator接口\n\t\t-Collections类\n\t\t* Collections类\n\t\t-Map接口\n\t\t* Map接口\n\t\t* Map接口的实现类\n\t\t* HashMap与TreeMap的比较\n\t\t* HashMap与HashTable的比较\n\t\t-集合中的异常\n\t\t* 使用集合时常见的异常\n\t\t-泛型的使用\n\t\t* 集合中泛型的使用\n\n+ 13. 文件与流\n\t\t-文件管理\n\t\t* 文件管理概述\n\t\t* File类\n\t\t-流的概念及API\n\t\t* 流的概念\n\t\t* 字节流中的层次结构图\n\t\t* 字节流中的主要方法\n\t\t* 字符流中的层次结构图\n\t\t* 字符流中的主要方法\n\t\t-节点流与处理流的使用\n\t\t* 什么是节点流\n\t\t* 节点流的方法\n\t\t* 文件的访问\n\t\t* 什么是处理流\n\t\t* 常见的处理流类\n\t\t-对象的序列化\n\t\t* 对象序列化概述\n\t\t* 支持序列化的接口和类\n\t\t* 对象序列化的条件\n\t\t* transient\n+ 14. 多线程编程\n\t\t-多线程简介\n\t\t* 进程/线程区别\n\t\t-多线程实现的两种方式\n\t\t* 继承\n\t\t* 接口\n\t\t* 两种实现方式比较\n\t\t-线程的属性和控制\n\t\t* 线程状态及其生命周期\n\t\t* 线程类中的主要方法\n\t\t* 线程优先级\n\t\t* 线程休眠和线程中断\n\t\t* 线程的高级操作\n\t\t-多线程的同步/通信问题\n\t\t* 线程同步\n\t\t* 锁\n\t\t* 死锁\n+ 15. 网络编程\n\t- 网络基础知识\n\t\t* 网络基础知识\n\t\t* IP地址和端口号\n\t\t* TCP与UDP\n\t- Socket编程\n\t\t* Socket原理\n\t\t* 基于TCP的Socket编程\n\t\t* 基于多线程的Socket编程\n+ 16. JDBC与Java数据库编程\n\t- JDBC概述\n\t\t* 什么是JDBC\n\t\t* JDBC实现的功能\n\t\t* JDBC的体系结构\n\t\t* JDBC特点\n\t\t* JDBC核心接口与类\n\t- 创建JDBC应用\n\t\t* 创建JDBC应用程序的步骤\n\t\t* 数据库驱动程序\n\t\t* 加载 JDBC 驱动程序\n\t\t* 建立与数据库的连接\n\t\t* 获得 Statement 对象\n\t\t* 执行 SQL 语句\n\t\t* 操作结果集对象\n\t\t* SQL类型对应 Java 数据类型\n\t\t* ResultSet接口的getXxx 方法\n\t\t* 关闭操作对象及连接\n\t\t* JDBC日期时间处理\n\t- PreparedStatement\n\t\t* PreparedStatement接口\n\t\t* PreparedStatement接口setXxx 方法\n\t\t* PreparedStatement接口优点：  \n+ 17. Java8新特性\n+ 18. DDL、DML、DQL在项目中的应用\n\t- 限制数据和对数据排序\n\t- 单行函数\n\t- 多表连接\n\t- 分组函数\n\t- 子查询\n\t- 集合运算\n\t- 高级子查询\n\t- 层次查询\n\t- 数据操作与事务控制\n\t- Oracle数据库网络连接\n\t- 创建和维护表\n\t- 约束\n\t- 视图\n\t- 序列、索引、同义词\n\t- 用户、权限和角色\n+ 19. Oracle数据库迁移至Mysql数据库\n+ 20. Java Swing技术的应用","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fmylibary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaobjects%2Fmylibary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fmylibary/lists"}