diff --git a/.idea/Dbqb_Study.iml b/.idea/Dbqb_Study.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/.idea/Dbqb_Study.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..cc6eae0
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/_2025_11_1_15_47____.xml b/.idea/shelf/_2025_11_1_15_47____.xml
new file mode 100644
index 0000000..4958089
--- /dev/null
+++ b/.idea/shelf/_2025_11_1_15_47____.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/_2025_11_3_18_01____.xml b/.idea/shelf/_2025_11_3_18_01____.xml
new file mode 100644
index 0000000..2b6099f
--- /dev/null
+++ b/.idea/shelf/_2025_11_3_18_01____.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/___2.xml b/.idea/shelf/___2.xml
new file mode 100644
index 0000000..125b9aa
--- /dev/null
+++ b/.idea/shelf/___2.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch b/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch
new file mode 100644
index 0000000..6d0e7e4
--- /dev/null
+++ b/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch
@@ -0,0 +1,134 @@
+Index: .idea/workspace.xml
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+>\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n "customColor": "",\r\n "associatedIndex": 7\r\n}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n "keyToString": {\r\n "ModuleVcsDetector.initialDetectionPerformed": "true",\r\n "RunOnceActivity.ShowReadmeOnStart": "true",\r\n "RunOnceActivity.git.unshallow": "true",\r\n "git-widget-placeholder": "dev",\r\n "kotlin-language-version-configured": "true",\r\n "last_opened_file_path": "D:/ysy/projectTest/Dbqb_Study",\r\n "node.js.detected.package.eslint": "true",\r\n "node.js.detected.package.tslint": "true",\r\n "node.js.selected.package.eslint": "(autodetect)",\r\n "node.js.selected.package.tslint": "(autodetect)",\r\n "nodejs_package_manager_path": "npm",\r\n "vue.rearranger.settings.migration": "true"\r\n }\r\n}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1761647682116\r\n \r\n \r\n 1761647682116\r\n \r\n \r\n \r\n \r\n \r\n \r\n 1761647865510\r\n \r\n \r\n \r\n 1761647865510\r\n \r\n \r\n \r\n 1761647873327\r\n \r\n \r\n \r\n 1761647873327\r\n \r\n \r\n \r\n 1761899062184\r\n \r\n \r\n \r\n 1761899062184\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/.idea/workspace.xml b/.idea/workspace.xml
+--- a/.idea/workspace.xml (revision edcf1d41bd20b25159eb4d4871a422860b993976)
++++ b/.idea/workspace.xml (date 1761983056305)
+@@ -4,7 +4,7 @@
+
+
+
+-
++
+
+
+
+@@ -13,96 +13,40 @@
+
+
+
+
+- {
+- "customColor": "",
+- "associatedIndex": 7
+-}
+-
+-
+-
+-
+-
+- {
+- "keyToString": {
+- "ModuleVcsDetector.initialDetectionPerformed": "true",
+- "RunOnceActivity.ShowReadmeOnStart": "true",
+- "RunOnceActivity.git.unshallow": "true",
+- "git-widget-placeholder": "dev",
+- "kotlin-language-version-configured": "true",
+- "last_opened_file_path": "D:/ysy/projectTest/Dbqb_Study",
+- "node.js.detected.package.eslint": "true",
+- "node.js.detected.package.tslint": "true",
+- "node.js.selected.package.eslint": "(autodetect)",
+- "node.js.selected.package.tslint": "(autodetect)",
+- "nodejs_package_manager_path": "npm",
+- "vue.rearranger.settings.migration": "true"
+- }
+-}
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
+
+-
+-
+- 1761647682116
+-
+-
+- 1761647682116
+-
+-
+-
+-
+-
++
+
+- 1761647865510
++ 1761983013107
+
+
+
+- 1761647865510
++ 1761983013107
+
+-
++
+
+- 1761647873327
++ 1761983018907
+
+
+
+- 1761647873327
+-
+-
+-
+- 1761899062184
+-
+-
+-
+- 1761899062184
++ 1761983018907
+
+-
++
+
+
+-
+-
+-
+
+-
+-
+-
++
++
+
+
+\ No newline at end of file
diff --git a/.idea/shelf/在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]/shelved.patch
new file mode 100644
index 0000000..3826f44
--- /dev/null
+++ b/.idea/shelf/在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]/shelved.patch
@@ -0,0 +1,35 @@
+Index: .idea/workspace.xml
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+>\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1761983013107\r\n \r\n \r\n \r\n 1761983013107\r\n \r\n \r\n \r\n 1761983018907\r\n \r\n \r\n \r\n 1761983018907\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/.idea/workspace.xml b/.idea/workspace.xml
+--- a/.idea/workspace.xml (revision a1ae06870a7db15a4d0386359103588b7186f382)
++++ b/.idea/workspace.xml (date 1761983240530)
+@@ -18,13 +18,18 @@
+
+
+
+- {
++ "keyToString": {
++ "git-widget-placeholder": "dev",
++ "last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
++ "node.js.selected.package.tslint": "(autodetect)"
+ }
+-}]]>
++}
++
++
++
++
++
+
+
+
diff --git a/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]/shelved.patch
new file mode 100644
index 0000000..4c9ab66
--- /dev/null
+++ b/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]/shelved.patch
@@ -0,0 +1,113 @@
+Index: .idea/workspace.xml
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+>\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1761983013107\r\n \r\n \r\n \r\n 1761983013107\r\n \r\n \r\n \r\n 1761983018907\r\n \r\n \r\n \r\n 1761983018907\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
+===================================================================
+diff --git a/.idea/workspace.xml b/.idea/workspace.xml
+--- a/.idea/workspace.xml (revision dae4ac78dbeeee9ca294c12e0ac470cc7e93b997)
++++ b/.idea/workspace.xml (date 1762142378359)
+@@ -4,13 +4,20 @@
+
+
+
+-
++
++
++
+
+
+
+
+
+
++
+
+
+
+
+-
++
++
++ {
++ "associatedIndex": 4
++}
++
++
++
++
++
++ {
++ "keyToString": {
++ "ModuleVcsDetector.initialDetectionPerformed": "true",
++ "RunOnceActivity.ShowReadmeOnStart": "true",
++ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
++ "RunOnceActivity.git.unshallow": "true",
++ "git-widget-placeholder": "dev",
++ "last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
++ "node.js.detected.package.eslint": "true",
++ "node.js.selected.package.eslint": "(autodetect)",
++ "node.js.selected.package.tslint": "(autodetect)",
++ "nodejs_package_manager_path": "npm",
++ "vue.rearranger.settings.migration": "true"
+ }
+-}]]>
++}
++
++
++
++
++
++
++
++
+
+
+
+@@ -42,11 +76,32 @@
+
+ 1761983018907
+
+-
++
++
++ 1761983178324
++
++
++
++ 1761983178324
++
++
++
++ 1761983393822
++
++
++ 1761983393822
++
++
++
++
+
+
++
++
++
+
+
+-
++
++
+
+
+\ No newline at end of file
diff --git a/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]1/shelved.patch b/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]1/shelved.patch
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zhangbo/第七天学习笔记.txt b/zhangbo/第七天学习笔记.txt
new file mode 100644
index 0000000..5a3f1f1
--- /dev/null
+++ b/zhangbo/第七天学习笔记.txt
@@ -0,0 +1,30 @@
+REST与RESTful架构学习总结
+REST是一组架构约束和原则,RESTful则是符合这些约束的架构风格,核心是利用Web现有标准实现高效、可扩展的资源交互。
+一、核心概念梳理
+1. REST本质:并非新技术,而是基于HTTP等Web标准的架构原则集合,由HTTP规范编写者Roy Fielding在博士论文中提出,目标是构建功能强、性能优、易通信的网络应用架构。
+2. RESTful定义:遵循REST约束(如统一接口、无状态通信等)的架构即为RESTful架构,核心围绕“资源”展开交互。
+二、关键核心原则(围绕资源展开)
+ 1. 资源与URI:唯一标识资源
+资源:任何需被引用的事物(实体或抽象概念,如用户信息、订单、优惠套餐),需通过唯一URI标识。
+URI设计技巧:用_/-提升可读性,/表示层级关系,?过滤资源,,/;表示同级关系;URI仅表资源名称,不包含操作(如避免/getUser/1这类格式)。
+
+2. 统一资源接口:标准化操作
+采用HTTP标准方法(GET、POST、PUT、DELETE)操作资源,遵循方法语义:
+ GET:安全且幂等,用于获取资源;
+ POST:不安全且不幂等,用于创建资源、部分更新等;
+ PUT:不安全但幂等,用于客户端指定URI创建或全量更新资源;
+ DELETE:不安全但幂等,用于删除资源。
+配套HTTP状态码(如200成功、201创建、404未找到)实现语义化通信,避免依赖响应体传递错误信息。
+
+3. 资源的表述:多格式交互
+客户端获取的是资源的“表述”(非资源本身),支持多种格式(JSON、XML、HTML等)。
+通过HTTP内容协商:客户端用Accept头指定格式,服务端用Content-Type头返回实际格式;不支持的格式返回406状态码。
+不建议在URI中带版本号或格式后缀(如.json),优先用请求头区分。
+
+4. 资源的链接:超媒体引导
+核心特性“超媒体即应用状态引擎”,通过表述中的链接(如响应头Link、响应体url字段)引导客户端交互,提升资源连通性,而非仅关注URI设计。
+
+5. 状态的转移:无状态通信
+服务端不保存客户端应用状态,每次请求需包含所有处理信息(无状态通信);客户端维护应用状态,服务端维护资源状态。
+应用状态通过服务端提供的超媒体链接实现转移,客户端无需依赖固定服务端节点,提升扩展性。
+
diff --git a/zhangbo/第七天股票学习笔记.txt b/zhangbo/第七天股票学习笔记.txt
new file mode 100644
index 0000000..ad127b1
--- /dev/null
+++ b/zhangbo/第七天股票学习笔记.txt
@@ -0,0 +1,45 @@
+学习总结
+AI雷达是通过“天轨(蓝色,多方主力价格控制线)”与“地轨(黄色,空方主力价格控制线)”,结合K线形态判断个股底部启动与上涨趋势的工具,核心围绕“阴线下跌特征+关键阳线信号+轨道趋势”展开分析,以下是具体总结。
+一、AI雷达核心逻辑与信号体系
+1. 核心定义:天轨与地轨
+天轨(蓝色):代表做多主力对价格空间的控制线,上涨阶段天轨由平转朝上是趋势强化的关键信号。
+地轨(黄色):代表做空主力对价格空间的控制线,底部阶段地轨朝上或天地轨走平,是空方无力打压的标志。
+2. 核心信号:分阶段判断
+(1)底部启动信号(3个前提+2根关键阳线)
+需先满足3个前提条件,再通过2根阳线确认底部:
+前提条件(需同时满足)
+ 1. 定位个股“阴线下跌区域”,作为分析基础。
+ 2. 此轮连续下跌的阴线数量,多于上一波下跌的阴线数量(空方释放更充分)。
+ 3. 此轮阴线的最低价,低于上一波阴线的最低价(创短期新低,底部更明确)。
+ 4. 地轨呈朝上趋势,或天地轨整体走平(空方力量衰减,多方开始蓄力)。
+关键阳线识别(按顺序)
+ 1. 试盘阳线:满足前提后,阴线后的第一根阳线,作用是主力试探市场承接力。
+ 2. 启动阳线:试盘阳线后的第二根阳线,意义是底部确认完成,可低吸布局。
+
+(2)上涨趋势强化信号:金刚一击
+触发条件:上涨过程中,天轨线由“平”转为“朝上”。
+对应K线:天轨转向时的阳线(又称“拉升阳线”)。
+核心意义:多方主力正式发力,上涨进入加速阶段,趋势稳定性强,可持有或加仓。
+
+二、当前功能的待完善方向
+AI雷达在信号识别上有明确框架,但实际应用中仍存在3个关键痛点,需补充完善:
+
+1. 缺乏明确的止损信号定义
+问题:当前仅定义“启动信号”和“趋势强化信号”,未说明“信号失效后的应对方案”。例如,满足底部启动条件(出现启动阳线)后,股价未上涨反而跌破地轨,此时无明确止损点位或退出规则,易导致投资者被套。
+完善需求:需补充“止损触发条件”(如跌破地轨多少幅度、连续跌破几日)和“止损点位设置”(如以启动阳线最低价为止损线、或以地轨线作为动态止损线)。
+
+2. 震荡行情中的信号筛选机制缺失
+问题:震荡行情中,天地轨易频繁交叉,连续阴线数量、最低价的“对比基准”(上一波下跌)难以界定,易产生大量虚假启动信号(如出现试盘/启动阳线后,股价仍在区间内震荡,未形成有效上涨)。
+完善需求:需增加“震荡行情过滤条件”,例如:
+限定“上一波下跌”的时间范围(如近10个交易日内的下跌波段),避免基准模糊;
+要求启动阳线的成交量需大于前5日平均成交量(验证多方力量真实性);
+天地轨交叉次数超过阈值(如3日内交叉2次)时,暂时屏蔽启动信号。
+
+3. 不同风格个股的适配性不足
+问题:当前信号规则未区分个股类型,小盘股(波动大、主力控盘度高)、大盘股(波动小、资金分歧大)、成长股(趋势性强)、蓝筹股(震荡为主)的“天地轨信号有效性”可能存在差异。例如,小盘股的“金刚一击”涨幅可能更快,但持续性差;蓝筹股的天轨转向可能更缓慢,信号滞后性强。
+完善需求:需针对不同风格个股优化参数,例如:
+对小盘股,可缩短“连续阴线数量对比”的周期(如近5日vs近3日),对大盘股则延长周期(如近20日vs近10日);
+对成长股,可降低“金刚一击”的成交量要求(趋势延续性强),对蓝筹股则提高成交量要求(需更强资金推动)。
+
+三、应用总结
+AI雷达的核心价值是“将主力控盘的价格逻辑,转化为可量化的轨道+K线信号”,适合在“明确趋势行情”中判断底部启动与趋势强化,但需结合待完善的止损、筛选、适配规则,才能降低实际操作中的风险。实际使用时,建议先通过历史数据(如中国宝安的底部案例)验证信号有效性,再结合个股风格调整参数,避免单一依赖信号决策。
\ No newline at end of file
diff --git a/孙维宁学习笔记/11.3孙维宁学习笔记.docx b/孙维宁学习笔记/11.3孙维宁学习笔记.docx
new file mode 100644
index 0000000..6d126b3
Binary files /dev/null and b/孙维宁学习笔记/11.3孙维宁学习笔记.docx differ
diff --git a/孙维宁学习笔记/孙维宁-夺宝奇兵AI雷达学习-11.3.docx b/孙维宁学习笔记/孙维宁-夺宝奇兵AI雷达学习-11.3.docx
new file mode 100644
index 0000000..76aa6d5
Binary files /dev/null and b/孙维宁学习笔记/孙维宁-夺宝奇兵AI雷达学习-11.3.docx differ
diff --git a/尹顺宇10.29作业/尹顺宇10.29夺宝奇兵之超级云脑部分学习.docx b/尹顺宇10.29作业/尹顺宇10.29夺宝奇兵之超级云脑部分学习.docx
new file mode 100644
index 0000000..a9337bc
Binary files /dev/null and b/尹顺宇10.29作业/尹顺宇10.29夺宝奇兵之超级云脑部分学习.docx differ
diff --git a/尹顺宇10.29作业/尹顺宇10.29学习笔记.md b/尹顺宇10.29作业/尹顺宇10.29学习笔记.md
new file mode 100644
index 0000000..b285970
--- /dev/null
+++ b/尹顺宇10.29作业/尹顺宇10.29学习笔记.md
@@ -0,0 +1,528 @@
+# 10.29MySQL学习笔记
+
+## 1.分类
+
+- DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
+- DML: 数据操作语言,用来对数据库表中的数据进行增删改
+- DQL: 数据查询语言,用来查询数据库中表的记录
+- DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限
+
+## 2.数据库操作
+
+### 2.1查看数据库
+
+```java
+# 查看所有的数据库
+mysql> SHOW DATABASES;
+```
+
+
+
+## 3.表操作(DDL)
+
+DDL是对表的结构进行操作
+
+### 3.1数据类型
+
+#### 3.1.1 数值
+
+| 类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
+| ------------ | --------------------------------- | --------------------------------------------- | --------------------------- | ---------------------------------------- |
+| INT | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
+| DOUBLE | 8 字节 | (-1.797E+308,-2.22E-308) | (0,2.22E-308,1.797E+308) | 双精度浮点数值 |
+| DOUBLE(M,D) | 8个字节,M表示长度,D表示小数位数 | 同上,受M和D的约束 DOUBLE(5,2) -999.99-999.99 | 同上,受M和D的约束 | 双精度浮点数值 |
+| DECIMAL(M,D) | DECIMAL(M,D) | 依赖于M和D的值,M最大值为65 | 依赖于M和D的值,M最大值为65 | 小数值,和钱相关,不会出现精度缺失的问题 |
+
+#### 3.1.2字符串
+
+| 类型 | 大小 | 用途 |
+| --------------------------- | ------------ | ----------------------------- |
+| CHAR | 0-255字符 | 定长字符串CHAR(10)10个字符 |
+| VARCHAR | 0-65535 字节 | 变长字符串VARCHAR(10)10个字符 |
+| BLOB(binary large object) | 0-65535字节 | 二进制形式的长文本数据 |
+| TEXT | 0-65535字节 | 长文本数据 |
+
+#### 3.1.3、日期时间类型
+
+| 类型 | 大小 | 范围 | 格式 | 用途 |
+| --------- | :--- | ------------------------------------------------------------ | ------------------- | ------------------------ |
+| DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
+| TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
+| YEAR | 1 | 1901/2155 | YYYY | 年份值 |
+| DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
+| TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束时间是第 **2147483647** 秒北京时间 **2038-1-19 11:14:07**,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
+
+
+
+### 3.2创建表
+
+```sql
+CREATE TABLE [IF NOT EXISTS] 表名(
+ 列名 数据类型 [约束],
+ 列名 数据类型 [约束],
+ 列名 数据类型 [约束] //最后一列的末尾不加逗号
+)[CHARSET=utf8]; //可根据需要指定表的字符编码集
+```
+
+### 3.3查看表
+
+```sql
+# 查看当前数据库中所有表名称
+SHOW TABLES;
+# 查看指定表的创建语句
+SHOW CREATE TABLE 表名;
+# 查看表结构
+DESC 表名;
+```
+
+### 3.4修改表
+
+```sql
+# 添加列
+ALTER TABLE 表名 ADD (
+ 列名 列类型,
+ 列名 列类型
+)
+
+# 修改列类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据), 修改表中的某列时,也要写全列的名字,数据类型,约束
+ALTER TABLE 表名 MODIFY 列名 列类型;
+
+# 修改列名, 在给定列新名称时,要指定列的类型和约束
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
+
+# 删除列, 删除列时,每次只能删除一列
+ALTER TABLE 表名 DROP 列名;
+
+# 修改表名称
+ALTER TABLE 原表名 RENAME TO 新表名;
+ALTER TABLE 原表名 RENAME 新表名;
+```
+
+### 3.5删除表
+
+```sql
+DROP TABLE 表名;
+```
+
+## 4.DML
+
+DML就是对表的内容进行操作
+
+### 4.1插入
+
+基本格式:
+
+```sql
+INSERT INTO 表名(列名1, 列名2, ...) VALUES(列值1, 列值2, ...);
+或者
+INSERT INTO 表名 VALUES(列值1, 列值2, ...);
+```
+
+### 4.2修改
+
+```sql
+# WHERE条件是可选的, 如果没有条件, 就修改所有记录, 多数时候我们都加上WHERE条件
+UPDATE 表名 SET 列名1=列值1, 列名2=列值2, ...[WHERE 条件]
+```
+
+### 4.3删除
+
+```sql
+# WHERE条件是可选的, 如果没有条件, 就删除所有记录, 多数时候我们都加上WHERE条件
+DELETE FROM 表名 [WHERE 条件];
+```
+
+
+
+### 4.4约束
+
+#### 4.4.1主键约束
+
+```sql
+# 创建表时指定主键
+CREATE TABLE 表名(
+ 列名 数据类型 PRIMARY KEY,
+ 列名 数据类型,
+ 列名 数据类型
+);
+
+# 创建表时指定主键
+CREATE TABLE 表名(
+ 列名 数据类型,
+ 列名 数据类型,
+ 列名 数据类型,
+ PRIMARY KEY(设置为主键的列名)
+);
+
+# 修改表时指定主键
+ALTER TABLE 表名 ADD PRIMARY KEY(列名);
+ALTER TABLE 表名 MODIFY 列名 列类型 PRIMARY KEY;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型 PRIMARY KEY;
+
+# 删除主键
+ALTER TABLE 表名 DROP PRIMARY KEY;
+```
+
+主键自增长:
+
+```sql
+# 创建表时指定主键
+CREATE TABLE 表名(
+ 列名 数据类型 PRIMARY KEY AUTO_INCREMENT,
+ 列名 数据类型,
+ 列名 数据类型
+);
+
+# 修改表时设置主键自增长
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型 PRIMARY KEY AUTO_INCREMENT;
+ALTER TABLE 表名 MODIFY 列名 列类型 PRIMARY KEY AUTO_INCREMENT;
+
+# 修改表时删除主键自增长
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
+```
+
+
+
+#### 4.4.2唯一约束
+
+```sql
+# 创建表时指定唯一约束
+CREATE TABLE 表名(
+ 列名 数据类型 UNIQUE,
+ 列名 数据类型,
+ 列名 数据类型
+);
+
+# 修改表时设置唯一约束
+ALTER TABLE 表名 MODIFY 列名 列类型 UNIQUE;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型 UNIQUE;
+
+# 删除唯一约束
+ALTER TABLE 表名 DROP INDEX name;
+```
+
+
+
+#### 4.4.3非空约束
+
+```sql
+# 创建表时指定非空约束
+CREATE TABLE 表名(
+ 列名 数据类型 NOT NULL,
+ 列名 数据类型,
+ 列名 数据类型
+);
+
+# 修改表时设置非空约束
+ALTER TABLE 表名 MODIFY 列名 列类型 NOT NULL;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型 NOT NULL;
+
+# 删除非空约束
+ALTER TABLE 表名 MODIFY 列名 列类型;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
+```
+
+#### 4.4.4默认值
+
+```sql
+# 创建表时指定默认值
+CREATE TABLE 表名(
+ 列名 数据类型 DEFAULT 默认值,
+ 列名 数据类型,
+ 列名 数据类型
+);
+
+# 修改表时设置默认值
+ALTER TABLE 表名 MODIFY 列名 列类型 DEFAULT 默认值;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型 DEFAULT 默认值;
+
+# 删除默认值
+ALTER TABLE 表名 MODIFY 列名 列类型;
+ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
+```
+
+#### 4.4.5外键约束
+
+## 5.DQL
+
+查询操作:所有操作中使用最频繁
+
+### 5.1单表查询
+
+```sql
+# 查询指定列
+SELECT 列1 [, 列2, ...列N] FROM 表名;
+#去重查询
+SELECT DISTINCT 列1 [, 列2, ...列N] FROM 表名;
+```
+
+### 5.2列运算
+
+```sql
+# 列可以进行加、减、乘、除运算
+如:SELECT ename, sal*1.5 FROM emp;
+# 格式:列名 AS 别名
+# AS也可以省略,格式:列名 别名
+# 查询所有员工的姓名和总工资(工资加奖金, 如果奖金为NULL则按照奖金为0进行运算)
+SELECT ename AS '姓名', sal+IFNULL(comm, 0) AS '总工资' FROM emp;
+SELECT ename '姓名', sal+IFNULL(comm, 0) '总工资' FROM emp;
+# 除了可以给列起别名,也可以给表起别名,在多表查询中会使用到为表起别名
+```
+
+### 5.3条件查询
+
+主要使用where连接
+
+```sql
+# 查询部门编号为20的所有员工的信息
+SELECT * FROM emp WHERE deptno=20
+
+# 查询工种为工程师的所有员工的信息
+SELECT * FROM emp WHERE job='工程师'
+
+# 查询有奖金的所有员工的信息
+SELECT * FROM emp WHERE comm IS NOT NULL and comm <> 0;
+SELECT * FROM emp WHERE comm IS NOT NULL and comm != 0;
+```
+
+### 5.4模糊查询
+
+> "_"匹配一个任意字符,只匹配一个字符而不是多个
+>
+> "%"匹配0~N个任意字符
+>
+> 模糊查询需要使用运算符:LIKE
+
+```sql
+# 查询姓“周”的所有员工的信息
+SELECT * FROM emp WHERE ename LIKE '周%';
+
+# 查询姓名中包含“杰”的所有员工的信息
+SELECT * FROM emp WHERE ename LIKE '%杰%';
+
+# 查询姓“周”并且姓名只有三个字的所有员工的信息
+SELECT * FROM emp WHERE ename LIKE '周__';
+```
+
+### 5.5排序
+
+> 对查询的结果进行排序
+>
+> 排序分成升序(ASC)和降序(DESC),可以使用多列作为排序条件
+>
+> 排序使用关键字ORDER BY
+
+```sql
+# 排序
+# 规则:列名 升序/降序
+SELECT 列1, 列2, 列3 FROM 表名 WHERE 条件 ORDER BY 规则1, 规则2,....,规则n
+
+# 查询所有员工信息,按照工号升序排列
+SELECT * FROM emp ORDER BY empno ASC;
+# 如果是升序,ASC可以省略
+SELECT * FROM emp ORDER BY empno;
+多个排序规则就按顺序执行
+SELECT * FROM emp ORDER BY sal ASC, empno DESC;
+```
+
+### 5.6聚合函数
+
+> | 函数 | 功能 |
+> | ----- | -------- |
+> | COUNT | 计算个数 |
+> | MAX | 最大值 |
+> | MIN | 最小值 |
+> | AVG | 平均值 |
+> | SUM | 和 |
+
+例如:
+
+```sql
+# 查询公司员工个数
+SELECT count(1) FROM emp;
+SELECT count(*) FROM emp;
+
+# 查询公司最高工资
+SELECT MAX(sal) FROM emp;
+
+# 查询公司最低工资
+SELECT MIN(sal) FROM emp;
+
+# 查询公司所有员工工资和
+SELECT SUM(sal) FROM emp;
+
+# 查询公司员工工资的平均值
+SELECT AVG(sal) FROM emp;
+```
+
+### 5.7分组查询
+
+>主要使用GROUP BY关键字
+
+
+
+例如:
+
+```sql
+# 查询每个工种的平均工资
+SELECT job, AVG(sal) FROM emp GROUP BY job;
+
+# 查询每个工种的员工数量
+SELECT job, COUNT(1) FROM emp GROUP BY job;
+```
+
+分组查询设置条件的话,分组前的条件使用where,分组后的条件使用having
+
+```sql
+# 查询工资大于15000的员工的工种,以及工种的平均工资
+SELECT job, AVG(sal) FROM emp WHERE sal>15000 GROUP BY job;
+
+# 查询工资大于15000的员工的工种,以及工种的平均工资,只显示超过两人的工种
+SELECT job, AVG(sal) FROM emp WHERE sal>15000 GROUP BY job HAVING COUNT(*)>=2;
+```
+
+### 5.8Limit子句
+
+>主要用于分页查询
+
+```sql
+# 语法
+SELECT 列名 FROM 表名 LIMIT 起始行,查询行数;
+
+# 查询员工表中前五名员工的所有信息
+# 起始行是从 0 开始,代表了第一行
+SELECT * FROM emp LIMIT 0, 5;
+
+#查询员工表中从第4条开始,查询10行
+SELECT * FROM emp LIMIT 3,10;
+```
+
+### 5.9 多表查询
+
+#### 5.9.1合并结果集
+
+> 合并结果集就是把两个select语句的查询结果合并到一起,结果集就是一个表格。
+>
+> 要求:被合并的两个结果:列数必须相同。
+
+```sql
+# UNION:去除重复记录
+SELECT * FROM t1 UNION SELECT * FROM t2;
+# UNION ALL:不去除重复记录
+SELECT * FROM t1 UNION ALL SELECT * FROM t2;
+```
+
+#### 5.9.2内连接
+
+```sql
+# 方式1(MySQL特有,不符合SQL标准)
+SELECT 列名 FROM 表1, 表2 WHERE 表1.列名 条件运算符 表2.列名 [AND 条件];
+# 方式2(符合SQL标准)
+SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 条件运算符 表2.列名 [WHERE 条件];
+```
+
+```
+# 列出员工的姓名和部门名称
+SELECT e.ename, d.dname FROM emp e, dept d WHERE e.deptno=d.deptno;
+SELECT e.ename, d.dname FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;
+```
+
+> 上面的查询只能查询出拥有部门的员工和拥有员工的部门,没有部门的员工和没有员工的部门是查询不到的。如果要将所有的员工和部门都查询出来需要使用外连接。
+
+#### 5.9.3外连接
+
+> 结果集中包含主表所有数据行,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。
+
+##### 5.9.3.1左外链接
+
+> 左外连接是以左表为主表,去关联右表(从表),**结果集中包含主表所有数据行**,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。
+
+```sql
+# 语法
+SELECT 列名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 左表.列名 条件运算符 右表.列名 [WHERE 条件];
+
+# 列出员工的姓名和部门名称, 包括没有部门的员工
+SELECT e.ename, d.dname FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;
+
+# 列出员工的姓名和部门名称, 包括没有员工的部门
+SELECT e.ename, d.dname FROM dept d LEFT JOIN emp e ON e.deptno=d.deptno;
+```
+
+##### 5.9.3.2右外连接
+
+> 右外连接是以右表为主表,去关联左表(从表),**结果集中包含主表所有数据行**,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。
+
+```sql
+# 语法
+SELECT 列名 FROM 左表 RIGHT [OUTER] JOIN 右表 ON 左表.列名 条件运算符 右表.列名 [WHERE 条件];
+
+# 列出员工的姓名和部门名称, 包括没有员工的部门
+SELECT e.ename, d.dname FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;
+
+# 列出员工的姓名和部门名称, 包括没有部门的员工
+SELECT e.ename, d.dname FROM dept d RIGHT JOIN emp e ON e.deptno=d.deptno;
+```
+
+##### 5.9.3.3 全外连接
+
+> 完全连接左表和右表中所有行,当某行数据在另一个表中没有匹配时,则另一个表的选择列值为NULL。
+
+```sql
+# 语法
+SELECT 列名 FROM 左表 FULL [OUTER] JOIN 右表 ON 左表.列名 条件运算符 右表.列名 [WHERE 条件]
+```
+
+> MySQL不支持这种语法,可以使用合并结果集进行模拟全外连接。
+
+```sql
+SELECT e.ename, d.dname FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
+UNION
+SELECT e.ename, d.dname FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;
+```
+
+### 5.10子查询
+
+> 子查询出现的位置:
+>
+> - WHERE后,作为条件的一部分;
+> - FROM后,作为被查询的一条表。
+
+#### 5.10.1列子查询
+
+```sql
+ SELECT id,stu_id,`name`,(SELECT `class_name`FROM t_class WHERE id = class_id ) class_name,class_id,sex,birthday FROM t_student LIMIT 10;
+```
+
+#### 5.10.2表子查询
+
+```sql
+SELECT id,stu_id,`name`,pinyin,sex,birthday FROM (SELECT *FROM t_student WHERE sex = '女')t1;
+```
+
+#### 5.10.3where之后
+
+```sql
+ -- 等号(不等号)子查询 要求子查询结果必须是一行一列
+ SELECT id,stu_id,`name`,pinyin,sex,birthday FROM t_student
+ WHERE class_id = (SELECT id FROM t_class WHERE class_name = '080503-JAVA');
+ SELECT id,stu_id,`name`,pinyin,sex,birthday FROM t_student
+ WHERE class_id != (SELECT id FROM t_class WHERE class_name = '080503-JAVA');
+ -- 大于号子查询,小于号子查询
+ SELECT id,stu_id,`name`,pinyin,sex,birthday,class_id FROM t_student
+ WHERE class_id > ALL(SELECT id FROM t_class WHERE class_name LIKE '%JAVA%');
+
+ SELECT id,stu_id,`name`,pinyin,sex,birthday,class_id FROM t_student
+ WHERE class_id > ANY(SELECT id FROM t_class WHERE class_name = '080503-JAVA');
+ -- 4.in 和not in 子查询
+ SELECT id,stu_id,`name`,pinyin,sex,birthday,class_id FROM t_student WHERE id in(1,2,3);
+ SELECT id,stu_id,`name`,pinyin,sex,birthday,class_id FROM t_student
+ WHERE id in(SELECT id FROM t_class WHERE class_name LIKE '%JAVA%');
+```
+
+#### 5.10.4exists
+
+```sql
+ SELECT id,stu_id,`name`,pinyin,sex,birthday,class_id FROM t_student
+ WHERE EXISTS(SELECT id From t_class WHERE class_name LIKE '%JAVA%')
+```
+
diff --git a/尹顺宇10.29作业/尹顺宇第三天学习总结.docx b/尹顺宇10.29作业/尹顺宇第三天学习总结.docx
new file mode 100644
index 0000000..6375dbb
Binary files /dev/null and b/尹顺宇10.29作业/尹顺宇第三天学习总结.docx differ
diff --git a/尹顺宇10.31作业/尹顺宇10.31学习总结.docx b/尹顺宇10.31作业/尹顺宇10.31学习总结.docx
new file mode 100644
index 0000000..7ec72f4
Binary files /dev/null and b/尹顺宇10.31作业/尹顺宇10.31学习总结.docx differ
diff --git a/尹顺宇10.31作业/尹顺宇10.31学习笔记.md b/尹顺宇10.31作业/尹顺宇10.31学习笔记.md
new file mode 100644
index 0000000..73834de
--- /dev/null
+++ b/尹顺宇10.31作业/尹顺宇10.31学习笔记.md
@@ -0,0 +1,560 @@
+# Javase回顾
+## 1.环境
+jdk8及之前:jdk+jre
+jdk:java development kit
+jre: java runtime environment
+jdk8以后:只有jdk
+环境变量配置只需要配置JAVAHOME和path里面指向JAVAHOME的bin
+## 2.开发工具
+idea(目前最流行)
+eclipse(已经不常用)
+## 3.基础语法
+### 3.1 java语言特点
+简单,严谨,易读
+编译+解释
+### 3.2 8种基本数据类型
+
+|数据类型 | 精度 | 范围|
+|--|--|--|
+| byte | 1 |-2^7^ ~ 2^7^-1(-128~127)
+| short | 2|-2^15^ ~ 2^15^-1(-32768 ~ 32767)
+| int | 4|-2^31^ ~ 2^31^-1(约21亿多)
+|long| 8 |-2^63^~ 2^63^-1(-9223372036854775808 ~ 9223372036854775807)
+| float | 4 |约±3.4e38(± 3.4 × 10^38^ )
+| double | 8 | 约±1.7e308(± 1.7 × 10^308^ )
+| char | 2 |0 ~ 65535(Unicode)
+| boolean | 1(不一定,不同虚拟机不一样 ) |
+### 3.3 运算符
+> 算数运算符 :+ - * / % 双目运算符
+> 比较运算符 : > , <, >= , <=, == , != 计算结果是boolean值
+> 逻辑运算符:&& , ||, ! 运算结果是boolean值,存在短路运算
+> 赋值运算符: = ,+=, -=, *= , /=
+> 条件运算符 a?b:c 唯一的三目运算符
+> 位运算符:基本用不到
+> 其他运算符:instanceof (例:a instanceof b )
+> 表达式(有值)
+> ### 3.4语句
+> java代码执行的基本单位
+
+>流程控制语句:
+>1.顺序结构:
+>2.分支结构:
+>3.循环结构:
+
+### 3.5 数组
+>int[] a = new int[](1,2,3}
+>获取数组长度。.length属性,只读。
+>如果访问数组元素。索引(下标),整数,包括0,不能是负数,不能是小数,不能超
+>出边界。
+
+```java
+public class Test1 {
+ public static void main(String[] args) {
+ int[] a = new int[5];
+ int[] b = new int[]{1, 2, 3, 4, 5};
+ int[] c = {1, 2, 3, 4, 5};
+ System.out.println(c.length);
+ a[0] = 1;
+ a[1] = 2;
+ a[40] = 4;
+ }
+}
+
+```
+
+```java
+import java.util.Arrays;
+
+public class Test2 {
+ public static void main(String[] args) {
+ int[] arr = new int[20];
+ //存入随机数
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] = (int) (Math.random() * 100);
+ }
+ //输出随机数数组
+ System.out.println(Arrays.toString(arr));
+
+ boolean found = false;
+ //判断生成的随机数数组中包不包含50并给出下标
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] == 50) {
+ found = true;
+ System.out.println(i);
+ break;
+ }
+ }
+ if (!found) {
+ System.out.println("无此值");
+ }
+
+ }
+}
+
+
+```
+
+数组应用:
+排序:冒泡,选择,快排
+
+```java
+import java.util.Arrays;
+
+public class Test3 {
+ public static void main(String[] args) {
+ int[] arr = {44, 64, 35, 66, 10, 67, 86, 32, 2, 44};
+ quickSort2(arr);//调用函数
+ System.out.println(Arrays.toString(arr));
+ }
+
+ //冒泡
+ static void bubbleSort(int[] arr) {
+ for (int i = 0; i < arr.length - 1; i++) {
+ for (int j = 0; j < arr.length - 1 - i; j++) {
+ if (arr[j] < arr[j + 1]) {
+ int temp = arr[j];
+ arr[j] = arr[j + 1];
+ arr[j + 1] = temp;
+ }
+ }
+ }
+ }
+
+ static void bubbleSort2(int[] arr) {
+ for (int i = 0; i < arr.length - 1; i++) {
+ for (int j = 0; j < arr.length - 1 - i; j++) {
+ if (arr[j] > arr[j + 1]) {
+ int temp = arr[j];
+ arr[j] = arr[j + 1];
+ arr[j + 1] = temp;
+ }
+ }
+ }
+ }
+
+ //选择
+ static void selectSort(int[] arr) {
+ for (int i = 0; i < arr.length - 1; i++) {
+ for (int j = i + 1; j < arr.length; j++) {
+ if (arr[j] < arr[i]) {
+ int temp = arr[j];
+ arr[j] = arr[i];
+ arr[i] = temp;
+ }
+ }
+ }
+ }
+
+ static void selectSort2(int[] arr) {
+ for (int i = 0; i < arr.length - 1; i++) {
+ for (int j = i + 1; j < arr.length; j++) {
+ if (arr[j] < arr[i]) {
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+ }
+ }
+ }
+
+ //快排
+ static void quickSort(int[] arr) {
+ quickSort(arr, 0, arr.length - 1);
+ }
+
+ static void quickSort2(int[] arr) {
+ quickSort2(arr, 0, arr.length - 1);
+ }
+
+
+ //快排实现
+ static void quickSort(int[] arr, int low, int high) {
+ if (low >= high) {
+ return;
+ }
+ int pivot = arr[low];//基准值
+ int left = low;//左指针
+ int right = high;//右指针
+
+ while (left < right) {
+ //右指针不断左移
+ while (left < right && arr[right] >= pivot) {
+ right--;
+ }
+ //左指针不断右移
+ while (left < right && arr[left] <= pivot) {
+ left++;
+ }
+
+ if (left < right) {
+ int temp = arr[left];
+ arr[left] = arr[right];
+ arr[right] = temp;
+ }
+ }
+
+ //二者相遇
+ if (left != low) {
+ arr[low] = arr[left];
+ arr[left] = pivot;
+ }
+
+ //递归
+ quickSort(arr, low, left - 1);//对左区递归
+ quickSort(arr, left + 1, high);//对右区递归
+ }
+
+ static void quickSort2(int[] arr, int low, int high) {
+ if (low > high) {
+ return;
+ }
+ int target = arr[low];
+ int left = low;
+ int right = high;
+
+ while (left < right) {
+ while (left < right && arr[right] >= arr[low]) {
+ right--;
+ }
+ while (left= high) {
+ return -1;
+ }
+ int mid = (low + high) / 2;
+ if (target == arr[mid]) {
+ return mid;
+ } else if (target < arr[mid]) {
+ return find(arr, low, mid - 1, target);
+ } else {
+ return find(arr, mid + 1, high, target);
+ }
+ }
+
+ static int find2(int[] arr, int low, int high, int target) {
+ if (low >= high) {
+ return -1;
+ }
+ int mid = (low + high) / 2;
+ if (target == arr[mid]) {
+ return mid;
+ } else if (target < arr[mid]) {
+ return find2(arr, low, mid - 1, target);
+
+ } else {
+ return find2(arr, mid + 1, high, target);
+ }
+ }
+}
+
+```
+
+### 3.6 函数(方法)
+
+### 3.7 面向对象
+类:类型,将很多实例抽取共性,总结归纳
+对象:独一无二的实例,在java中,对象通过类创建
+
+创建对象:new 构造方法()
+
+### 3.8封装
+将成员属性和成员方法包含到一个类中,选择性的对外开放成员。
+
+成员访问修饰符:对外开放程度
+public:公开,公有的,任何位置都可访问。
+protected:受保护的,包内及后代可以访问。
+<空>:包内访问。
+private:当前类内部访问。
+### 3.9 继承
+单继承,默认继承自object,顶级根类
+1.非私有成员可以被继承
+2.构造函数不能被继承
+
+protect:
+super:父对象
+this:当前对象
+
+```java
+package com.situ.chapter1;
+
+public class Person {
+ public int age;//年龄
+ private String name;//姓名
+//无参构造方法
+ public Person() {
+
+ }
+//有参构造
+ public Person(String name) {
+ this.name = name;
+ System.out.println("创建Person对象");
+ }
+
+ //行为
+ protected void sayHello() {
+ System.out.println("父亲sayHello");
+ }
+
+ void wang() {
+ System.out.println("aaa");
+ sayHello();
+ }
+}
+
+```
+
+```java
+package com.situ.chapter1;
+
+public class Teacher extends Person {
+
+ public Teacher() {
+ super();
+ }
+
+ @Override
+ protected void sayHello() {
+ System.out.println("儿子sayHello");
+ }
+
+ public void sayBye() {
+ this.sayHello();
+ super.sayHello();
+
+ //System.out.println(super.name);
+ }
+}
+```
+
+```java
+package com.situ.chapter1;
+
+public class Test1 {
+ public static void main(String[] args) {
+ Person person = new Person();
+ person.sayHello();
+ person.wang();
+ System.out.println("---------------");
+ Teacher teacher = new Teacher();
+ teacher.sayHello();
+ teacher.sayBye();
+
+ }
+}
+```
+
+访问构造函数:
+this(xxx):调用当前类的构造函数
+super(xxx):调用父类的构造函数
+
+构造函数:对对象的成员属性进行初始化
+1.与类同名
+2.无返回值
+3.如果一个类没有显式定义构造函数,会自动创建一个公有的无参的构造函数,如果显式指定了构造函数,就不会再自动创建无参构造函数
+4.构造函数是类成员,可以指定修饰符
+5.创建对象时,使用new<构造函数>(xxx)
+6.创建子类对象时,必须先调用父类的构造函数
+7.一个构造函数的第一句代码必须是this(xxx)或者super(xxx),有且只有一次调用
+8.如果没有显式调用this(xxx)或super(xxx),默认调用super()
+### 3.10 多态(非常重要)
+
+在程序运行期间,同一行为,表现出多种形态
+1.继承或接口
+2。重写
+3.使用一个父类型(祖先类型)的引用指向一个子类(后代类)的实例
+
+```java
+package com.situ.chapter2;
+
+public class Animal {
+ public void run() {
+ System.out.println("动物在跑");
+ }
+}
+
+```
+
+```java
+package com.situ.chapter2;
+
+public class Cat extends Animal {
+ private static String name;
+
+ @Override
+ public void run() {
+ System.out.println("猫在跑");
+ }
+}
+
+```
+
+```java
+package com.situ.chapter2;
+
+public class Fish extends Animal {
+ @Override
+ public void run() {
+ System.out.println("鱼在跑");
+ }
+}
+
+```
+
+```java
+package com.situ.chapter2;
+
+public class Test1 {
+ static int a = 10;
+ public static void main(String[] args) {
+ Animal animal = new Cat();
+ run(animal);
+ }
+
+ static void run(Animal animal) {
+ animal.run();
+ }
+}
+```
+### 3.11 static和final
+static成员即类成员,属于类的,不属于某个对象,通过类名称直接访问
+
+final:表示最终的,不变的
+1.修饰类,表示类不能被继承
+2.修饰方法:表示方法不可被重写
+3.修饰变量:表示变量为不可变的变量(常量)
+
+### 3.12 抽象类和接口
+抽象方法:只有方法定义,没有实现的方法,叫抽象方法
+抽象类:使用abstract关键字
+1.使用abstract关键字
+2.不能创建实例(对象)
+3.除此之外,和普通类没有区别。
+4.可以有构造函数。
+5.抽象类中允许有抽象方法(也可以没有),普通类中一定没有抽象方法。
+6.一个类中只要有抽象方法,则必须是抽象类
+
+接口:
+1.接口不是类。
+2.接口中只能有抽象方法(),jdk1.8之后新增:静态方法(static)和默认方法(default)
+3.接口中的方法默认是public abstract修饰,不写也行
+4.接口中的静态方法和类中的静态方法类似
+可直接接口名调用
+5.接口中的默认方法可被继承到实现类中,在默认方法中可以使用this关键字,由实现类来调用
+
+接口提供一定的规范和约束,不提供实现
+实现类去实现接口 implements实现接口
+实现类必须对接口中的方法提供实现,如果不能,则只能为抽象类
+
+
+### 3.13 常用类
+1.Object:所有类的终极父类。没有父类
+hashCode:用于生成对象的唯一(尽量唯一)标识码
+默认返回对象的内存地址。
+equals:用于判定两个对象是否逻辑上相等,逻辑是由程序员决定的,重写。默认比较是否同一个内存地址
+toString:将一个对象以字符串的形式展示
+clone():克隆一个对象
+getClass:获取对象的类型实例(Class)
+
+2.String:表达式字符串,不可继承。内容不可变
+3.Math:数学相关方法
+4.Date:日期相关。LocalDate,LocalTime,LocalDateTime
+
+### 3.14 集合相关类:
+1.List:ArrayList,LinkedList.列表:有序,可重复。
+2.set:HashSet 集合,无序,不重复
+3.Map:HashMap 映射:存储键-值对,键无序,不重复
+
+### 3.15 泛型
+ 类型变量
+
+### 3.16异常
+程序出错时的处理方式.挽救或补回措施
+try...catch...finally
+caatch可以已有多个分支,第一个分支,捕获某一个类型的异常
+finally分支中的代码一定会执行,无论是否出现异常
+
+异常是有类型的
+
+异常分两种:
+异常分成两种:
+1.编译时异常,检查异常 ,checkedException。在编译期就要求处理异常。
+2.运行时异常。RuntimeException。
+
+
+
+### 3.17 IO
+Input & Output 流对象完成输入输出的
+
+流动的方向分为输入流和输出流
+
+流动的单位:字节流和字符流
+
+介质类型:文件流,网络流,数组流
+
+以Stream结尾的是字节流
+以InputStream结尾的是输入流
+流在使用完之后必须关闭,如果忘记,容易内存泄漏
+
+
+throws:写在方法后面,表示此方法向上抛出异常
+throw:原地抛出(触发,引发)异常
+
+### 3.18 多线程
+进程:Process,操作系统管理的独立的分配资源的单位,依靠端口进行通信
+一个程序至少有一个进程。
+如:QQ此时6个进程
+
+
+
+线程:Thread。一个进程中可以包含至少一个线程。所有线程共享进程的资源。线程是cpu可调度的最小单位
+
+cpu:单核。一个核心。
+多核。真正的并行。
+web开发程序都是并行的,多线程。
+
+
+### 3.18 反射
+反射:java的灵魂,在程序运行期间,在无法直接使用目标类的情况下,以一种间接的方式,去操作对象。
+Reflect: 镜像。
+
+常用类:
+Class: 描述其他类,描述类的类
+Field: 描述字段的类。描述成员属性
+Method:描述成员方法的。
+Constructor:描述构造函数的。
+Parameter:描述方法的参数的。
+Annotation:描述注解的。
+
+获取Class类型实例三种方式:
\ No newline at end of file
diff --git a/尹顺宇学习笔记/尹顺宇11.03作业/11.03学习笔记.pdf b/尹顺宇学习笔记/尹顺宇11.03作业/11.03学习笔记.pdf
new file mode 100644
index 0000000..9b44ed0
Binary files /dev/null and b/尹顺宇学习笔记/尹顺宇11.03作业/11.03学习笔记.pdf differ
diff --git a/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03学习总结.docx b/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03学习总结.docx
new file mode 100644
index 0000000..8979763
Binary files /dev/null and b/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03学习总结.docx differ
diff --git a/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03股票知识学习.docx b/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03股票知识学习.docx
new file mode 100644
index 0000000..80ac639
Binary files /dev/null and b/尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03股票知识学习.docx differ
diff --git a/李延霜学习笔记/李延霜Vue3学习总结.pdf b/李延霜学习笔记/李延霜Vue3学习总结.pdf
new file mode 100644
index 0000000..c6445e5
Binary files /dev/null and b/李延霜学习笔记/李延霜Vue3学习总结.pdf differ