项目管理
学 院: 昆明理工大学城市学院
专 业: 计算机科学与技术
学生姓名:
指导教师:
日 期: 20##-10-27
第一阶段 JAVA 语言基础
一、什么是计算机程序?
1.计算机程序 : 指令集合+数据
2.JAVA程序的执行过程(运行原理)
3.Java标识符命名规范:字母数字以及下划线_或者“$”的组合,不能是以数字开头。
二、java语言基础
1、8基本数据类型
2、数组:byte[]、int[] 、double[]
3、引用类型:例如 String (后面详细讲解)
三、java 程序结构
1、顺序结构
2、分支控制结构 ,
3、循环结构
(1)for循环与增强for循环
(2)while循环 do-while循环
(3)一些跳出循环的语句:break、continue、return、goto
四 运算符: 3种运算符
1、算术运算符:自动转换与强制转换
2、逻辑运算符
3、关系运算符
五、变量与常量
1、变量:变量就是计算机内存中的一块存储区域。
2、变量的声明:成员变量、局部变量
3、变量的生命周期(作用域)
六、数组
1.什么是数组?数组是一个对象
2.数组的两个特点
3.声明数组的格式:数据类型[] 数组名 如:int[] fs;
4.创建数组的方式
5.怎么来访问一个数组里面的元素?通过for循环遍历数组中的每一个元素
七.Char与String
八、jdk目录结构
九、Linux命令
十、进制基础
1.十进制
2.二进制:补码:解决负数问题
十一、数据类型:基本类型(8种)与引用类型
十二、基本数据类型转换:隐式(自动)类型转换:从小类型到大类型
十三.方法:就是函数
1.方法的三要素:方法名,参数列表,返回值
2.java函数的定义
十四、排序算法
第二阶段 JAVA 面向对象
一、对象: (个体)
二、类: (名词)
三、引用:(代词)
1) 是指向对象的代词
2) 引用变量的本质,是指向对象的地址值
3) 引用通过地址值间接引用了对象.
4) 引用不是对象
5) 当引用的值是null时候, 访问属性或方法会出现空指针异常
四、方法: (动词)
五、构造器(构造方法)
创建和初始化对象的方法(初始化属性)
六、重载与重写
七、null值的问题
八、继承
1) 表达父子类型的关系: 4格方块有7种, 可以被打掉的形状有两种, 植物有很多种, 僵尸有很多种
2) 父类型的属性和方法可以被子类型继承。子类可以共享,共用父类声明的方法.
3) 私有方法不能继承, 构造器不能继承.
4) 子类构造器中一定调用父类的构造器(super())
5) 父类型定义变量可以引用子类型对象, 就是多态现象
6) 在子类型中可以利用重写来修改从父类继承的方法.
7) super在子类中访问父类中声明的属性方法
九、修饰词:
1. 限定属性/方法/类的访问范围的.
private: 仅仅在类内部可见 public: 在任何地方都可见
package(包) protected 默认的
2.static和final
十、二维数组
十一、抽象类
十二、Java 源文件结构
1、Java文件中可以有多个了类
2、关键字出现顺序
3、内部类: 就是在类内部定义的类
十三、Tetris 俄罗斯方块(Tetromino 四格方块)
1 明确业务需求。用自然语言,将业务功能描述清楚
2 业务分析。找到有哪些业务对象根据图片的分析
3 数据模型, 一切业务对象转换为数字表示
4 类的数据结构设计
5 数据的初始化(构造器)
6 详细功能设计(动作, 方法)
7 界面绘制(利用Java Swing API实现)
第三阶段 JAVA SE核心I
一、1. toString() 方法
2.equals 和 hashCode
1) 一般一起重写
2) hashCode 用于散列表算法(以后会讲到)
3) equals 用于比较对象是否相等
== 与 equals
Java API 类 几乎都重写了 toString equals hashCode
3.String 类的特点
== 比较变量值, 引用变量值相等, 意味着是"同一个对象"的引用
4.String API
二、Object
1) 类默认继承于Object, 所以类的最终父类型是Obejct(体现: 一切皆对象)
Object 定义的变量可以引用任何类型的实例,Object 称为继承根。
2) Object 定义了很多基本方法, 被子类型继承
toString() 建议重写, 返回这个对象的文本描述
equsle()建议重写, 比较两个对象是否相等,==只能比较变量值,不能比较对象 hashCode() 建议与equals一起重写.
当两个对象相等时候, hashCode()返回值一样
当两个对象不相等时候, hashCode()返回值尽量不同
三、String 字符串
1) 是系统核心的数据输入输出类! 凡是界面上的文本信息都是String.
2) 字符串对象是不可改变的!(String使用不变模式设计)
3) 字符串的内部结构
4)"静态字符串"的优化现象
5) 字符串常用API方法(算法)
四、正则表达式:
1) 是字符串的检索匹配规则
2) 正则表达式使用广泛: eclipse linux java c# PHP...
3) 是字符序列匹配规则
4) 字符集: 匹配多个字符的某一个
5) 数量词
6) 边界匹配
7) 正则表达式的应用:
8) 分组()
9) 特殊字符转义
10) java String 中 对正则表达式的支持
11) 字符串拆分 :str.split(",\\s?")
12) String matches split replaceAll
五、StringBuilder 类的总结
1) Java 的字符串连接的过程是利用 StringBuilder实现的
2) 建议在大量字符串计算时候利用 StringBuilder 完成.
简单说: StringBuilder 的性能好于 String
3) 如下情形, 不需要使用StringBuilder
4)StringBuffer PK StringBuilder
六、字符串总结
1) Java 中代表字符串的有: char[] String StringBuilder
2) char[] 只是字符数据, 没有算法, 可以自己实现.
3) String 是不可变字符串, 是最常用的字符串, 界面文本数据就是使用 String输出的. API经常返回新String对象, 性能稍差.
4) StringBuilder是可变字符串,字符串的内容计算, 建议采用StringBuilder实现. 性能好.
七、Java 中的时间
1) 是一个long类型是整数, 是GMT 1970元旦到现在累计的毫秒数
2) java.util.Date 封装了公元历法 算法
3) Date API 方法:
八、日期
1、SimpleDateFormat的作用
1)将Date对象转换为特定格式的字符串
2)将字符串按照特定格式转换为Date对象:format方法和parse方法
2、DateFormat类是SimpleDateFormat的父类
3、Calendar类
九、包装类:
1.将基本类型转化为以对象形式存在,参与面向对象开发
2.包装类要掌握如何从字符串转换为对应的基本类型数据.
3.包装类的作用:让基本类型数据可以参与面向对象开发
4.在java 1.4的时候不能使用自动拆装箱特性
十、数组的弊端:
十一、java中的集合框架
1.Collection接口:该接口定义了集合的相关特征.该接口派生了两个子接口
--List:可重复集(同一个元素可以放入若干次) 有序集
这里所谓同一个元素指的是equals为true
--Set:不可重复集 无序集
2.Collection定义的方法
3.List集合的实现类 --ArrayList:内部使用数组实现的集合
4.Set集合
HashSet:使用散列算法实现的Set
TreeSet:使用二叉树实现的Set
十二、数据结构
1.队列Queue:
2.栈结构(Deque):Deque是Queue的子接口
3.Comparable接口比较器,用来定义比较规则.
4.Collections提供了一个重载的排序方法sort(Collection c,Comparator com)
5.数据结构 Map
6.HashMap的性能:
十三.设计模式
第四阶段 JAVA SE核心 II
一、异常处理
1.throw语句:throw e;
2.throws
3.runtimeException异常
4.finally块
5.throw与throws的区别
二、Java流分为:
--低级流:字节流(数据源明确)
--高级流:处理流、过滤流(不能独立存在,通常基于一个流存在)
1.字节输入输出流
FileInputStream和FileOutputStream
具有缓冲功能:BufferedInputStream和BufferedOutputStream
读写基本数据类型:DateInputStream和DateOutputStream
2.字符输入输出流
InputStreamReader和OutputStreamWriter
缓冲功能:bufferedReader和bufferedWriter
读取文本文件:FileReader和FileWriter
3.PrintWriter带自动刷新的缓冲字符输出流。常用构造方法
三、一个基本类型数据的基本过程
1:将一个基本类型数据转化为相应的字节
2:将这些字节有序的写入文件保存
序列化、基本类型序列化、数据持久化、反序列化的定义
3.可以对对象进行序列化与反序列化的流
四、多线程:java语言的一个优势就是处理多线程比较简单
1.线程与并发
2.创建线程的步骤:
3.并发的执行过程:
4.线程常用的方法
5.守护线程(后台线程)
6.线程安全问题:
synchronized关键字:同步监视器就是要上锁的对象.
7.线程安全与不安全的类
8.很多应用中都需要使用多线程,而有些情况当一个线程要完成的工作需要基于另一个线程的工作情况时,我们则需要两个线程协调工作。以下方法是在Object中定义的
wait():在当前线程上等待.
notify():通知一个在当前对象上等待的线程运行.
notifyAll():通知所有在当前对象上等待的线程回到runnable状态
五、File文件类
1.打开文件
2.随机访问文件
3.File中常用的方法
第五阶段 数据库
一. 导论
1. 什么是数据库
2. 数据库应用:商业系统软件(互联网系统,企业系统)会涉及到大量的商业数据
3. Oracle
4. 表和关系型数据库:用表来存储数据的数据库管理系统
5. SQL 通用的关系型数据库的操作语言
6. SQL中的分类
DDL(Data Definition Language)数据定义语言:create drop,…
DML 数据操作语言(Data Manipulation Language):insert, delete,update,…
TCL 事务控制语言(Transaction Control Language)
DQL(Data Query Language):select
DCL 数据控制语言(Data Control Language):grant、revoke
二. 使用Oracle
1. 安装Oracle(DBA)->
创建库(DBA)->创建用户(DBA)->登录数据库(SE)->访问数据库(SE)
2. 我们实验Oracle
3. 如何访问
三.SQL初步
1. DDL
2. DML
1) 用insert给表添加行
insert into 表名 (列名1,列名2,...)
values(数据1,数据2,...)
1. 列名和数据对应,而且数据要符合列类型的规定
2. 没有插入的列值可以为null
3. 字符串常量用''
4. 日期问题:to_date函数to_date('20##-10-10','yyyy-mm-dd')
2) update 修改表中的某些行
3) delete 删除表中某些行:delete from 表名 where 条件
3. DQL
from 表名 -- 表示要查询的表 where 条件 -- 表示要筛选的行
select 列1,列2,.-- 表示要选取的列
四. Oracle字符操作
1. char 和 varchar2的区别
char是定长,varchar2可变长,指的是存储空间
char(20) 占用空间数指定。varchar2(20) 占用空间数和实际的字符串长度有关
2. 关于varchar2的中文问题:了解Oracle的字符编码
3. 关于nvarchar2
4. char和varchar2的最大长度2000和4000
5. 字符串的连接
6. 一组常用函数
五.Oracle日期操作
1. 日期类型date 年月日时分秒:timestamp 年月日时分秒(秒带小数点)
2. to_date, to_char
3. last_day(date)所在月的最后一天
4. round(date) 对时分秒进行舍入; trunc(date) 把时分秒去掉
5. extract
六. DDL 表
1. 关于null
2. number的舍入;先舍入,再看长度
3. 主键,数据表中行的唯一性
1)创建主键
2)主键约束:主键不能为null,主键不能重复
4. drop truncate delete
5. 添加列:alter table goo_11 add ( salary number(8,2) );
如何增加not null 列
6. 变更列 alter table goo_11 modify (name varchar2(15) not null);
7. 删除列alter table goo_11 drop column name;
8. 根据其他的表创建新表
七. DQL 表
1. where 子句中的 >,<,>=,<=,<>,=,AND OR
2. where子句中的like: 针对字符串的模糊查询 %多个 _一个
3. where 子句中的between ** and **
4. where 子句中的 in 和 not in
5. where 判断空值, is null, is not null
6. where子句中的子查询
7. where子句中可以用函数
8. select 列的别名:select 查询的结果可以看成是逻辑上的一张表
9. distinct 可以去掉重复的行
10. select 中可以使用函数
11. 聚集函数(聚合函数)count min max sum avg对查询出的所有行进行运算
12. order by对查询的结果可以根据某个(或几个)列进行排序
13. group by 分组:先分组,对组的特征进行查询
14. having 根据条件过滤组
15. decode函数:
16. 表的关联
17. 连接表
1) 笛卡尔积
2) 内连接 inner join ... on ...
3) 外连接:左外连好,右外连,全外连
4) 自连接
18. 子查询:用在where子句中,单行单列子查询,多行单列的子查询
第六阶段 JDBC
一、Jdbc
1.什么是JDBC
2. 开始使用JDBC
3.不要用JDBC-ODBC桥
4. JDBC API (接口):
5. PreparedStatement 接口的作用:提高效率、防止SQL Injection
6. 封装连接工具类:db.properties
7. JDBC的事务操作
8. JDBC的核心API
Connection 封装连接
Statement 封装SQL语句及其执行
PreparedStatement
ResultSet 封装DQL执行的结果
二、连接池技术(原理)
三、其他处理
1. Batch处理, 批量的插入,更新:
stmt.addBatch();把刚刚设置好的数据添加批处理缓冲
stmt.executeBatch();执行批处理,把缓冲的数据一次传送给数据库执行
注意:缓存的批处理量受客户端JVM内存限制,要指定一个合理的批量值
2. DAO (Data Access Object):企业应用中,专门负责数据库访问的程序叫数据访问层四. 数据库设计
1. 三范式
2. E-R关系(E-R图)
3. 数据库设计文档
4. 创建表的SQL语句
5. DAO设计
五. Oracle其他对象
1. 序列
2. 索引 Index:为了提升查询效率可以创建索引.
3. 视图(View)
4.外键约束
六、存储过程:运行在数据库内部对数据进行操作的一段程序(Oracle中用PL/SQL语言)
1). PL/SQL块
set serveroutput on ; declare --变量的声明
Begin --程序 dbms_output.put_line('c='||c); end;
2) If… then …;elsif … then …; else …; end if;
3) Loop…exit when…;end loop;
4) for i in 1..100 loop …; end loop;
5) cursor 游标
6) rowtype
7) 简单的存储过程 procedure