01.绪论
数据库系统概述 基本概念 数据 数据库(DB) 长期存储在计算机内、有组织的、可共享的大量数据的集合 永久存储 有组合 可共享 数据库管理系统(DBMS) 数据定义功能(数据定义语言DDL) 数据组织、存储和管理 数据操纵功能(数据操作语言DML) 数据库的事务管理和运行管理 数据库的建立和维护功能 数据库系统(DBS) 由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成 数据管理技术的产生和发展 人工管理阶段 文件系统阶段 数据库系统阶段 数据模型 现实世界的模拟 三类数据模型 概念模型 用于数据库设计 逻辑模型 关系模型...
14.日志
日志 作用 跟输出语句一样,可以把程序在运行过程中的详细信息都打印在控制台上。 利用log日志还可以把这些详细信息保存到文件和数据库中。 使用步骤 不是java的,也不是自己写的,是第三方提供的代码,所以我们要导入jar包。 把第三方的代码导入到当前的项目当中 把配置文件粘贴到src文件夹下 在代码中获取日志对象 调用方法打印日志 日志级别 TRACE, DEBUG, INFO, WARN, ERROR 还有两个特殊的: ALL:输出所有日志 OFF:关闭所有日志 日志级别从小到大的关系: TRACE < DEBUG < INFO < WARN < ERROR 配置文件 123456789101112131415161718192021222324252627282930313233343536373839404142<?xml version="1.0" encoding="UTF-8"?><configuration>...
13.动态代理
动态代理 特点: 无侵入式的给代码增加额外的功能 为什么需要代理: 对象需要做的事太多, 可以通过代理来转移部分职责 代理长什么样: 对象有什么方法想被代理, 代理就一定要有对应的方法 Java通过什么来保证代理的样子: 通过接口保证, 后面的对象和代理需要实现同一个接口, 接口中就是被代理的所有方法 如何为Java对象创建一个代理对象 java.lang.reflect.Proxy类: 提供了为对象产生代理对象的方法
12.反射
反射 反射允许对成员变量, 成员方法和构造方法的信息进行编程访问 作用 获取一个类里面所有的信息, 获取到了之后, 再执行其他的业务逻辑 结合配置文件, 动态地创建对象并调用 获取class对象 三种方式 源代码阶段: Class.forName(“全类名”); 加载阶段: 类名.class 运行阶段: 对象.getClass(); 获取构造方法 获取成员变量 获取成员方法
11.网络编程
网络编程 三要素 IP 127.0.0.1 (永远表示本机) 端口号 取值范围为0~65535, 其中0~1023之间的端口号已用于一些知名的网络服务或应用 协议 UDP: 面向无连接, 速度快, 大小限制一次最多发送64K, 数据不安全, 易丢失 TCP: 面向连接, 速度慢, 没有大小限制, 数据安全 InetAddress类 static InetAddress getByName(String host) : 确定主机名称的IP地址. 主机名称可以是机器名称, 也可以是IP地址获取此IP地址的主机名 String getHostName() : 获取此IP地址的主机名 String getHostAddress() : 返回文本显示中的IP地址字符串 UDP通信 12345678910111213141516171819/* 发送端 */// 1.创建DatagramSocket对象// 空参: 所有可用的端口中随机一个进行使用// 有参: 指定端口号进行绑定DatagramSocket socket = new...
10.多线程
多线程 线程 操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位 简单理解: 应用软件中互相独立, 可以同时运行的功能 并发和并行 并发: 在同一时刻, 有多个指令在单个CPU上交替执行 并行: 在同一时刻, 有多个指令在多个CPU上同时执行 实现方式 继承Thread类的方式进行实现 定义一个类继承Thread 重写run方法 创建子类的对象, 并启动线程 实现Runnable接口的方式进行实现 定义一个类实现Runnable接口 重写run方法 创建自己的类的对象 创建一个Tread类的对象, 并开启线程 利用Callable接口和FutureTask对象的方式实现 特点: 可以获取到多线程运行的结果 创建一个类MyCallble实现Callable接口 重写call (有返回值, 表示多线程运行的结果) 创建MyCallble对象 (表示多线程要执行的任务) 创建FutureTask对象 (管理多线程运行的结果) 创建Thread类的对象,...
09.IO流
IO流 用于读写文件或网络中的数据, 以程序为参照 字节流 InputStream FileInputStream 创建字节输入流对象 文件不存在直接报错 读数据 一次读一个字节, 读出的数据为在ASCII上对应的数字 读到文件末尾了, read方法返回-1 循环读取 123456789101112// 循环读取一个字节数据int b;while((b = fis.read()) != -1) { sout((char) b);}// 循环读取一个容量大小的字节数据int len;byte[] bytes = new byte[1024 * 1024 * 5];while((len = fis.read(bytes)) != -1) { sout(new String(bytes, 0,...
08.File
File File对象就表示一个路径, 可以是文件的路径, 也可以是文件夹的路径 这个路径可以是存在的, 也允许是不存在的 常见构造方法 方法名称 说明 public File(String pathName) 根据文件路径创建文件对象 public File(String parent, String child) 根据父路径名字符串和子路径名字符串创建文件对象 public File(File parent, String child) 根据父路径对应文件对象和子路径名字符串创建文件对象 成员方法细节 public long length() 只能获取文件的大小, 单位是字节, 不能获取文件夹大小 public boolean delete() 删除文件和空文件夹, 不走回收站; 不能删有内容的文件夹 public File[] listFiles() 获取权限内文件夹里的所有文件(包含隐藏文件)和文件夹的路径, 以数组形式返回
07.异常
异常 作用 异常是用来查询bug的关键参考信息 异常可以作为方法内部的一种特殊返回值, 以便通知调用者底层的执行情况 处理方式 JVM默认的处理方式 把异常的名称, 异常原因及异常出现的位置等信息输出在了控制台 程序停止执行, 异常下面的代码不会再执行了 自己处理(捕获异常) 格式 1234567try { // 可能出现异常的代码;} catch(异常类名 变量名) { // 异常的处理代码;} finally { // 一定被执行, 除法虚拟机终止;} 目的: 当代码出现异常时, 可以让程序继续往下执行 如果try中遇到的问题没有被捕获, 怎么执行? 相当于try…catch的代码白写了, 最终还是会交给虚拟机进行处理 如果try中遇到了问题, 那么try下面的其他代码还会执行吗? 下面的代码不会执行, 直接跳转到对应的catch当中执行 常见方法 方法 说明 public String...
06.方法引用
方法引用 把已经有的方法拿过来用, 当做函数式接口中抽象方法的方法体 条件 引用处必须是函数式接口 被引用的方法必须已经存在 被引用方法的形参和返回值需要跟抽象方法保持一致 被引用方法的功能要满足当前需求 方法引用符: :: 分类 引用静态方法 格式: 类名 : : 静态方法 范例: Integer::parseInt 引用成员方法 格式: 对象 : : 成员方法 其他类: 其他类对象 : : 方法名 本类: this : : 方法名 父类: super : : 方法名 引用构造方法 格式: 类名 : : new 范例: Student::new 其他调用方式 使用类名引用成员方法 格式: 类名 : : 成员方法 范例: String::subString 第三条条件变为: 被引用方法的形参, 需要跟抽象方法的第二个形参到最后一个形参保持一致, 返回值保持一致 第一个参数: 表示被引用方法的调用者, 决定了可以引用哪些类中的方法. 在Stream流中, 第一个参数一般都表示流里面的每一个数据. 假设流里面的数据是字符串,...