diff --git a/imgh/image-20250401161443811.png b/imgh/image-20250401161443811.png
new file mode 100644
index 0000000..802036e
Binary files /dev/null and b/imgh/image-20250401161443811.png differ
diff --git a/imgh/image-20250401162210232.png b/imgh/image-20250401162210232.png
new file mode 100644
index 0000000..9dfd7de
Binary files /dev/null and b/imgh/image-20250401162210232.png differ
diff --git a/imgh/image-20250403163929123.png b/imgh/image-20250403163929123.png
new file mode 100644
index 0000000..2918cbb
Binary files /dev/null and b/imgh/image-20250403163929123.png differ
diff --git a/imgh/image-20250403164058289.png b/imgh/image-20250403164058289.png
new file mode 100644
index 0000000..45c50c8
Binary files /dev/null and b/imgh/image-20250403164058289.png differ
diff --git a/imgh/image-20250403170839818.png b/imgh/image-20250403170839818.png
new file mode 100644
index 0000000..44bcbf2
Binary files /dev/null and b/imgh/image-20250403170839818.png differ
diff --git a/imgh/image-20250403171301091.png b/imgh/image-20250403171301091.png
new file mode 100644
index 0000000..7b9095a
Binary files /dev/null and b/imgh/image-20250403171301091.png differ
diff --git a/imgh/image-20250403173623260.png b/imgh/image-20250403173623260.png
new file mode 100644
index 0000000..6f41c1c
Binary files /dev/null and b/imgh/image-20250403173623260.png differ
diff --git a/imgh/image-20250404170313844.png b/imgh/image-20250404170313844.png
new file mode 100644
index 0000000..af5f497
Binary files /dev/null and b/imgh/image-20250404170313844.png differ
diff --git a/imgh/image-20250406171252031.png b/imgh/image-20250406171252031.png
new file mode 100644
index 0000000..43e6dc3
Binary files /dev/null and b/imgh/image-20250406171252031.png differ
diff --git a/imgh/image-20250408162910313.png b/imgh/image-20250408162910313.png
new file mode 100644
index 0000000..62feffe
Binary files /dev/null and b/imgh/image-20250408162910313.png differ
diff --git a/常用api.md b/常用api.md
deleted file mode 100644
index bb55615..0000000
--- a/常用api.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# 常用API
-
-## Object类
-
-### toString方法
-
-`public String toString()`默认是返回当前对象再堆内存中的地址信息:类的全类名@十六进制哈希值
-
-#### 用途:
-
-在开发过程中直接输出对象看到对象地址是毫无意义的,更多时候是希望看到对象中的内容数据而不是假地址信息
-
-所以toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息。
-
-### equals方法
-
-`public boolean equals(Object 0)`默认是比较当前对象与另一对象地址值是否相同,返回boolean类型
-
-#### 意义:
-
-父类equals方法存在的意义就是为了子类重写,以便于子类自己定制比较规则
-
-**IDEA中重写的equals方法:**
-
-```java
-public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Student student = (Student) o;
- return age == student.age && Objects.equals(name, student.name);
- }
-```
-
-### **Objects类中的equals方法**
-
-避免了空指针异常问题
-
-```java
-public static boolean equals(Object a, Object b) {
- return (a == b) || (a != null && a.equals(b));
-}
-```
-
-双&&或者双||,都是执行左边若为false或者true则右侧不执行
-
-
\ No newline at end of file
diff --git a/常用api以及算法.md b/常用api以及算法.md
new file mode 100644
index 0000000..95b63e7
--- /dev/null
+++ b/常用api以及算法.md
@@ -0,0 +1,198 @@
+# 常用API
+
+## Object类
+
+### toString方法
+
+`public String toString()`默认是返回当前对象再堆内存中的地址信息:类的全类名@十六进制哈希值
+
+#### 用途:
+
+在开发过程中直接输出对象看到对象地址是毫无意义的,更多时候是希望看到对象中的内容数据而不是假地址信息
+
+所以toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息。
+
+### equals方法
+
+`public boolean equals(Object 0)`默认是比较当前对象与另一对象地址值是否相同,返回boolean类型
+
+#### 意义:
+
+父类equals方法存在的意义就是为了子类重写,以便于子类自己定制比较规则
+
+**IDEA中重写的equals方法:**
+
+```java
+public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Student student = (Student) o;
+ return age == student.age && Objects.equals(name, student.name);
+ }
+```
+
+### **Objects类中的equals方法**
+
+避免了空指针异常问题
+
+```java
+public static boolean equals(Object a, Object b) {
+ return (a == b) || (a != null && a.equals(b));
+}
+```
+
+双&&或者双||,都是执行左边若为false或者true则右侧不执行
+
+
+
+## Math类:工具类
+
+方法都为静态方法,通过类名.的形式调用
+
+
+
+## System类
+
+
+
+注意:返回时间为现在时间减去1970年1月1日0时的毫秒值,为何?1970年1月1日是c语言的生日
+
+## BigDecimal类
+
+### 创建对象传入数据:
+
+
+
+仅推荐用后两个,解决小数运算不精确的问题
+
+### 常用成员方法
+
+
+
+## 包装类
+
+用处:将基本数据类型包装成类,变成引用数据类型
+
+**只做Integer类的讲述,其余可以类比Integer来进行**
+
+
+
+注意:从JDK5版本开始,出现了自动拆装箱技术
+
+自动装箱:基本数据类型的变量可以直接赋值给包装类型(引用数据类型)的变量;
+
+自动拆箱:包装类型(引用数据类型)的变量转化为基本数据类型的变量;
+
+总结:基本数据类型和对应的包装类,可以直接运算,不用转换了
+
+### 常用方法:
+
+
+
+### 面试题
+
+
+
+## Arrays类
+
+数组工具类,方法都为静态方法
+
+
+
+
+1. 其中binarySearch()方法,给予的数组必须是排好序的。因为使用了二分法
+2. sort()方法中,对数组进行了默认升序排序,要进行其他顺序排序,需学习**红黑树**
+
+
+
+## 基本算法:
+
+### 1:冒泡排序
+
+```java
+/**
+ * 冒泡排序 相邻两数据作比较,前者大于后者则做交换,往后进行
+ */
+public class Bubbling {
+ public static void main(String[] args) {
+ int[] arr = {3,2,1,6,4,7,10,1};
+ //外循环控制比较的轮数
+ for (int i = 0; i < arr.length - 1; i++) {
+ //比较的次数
+ //-1是避免索引越界
+ //-i 是对内存做优化 不用每次都比较到最后减少循环次数
+ for (int j = 0; j < arr.length - 1 - i; j++) {
+ if(arr[j] > arr[j+1]){
+ int temp;
+ temp = arr[j];
+ arr[j] = arr[j+1];
+ arr[j+1] = temp;
+ }
+ }
+ }
+ System.out.println(Arrays.toString(arr));
+ }
+}
+```
+
+### 2:选择排序
+
+让数组中第一个数据依次和后面的数据作比较,和数据小的做交换,然后再第二个,第三个,最后完成从小到大的排序
+
+```Java
+public class SelectSort {
+ //选择排序,让数组中第一个数据依次和后面的数据作比较,和数据小的做交换,然后再第二个,第三个,最后完成从小到大的排序
+ public static void main(String[] args) {
+ int[] arr = {22,11,33,33,44,55,14};
+ for (int i = 0; i < arr.length - 1; i++) {
+ //外循环,控制第几个数据和后面数据做比较
+ for (int j = i+1; j < arr.length; j++) {
+ //内循环:控制第一个数据和后数据依次比较
+ if (arr[i] > arr[j]){
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+ }
+ }
+ System.out.println(Arrays.toString(arr));
+ }
+}
+```
+
+### 3:二分查找
+
+
+
+**使用场景:查找有序数组中对应元素的索引可以用二分查找。**
+
+定义三个元素,最大索引,最小索引,中间索引,将中间索引指向元素和目标数据比较,中间索引元素大则右边以及中间索引元素本身则不用在比较,将最大索引缩小为 mid -1,与之相反,若小于目标元素,则本身以及左边元素不用在比较,将最小索引为mid +1,一直循环直到mid = 目标元素索引,或min > max;返回对应mid即可
+
+```Java
+public class BinarySearch {
+ public static void main(String[] args) {
+ int[] arr = {11,22,33,44,55,66,77};
+ int num = binSearch(arr,22);
+ System.out.println(num);
+ }
+
+ private static int binSearch(int[] arr, int i) {
+ int max = arr.length-1;
+ int min = 0;
+ int mid;
+ while (min <= max){
+ mid =(max + min) / 2;
+ if (arr[mid] < i){
+ min = mid +1;
+ }else if(arr[mid] > i){
+ max = mid -1;
+ } else {
+ return mid;
+ }
+ }
+ return -1;
+ }
+}
+
+```
+
diff --git a/正则表达式.md b/正则表达式.md
new file mode 100644
index 0000000..c46f951
--- /dev/null
+++ b/正则表达式.md
@@ -0,0 +1,55 @@
+# 正则表达式,较为难
+
+本质来说就是一个字符串,用来指定一些规则校验字符串
+
+1. **字符类(默认匹配一个字符):**
+
+ [] 表示单个字符
+
+ [abc] 只能为abc.
+
+ [^abc] 只能为abc之外的任意字符
+
+ [a-zA-Z]a到z,A到Z(包括范围)也可以有数字
+
+ [a-d[m-p]]a到d之间,或者m-p之间都可以,并集
+
+ [a-z&&[def]] a-z和def之间的交集
+
+ [a-z&&[\^bc]] \需要去掉 表示a-z除了bc
+
+2. **预定义字符类(默认匹配一个字符):** **注意:使用时需在前面加转义字符\\**不能只有一个反斜杠
+
+ . 任意字符
+
+ \d 只能是数字
+
+ \D 非数字 [\^0-9]
+
+ \w 英文数字下划线
+
+ \W 除了英文数字下划线 一个非单词字符
+
+ \s 一个空白字符
+
+ \S 一个非空白字符
+
+3. **量词(配合匹配多个字符)**
+
+ X? X出现一次或者0次
+
+ X* X出现0次或者多次(任意次数)
+
+ X+ 一次或多次
+
+ X{n} 正好n次
+
+ X{n, } 至少n次
+
+ X{n,m} 至少n次,不超过m次
+
+实际干活时候,面向复制编程。直接百度搜就行
+
+## 使用正则做爬取:
+
+
\ No newline at end of file