JDBC:Java 提供的一套用于操作数据库的接口 API。Java 程序员只需要面向该接口即可连接任何提供了 JDBC 驱动程序的数据库,完成对数据库的各种操作。不同的数据库厂商,需要针对这套接口提供不同的实现。
JDBC 程序编写步骤(示范):
1234567891011121314151617 /* [0] 前置操作 */ /* [1] 注册驱动 */Driver driver = new com.mysql.cj.jdbc.Driver(); /* [2] 获取连接 */String url = "jdbc:mysql://localhost:3306/sinarcsinx";Properties properties = new Properties(); properties.setProperty("user", "root");properties.setProperty("password", "******");Connection connect = d ...
正则表达式:对字符串执行模式匹配的技术。一个正则表达式,就是用某种模式去匹配字符串的一个公式。除 Java 外,还有许多语言支持正则表达式。
1234567String content = "HeruinKCoin"; //对象文本String regular = "[A-Z]"; //[1] 创建规则Pattern pattern = Pattern.compile(regular); //[2] 创建模式对象Matcher matcher = pattern.matcher(content); //[3] 创建匹配器while (matcher.find()){ //[4] find() 是否找到下一个 System.out.println(matcher.group(0)); //[5] group(0) 输出找到的当前对象}
Matcher 底层维护了一个 group[] 数组。如果 [4] 在文本里匹配到对象,会在 group[0] 记载该起始位置 n1,在 group[1] 记 ...
反射机制(Reflection)允许程序在执行期借助于 Reflection API 取得任何类的内部信息(如成员变量、成员方法等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到。
加载完类之后,在堆中就产生了一个 Class 类型的对象(一个类只有一个 Class 对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构。所以,形象地称之为:反射
ocp 原则(开闭原则):不修改源码来扩展功能
计算机的三个阶段
代码阶段 / 编译阶段
编写代码 ——(Javac 编译)——> .class 字节码文件
Class 类阶段 / 加载阶段
字节码文件 ——(ClassLoader 类加载器)——> Class 类对象(堆中)· 字节码二进制数据 / 元数据(方法区)
Class 类对象包含:成员变量 Field[] fields、构造器 Constructor[] cons、成员方法 Methord[] ms
Runtime 运行阶段
创建对象,该对象知 ...
网络通信:两台设备之间通过网络实现数据传输。
java.net 包下提供了一系列类或接口,供程序员使用,完成网络通信
网络的相关概念网络
网络:两台或多台设备通过一定物理设备连接起来构成了网络
根据网络覆盖范围的不同,对网络进行分类:
局域网:覆盖范围最小,仅覆盖一个教室·机房
城域网:覆盖范围较大,可覆盖一个城市
广域网:覆盖范围最大,可以覆盖全国,甚至全球。万维网 是广域网的代表
IP 地址
IP 地址:用于唯一标识网络中的每台计算机 / 主机
查看 IP 地址:ipconfig
IPv4 是 4 个字节(32位)表示。每个字节范围是 [0,255]
IP 地址的表示形式:点分十进制(xx.xx.xx.xx),每个十进制数范围是 [0,255]
IP 地址的组成 = 网络地址 + 主机地址
A类:0 + 7 位网络号 + 24 位主机号(0.0.0.0 ~ 127.255.255.255)
B类:1 + 0 + 14 位网络号 + 16 位主机号(128.0.0.0 ~ 191.255.255.255)
C类:1 + 1 + 0 + 21 位网络号 + 8 ...
文件
文件就是保存数据的地方。
文件流:文件 在 程序 中是以 流 的形式来操作的。
流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源到程序的路径
输出流:数据从程序到数据源的路径
常用的文件操作
Java 提供了 File 类,用于处理文件相关的操作
创建文件对象相关构造器和方法
new File(String pathname):根据路径创建一个 File 对象
1234String path1 = "d:/test.jpg";String path2 = "d:\\test.jpg";File file1 = new File(path1);File file2 = new File(path2); //此时只是在内存中产生了一个对象
new File(File parent, String child):根据父目录文件 + 子路径构建
123File parentFile1 = new File("d:\\");String fileName1 = "test.t ...
线程的概念
对于一般程序而言,其结构大都可以分为一个入口、一个出口、一个顺次执行的语句序列。这样的语句结构称为进程,它是程序的一次动态执行,对应了代码加载、执行至完毕的全过程。
进程即是程序在处理机中的一次运行。在这样一个结构中不仅包含程序代码,也包括了系统资源的概念。
在单 CPU 计算机内部,微观上讲,同一时间只能有一个线程运行。实现多线程即从宏观上使多个作业同时执行。
程序:为完成特定任务,用某种语言编写的一组指令的集合。
进程:运行中的程序。当你运行一个程序,系统就会为该进程分配空间。进程是程序的一次执行过程。是一个动态过程:有其自身产生、存在、消亡的过程。
线程:由进程创建的,进程的一个实体。一个进程可以有多个线程。
单线程:同一时刻,只允许执行一个线程。
多线程:同一时刻,可以执行多个线程。
并发:同一时刻,多个任务交替执行,造成一种貌似并行的状态。单核 CPU 实现的多任务就是并发。
并行:同一时刻,多个任务同时进行。多核 CPU 可以实现并行。
线程的结构在 Java 中,线程由以下 3 部分组成:
虚拟 CPU:封装在 java.lang.Thread 类中,控制 ...
图形用户界面(Graphical User Interface,简称 GUI)是大多数程序不可缺少的部分。
Java 的图形界面由各种组件组成。在 java.awt 和 java.swing 包中定义了多种用于创建图形用户界面的组件类。
Swing 组件和 AWT 组件最大的不同是 Swing 组件实现时不包含任何本地代码,因此不受硬件平台的限制,而具有更多的功能,并且在任何平台上运行效果都是相同的。不包含本地代码的 Swing 组件被称为 “轻量级” 组件,而 AWT 被称为 “重量级” 组件。两种组件一同使用的场合,AWT 总是显示在上面。
设计用户界面是一般有 3 个步骤:
选取组件
设计布局
响应事件
容器
组件分为容器组件和非容器组件。容器组件即可以包含其他组件的组件。非容器组件必须包含在容器组件中。
容器组件分为:顶层容器、一般用途容器
顶层容器Swing 中提供了 4 种顶层容器:
JFrame:带有标题行和控制按钮(最小化、恢复/最大化、关闭)的独立窗口。有时称为框架。创建程序时要使用 JFream
JApplet:创建小应用程序时要使用 JApp ...
什么是树?
结构严格派 唯一父节点和复数子节点
结构中立派 有前驱和后继关系就行
结构自由派 能存放内容就行
类型严格派 是一种数据结构
二叉树是树
链表也是树
栈也是树
类型中立派 和编程有关就行
包也是树
语句肯定是树
标识符都是树
类型自由派 和程序员有关就行
wifi 当然是树
衣服拉链也是树
馄饨也是树!
二叉树:
二叉树:树有多种。每个节点最多只能有 2 个子节点的一种树的形式称为二叉树
二叉树的子节点分为 左节点 和 右节点。
满二叉树:二叉树的 所有叶节点 都在 最后一层,且节点总数是 2n - 1
完全二叉树:二叉树的 所有叶节点 都在 最后一层 和 倒数第二层,且最后一层的叶节点在左侧连续、倒数第二层的叶节点在右侧连续
二叉树的遍历:
前序遍历:先输出父节点,再遍历左子树和右子树。
自根节点起。先输出当前节点。再递归前序遍历左节点。那之后,递归前序遍历右节点。
123456789101112131415161718public static class Node { // 节点类 int val; ...
数据结构分为两种:线性结构、非线性结构
线性结构:
最常用的数据结构。数据元素间存在一对一线性关系。
线性结构有 2 种不同的存储结构:顺序储存结构,链式储存结构
顺序存储结构中元素存储在连续的内存空间中。
链式储存结构中元素储存在非连续的空间中,元素节点中存放数据元素及相邻元素的地址信息
常见的线性结构有:数组、队列、链表、栈等
非线性结构:
非线性结构包括:二维数组、多维数组、广义表、树结构、图结构
集合的框架体系
Java 提供了一系列集合容器,以方便程序员动态保存元素。并提供了一系列方便的操作对象的方法。
Java 集合主要分为两组:单列集合(Collection)、双列集合(Map)
Collection 接口(单列集合):可以存放多个元素。每个元素可以是 Object
Collection 接口有两个重要子接口:List(有序集合)和 Set(无序集合)
Map 接口(双列集合):用于保存具有映射关系的数据:key - value(双列元素)
key 和 value 可以是任何类型的引用数据类型。其中 key 不能重复,value 可以重复
key ...
包装类
包装类(Wrapper):针对 八种基本数据类型 相应的 引用类型
有了类的特点,就可以调用类中的方法
基本数据类型
包装类
父类
boolean
Boolean
Object
char
Character
Object
int
Integer
Number
float
Float
Number
double
Double
Number
long
Long
Number
short
Short
Number
byte
Byte
Number
void
Void
Object
装箱和拆箱
手动装箱和拆箱(JDK 5 以前)
1234int n1 = 100;Integer integer = new Integer(n1); // 手动装箱Integer integer2 = Integer.valueOf(n1); // 手动装箱int i = integer.intValue(); // 手动拆箱
自动装箱和拆箱(JDK 5 以后)
123n2 = 200;Integer integer3 = n2; ...