Browse Source
Merge branch 'dev' of http://39.101.133.168:8807/donghanyang/Dbqb_Study into dev
wuguanghui
Merge branch 'dev' of http://39.101.133.168:8807/donghanyang/Dbqb_Study into dev
wuguanghui
28 changed files with 1597 additions and 9 deletions
-
9.idea/Dbqb_Study.iml
-
6.idea/misc.xml
-
4.idea/shelf/_2025_11_1_15_47____.xml
-
4.idea/shelf/_2025_11_3_18_01____.xml
-
4.idea/shelf/_2025_11_4_18_29____.xml
-
4.idea/shelf/___.xml
-
4.idea/shelf/___2.xml
-
134.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch
-
35.idea/shelf/在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]/shelved.patch
-
113.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]/shelved.patch
-
0.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]1/shelved.patch
-
80.idea/shelf/在进行签出之前于_2025_11_4_18_29_取消提交了更改_[更改]/shelved.patch
-
6.idea/vcs.xml
-
30zhangbo/第七天技术学习笔记.txt
-
34zhangbo/第八天技术学习笔记.txt
-
51zhangbo/第八天股票学习知识.txt
-
BIN孙维宁学习笔记/11.3孙维宁学习笔记.docx
-
BIN孙维宁学习笔记/11.4孙维宁学习笔记.docx
-
BIN孙维宁学习笔记/孙维宁-夺宝奇兵AI金牛学习笔记-11.4.docx
-
BIN孙维宁学习笔记/孙维宁-夺宝奇兵AI雷达学习-11.3.docx
-
BIN尹顺宇10.29作业/尹顺宇10.29夺宝奇兵之超级云脑部分学习.docx
-
528尹顺宇10.29作业/尹顺宇10.29学习笔记.md
-
BIN尹顺宇10.29作业/尹顺宇第三天学习总结.docx
-
BIN尹顺宇10.31作业/尹顺宇10.31学习总结.docx
-
560尹顺宇10.31作业/尹顺宇10.31学习笔记.md
-
BIN尹顺宇学习笔记/尹顺宇11.03作业/11.03学习笔记.pdf
-
BIN尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03学习总结.docx
-
BIN尹顺宇学习笔记/尹顺宇11.03作业/尹顺宇11.03股票知识学习.docx
@ -1,9 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<module type="JAVA_MODULE" version="4"> |
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
|
||||
<exclude-output /> |
|
||||
<content url="file://$MODULE_DIR$" /> |
|
||||
<orderEntry type="inheritedJdk" /> |
|
||||
<orderEntry type="sourceFolder" forTests="false" /> |
|
||||
</component> |
|
||||
</module> |
|
||||
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="ProjectRootManager" version="2" default="true"> |
||||
|
<output url="file://$PROJECT_DIR$/out" /> |
||||
|
</component> |
||||
|
</project> |
||||
@ -0,0 +1,4 @@ |
|||||
|
<changelist name="在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]" date="1761983269511" recycled="false" toDelete="true"> |
||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在进行更新之前于_2025_11_1_15_47_取消提交了更改_[更改]/shelved.patch" /> |
||||
|
<option name="DESCRIPTION" value="在进行更新之前于 2025/11/1 15:47 取消提交了更改 [更改]" /> |
||||
|
</changelist> |
||||
@ -0,0 +1,4 @@ |
|||||
|
<changelist name="在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]" date="1762164079716" recycled="false" toDelete="true"> |
||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在进行签出之前于_2025_11_3_18_01_取消提交了更改_[更改]/shelved.patch" /> |
||||
|
<option name="DESCRIPTION" value="在进行签出之前于 2025/11/3 18:01 取消提交了更改 [更改]" /> |
||||
|
</changelist> |
||||
@ -0,0 +1,4 @@ |
|||||
|
<changelist name="在进行签出之前于_2025_11_4_18_29_取消提交了更改_[更改]" date="1762252230252" recycled="true" deleted="true"> |
||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在进行签出之前于_2025_11_4_18_29_取消提交了更改_[更改]/shelved.patch" /> |
||||
|
<option name="DESCRIPTION" value="在进行签出之前于 2025/11/4 18:29 取消提交了更改 [更改]" /> |
||||
|
</changelist> |
||||
@ -0,0 +1,4 @@ |
|||||
|
<changelist name="在变基之前未提交的更改_[更改]" date="1762164387391" recycled="false" toDelete="true"> |
||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch" /> |
||||
|
<option name="DESCRIPTION" value="在变基之前未提交的更改 [更改]" /> |
||||
|
</changelist> |
||||
@ -0,0 +1,4 @@ |
|||||
|
<changelist name="在变基之前未提交的更改_[更改]2" date="1761983106869" recycled="true" deleted="true"> |
||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch" /> |
||||
|
<option name="DESCRIPTION" value="在变基之前未提交的更改 [更改]" /> |
||||
|
</changelist> |
||||
134
.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,35 @@ |
|||||
|
Index: .idea/workspace.xml
|
||||
|
IDEA additional info: |
||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
||||
|
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n <component name=\"AutoImportSettings\">\r\n <option name=\"autoReloadType\" value=\"SELECTIVE\" />\r\n </component>\r\n <component name=\"ChangeListManager\">\r\n <list default=\"true\" id=\"1250a154-aa13-4278-9e87-904a86c4dbd2\" name=\"更改\" comment=\"11.1\" />\r\n <option name=\"SHOW_DIALOG\" value=\"false\" />\r\n <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\r\n <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\r\n <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\r\n </component>\r\n <component name=\"Git.Settings\">\r\n <option name=\"RECENT_BRANCH_BY_REPOSITORY\">\r\n <map>\r\n <entry key=\"$PROJECT_DIR$\" value=\"sunweining/feature-20251028175924-学习\" />\r\n </map>\r\n </option>\r\n <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\r\n </component>\r\n <component name=\"PropertiesComponent\"><![CDATA[{\r\n \"keyToString\": {\r\n \"git-widget-placeholder\": \"dev\",\r\n \"last_opened_file_path\": \"D:/study_dbqb/Dbqb_Study/孙维宁学习笔记\",\r\n \"node.js.selected.package.tslint\": \"(autodetect)\"\r\n }\r\n}]]></component>\r\n <component name=\"TaskManager\">\r\n <task id=\"LOCAL-00001\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983013107</created>\r\n <option name=\"number\" value=\"00001\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00001\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983013107</updated>\r\n </task>\r\n <task id=\"LOCAL-00002\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983018907</created>\r\n <option name=\"number\" value=\"00002\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00002\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983018907</updated>\r\n </task>\r\n <option name=\"localTasksCounter\" value=\"3\" />\r\n <servers />\r\n </component>\r\n <component name=\"VcsManagerConfiguration\">\r\n <MESSAGE value=\"11.1\" />\r\n <option name=\"LAST_COMMIT_MESSAGE\" value=\"11.1\" />\r\n </component>\r\n</project> |
||||
|
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 @@
|
||||
|
</option> |
||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
||||
|
</component> |
||||
|
- <component name="PropertiesComponent"><![CDATA[{
|
||||
|
- "keyToString": {
|
||||
|
- "git-widget-placeholder": "dev",
|
||||
|
- "last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
|
||||
|
- "node.js.selected.package.tslint": "(autodetect)"
|
||||
|
+ <component name="PropertiesComponent">{
|
||||
|
+ "keyToString": {
|
||||
|
+ "git-widget-placeholder": "dev",
|
||||
|
+ "last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
|
||||
|
+ "node.js.selected.package.tslint": "(autodetect)"
|
||||
|
} |
||||
|
-}]]></component>
|
||||
|
+}</component>
|
||||
|
+ <component name="RecentsManager">
|
||||
|
+ <key name="CopyFile.RECENT_KEYS">
|
||||
|
+ <recent name="D:\study_dbqb\Dbqb_Study\孙维宁学习笔记" />
|
||||
|
+ </key>
|
||||
|
+ </component>
|
||||
|
<component name="TaskManager"> |
||||
|
<task id="LOCAL-00001" summary="11.1"> |
||||
|
<option name="closed" value="true" /> |
||||
@ -0,0 +1,113 @@ |
|||||
|
Index: .idea/workspace.xml
|
||||
|
IDEA additional info: |
||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
||||
|
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n <component name=\"AutoImportSettings\">\r\n <option name=\"autoReloadType\" value=\"SELECTIVE\" />\r\n </component>\r\n <component name=\"ChangeListManager\">\r\n <list default=\"true\" id=\"1250a154-aa13-4278-9e87-904a86c4dbd2\" name=\"更改\" comment=\"11.1\" />\r\n <option name=\"SHOW_DIALOG\" value=\"false\" />\r\n <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\r\n <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\r\n <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\r\n </component>\r\n <component name=\"Git.Settings\">\r\n <option name=\"RECENT_BRANCH_BY_REPOSITORY\">\r\n <map>\r\n <entry key=\"$PROJECT_DIR$\" value=\"sunweining/feature-20251028175924-学习\" />\r\n </map>\r\n </option>\r\n <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\r\n </component>\r\n <component name=\"PropertiesComponent\"><![CDATA[{\r\n \"keyToString\": {\r\n \"git-widget-placeholder\": \"dev\",\r\n \"last_opened_file_path\": \"D:/study_dbqb/Dbqb_Study/孙维宁学习笔记\",\r\n \"node.js.selected.package.tslint\": \"(autodetect)\"\r\n }\r\n}]]></component>\r\n <component name=\"TaskManager\">\r\n <task id=\"LOCAL-00001\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983013107</created>\r\n <option name=\"number\" value=\"00001\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00001\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983013107</updated>\r\n </task>\r\n <task id=\"LOCAL-00002\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983018907</created>\r\n <option name=\"number\" value=\"00002\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00002\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983018907</updated>\r\n </task>\r\n <option name=\"localTasksCounter\" value=\"3\" />\r\n <servers />\r\n </component>\r\n <component name=\"VcsManagerConfiguration\">\r\n <MESSAGE value=\"11.1\" />\r\n <option name=\"LAST_COMMIT_MESSAGE\" value=\"11.1\" />\r\n </component>\r\n</project> |
||||
|
===================================================================
|
||||
|
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 @@
|
||||
|
<option name="autoReloadType" value="SELECTIVE" /> |
||||
|
</component> |
||||
|
<component name="ChangeListManager"> |
||||
|
- <list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="11.1" />
|
||||
|
+ <list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="吴光慧10.31学习笔记">
|
||||
|
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
|
+ </list>
|
||||
|
<option name="SHOW_DIALOG" value="false" /> |
||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" /> |
||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
||||
|
<option name="LAST_RESOLUTION" value="IGNORE" /> |
||||
|
</component> |
||||
|
<component name="Git.Settings"> |
||||
|
+ <option name="PREVIOUS_COMMIT_AUTHORS">
|
||||
|
+ <list>
|
||||
|
+ <option value="wuguanghui <wugh5200@163.com>" />
|
||||
|
+ </list>
|
||||
|
+ </option>
|
||||
|
<option name="RECENT_BRANCH_BY_REPOSITORY"> |
||||
|
<map> |
||||
|
<entry key="$PROJECT_DIR$" value="sunweining/feature-20251028175924-学习" /> |
||||
|
@@ -18,13 +25,40 @@
|
||||
|
</option> |
||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
||||
|
</component> |
||||
|
- <component name="PropertiesComponent"><![CDATA[{
|
||||
|
- "keyToString": {
|
||||
|
- "git-widget-placeholder": "dev",
|
||||
|
- "last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
|
||||
|
- "node.js.selected.package.tslint": "(autodetect)"
|
||||
|
+ <component name="ProblemsViewState">
|
||||
|
+ <option name="selectedTabId" value="CurrentFile" />
|
||||
|
+ </component>
|
||||
|
+ <component name="ProjectColorInfo">{
|
||||
|
+ "associatedIndex": 4
|
||||
|
+}</component>
|
||||
|
+ <component name="ProjectId" id="34rtCmOq3yhiCcAxPlqIYaB0UzD" />
|
||||
|
+ <component name="ProjectViewState">
|
||||
|
+ <option name="hideEmptyMiddlePackages" value="true" />
|
||||
|
+ <option name="showLibraryContents" value="true" />
|
||||
|
+ </component>
|
||||
|
+ <component name="PropertiesComponent">{
|
||||
|
+ "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"
|
||||
|
} |
||||
|
-}]]></component>
|
||||
|
+}</component>
|
||||
|
+ <component name="SharedIndexes">
|
||||
|
+ <attachedChunks>
|
||||
|
+ <set>
|
||||
|
+ <option value="bundled-jdk-9823dce3aa75-fbdcb00ec9e3-intellij.indexing.shared.core-IU-251.26927.53" />
|
||||
|
+ <option value="bundled-js-predefined-d6986cc7102b-09060db00ec0-JavaScript-IU-251.26927.53" />
|
||||
|
+ </set>
|
||||
|
+ </attachedChunks>
|
||||
|
+ </component>
|
||||
|
<component name="TaskManager"> |
||||
|
<task id="LOCAL-00001" summary="11.1"> |
||||
|
<option name="closed" value="true" /> |
||||
|
@@ -42,11 +76,32 @@
|
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1761983018907</updated> |
||||
|
</task> |
||||
|
- <option name="localTasksCounter" value="3" />
|
||||
|
+ <task id="LOCAL-00003" summary="吴光慧10.31学习笔记">
|
||||
|
+ <option name="closed" value="true" />
|
||||
|
+ <created>1761983178324</created>
|
||||
|
+ <option name="number" value="00003" />
|
||||
|
+ <option name="presentableId" value="LOCAL-00003" />
|
||||
|
+ <option name="project" value="LOCAL" />
|
||||
|
+ <updated>1761983178324</updated>
|
||||
|
+ </task>
|
||||
|
+ <task active="true" id="Default" summary="默认任务">
|
||||
|
+ <changelist id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="吴光慧10.31学习笔记" />
|
||||
|
+ <created>1761983393822</created>
|
||||
|
+ <option name="number" value="Default" />
|
||||
|
+ <option name="presentableId" value="Default" />
|
||||
|
+ <updated>1761983393822</updated>
|
||||
|
+ <workItem from="1761983395298" duration="2767000" />
|
||||
|
+ <workItem from="1762135290172" duration="1237000" />
|
||||
|
+ </task>
|
||||
|
+ <option name="localTasksCounter" value="4" />
|
||||
|
<servers /> |
||||
|
</component> |
||||
|
+ <component name="TypeScriptGeneratedFilesManager">
|
||||
|
+ <option name="version" value="3" />
|
||||
|
+ </component>
|
||||
|
<component name="VcsManagerConfiguration"> |
||||
|
<MESSAGE value="11.1" /> |
||||
|
- <option name="LAST_COMMIT_MESSAGE" value="11.1" />
|
||||
|
+ <MESSAGE value="吴光慧10.31学习笔记" />
|
||||
|
+ <option name="LAST_COMMIT_MESSAGE" value="吴光慧10.31学习笔记" />
|
||||
|
</component> |
||||
|
</project> |
||||
|
\ No newline at end of file |
||||
@ -0,0 +1,80 @@ |
|||||
|
Index: .idea/workspace.xml
|
||||
|
IDEA additional info: |
||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
||||
|
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n <component name=\"AutoImportSettings\">\r\n <option name=\"autoReloadType\" value=\"SELECTIVE\" />\r\n </component>\r\n <component name=\"ChangeListManager\">\r\n <list default=\"true\" id=\"1250a154-aa13-4278-9e87-904a86c4dbd2\" name=\"更改\" comment=\"11.1\" />\r\n <option name=\"SHOW_DIALOG\" value=\"false\" />\r\n <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\r\n <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\r\n <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\r\n </component>\r\n <component name=\"Git.Settings\">\r\n <option name=\"RECENT_BRANCH_BY_REPOSITORY\">\r\n <map>\r\n <entry key=\"$PROJECT_DIR$\" value=\"sunweining/feature-20251028175924-学习\" />\r\n </map>\r\n </option>\r\n <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\r\n </component>\r\n <component name=\"PropertiesComponent\"><![CDATA[{\r\n \"keyToString\": {\r\n \"git-widget-placeholder\": \"dev\",\r\n \"last_opened_file_path\": \"D:/study_dbqb/Dbqb_Study/孙维宁学习笔记\",\r\n \"node.js.selected.package.tslint\": \"(autodetect)\"\r\n }\r\n}]]></component>\r\n <component name=\"TaskManager\">\r\n <task id=\"LOCAL-00001\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983013107</created>\r\n <option name=\"number\" value=\"00001\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00001\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983013107</updated>\r\n </task>\r\n <task id=\"LOCAL-00002\" summary=\"11.1\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1761983018907</created>\r\n <option name=\"number\" value=\"00002\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00002\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1761983018907</updated>\r\n </task>\r\n <option name=\"localTasksCounter\" value=\"3\" />\r\n <servers />\r\n </component>\r\n <component name=\"VcsManagerConfiguration\">\r\n <MESSAGE value=\"11.1\" />\r\n <option name=\"LAST_COMMIT_MESSAGE\" value=\"11.1\" />\r\n </component>\r\n</project> |
||||
|
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 4681e03fcc05c7356d45b7a40efbce419ea0224d)
|
||||
|
+++ b/.idea/workspace.xml (date 1762252091887)
|
||||
|
@@ -4,7 +4,9 @@
|
||||
|
<option name="autoReloadType" value="SELECTIVE" /> |
||||
|
</component> |
||||
|
<component name="ChangeListManager"> |
||||
|
- <list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="11.1" />
|
||||
|
+ <list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="">
|
||||
|
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
|
+ </list>
|
||||
|
<option name="SHOW_DIALOG" value="false" /> |
||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" /> |
||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
||||
|
@@ -17,14 +19,36 @@
|
||||
|
</map> |
||||
|
</option> |
||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
||||
|
+ </component>
|
||||
|
+ <component name="ProjectColorInfo">{
|
||||
|
+ "associatedIndex": 8
|
||||
|
+}</component>
|
||||
|
+ <component name="ProjectId" id="34xnmxX9oLQyXMGugRDRYXTC0zM" />
|
||||
|
+ <component name="ProjectViewState">
|
||||
|
+ <option name="hideEmptyMiddlePackages" value="true" />
|
||||
|
+ <option name="showLibraryContents" value="true" />
|
||||
|
</component> |
||||
|
<component name="PropertiesComponent"><![CDATA[{ |
||||
|
"keyToString": { |
||||
|
+ "RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
|
+ "RunOnceActivity.git.unshallow": "true",
|
||||
|
"git-widget-placeholder": "dev", |
||||
|
"last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记", |
||||
|
- "node.js.selected.package.tslint": "(autodetect)"
|
||||
|
+ "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"
|
||||
|
} |
||||
|
}]]></component> |
||||
|
+ <component name="SharedIndexes">
|
||||
|
+ <attachedChunks>
|
||||
|
+ <set>
|
||||
|
+ <option value="bundled-jdk-9823dce3aa75-fbdcb00ec9e3-intellij.indexing.shared.core-IU-251.26927.53" />
|
||||
|
+ <option value="bundled-js-predefined-d6986cc7102b-09060db00ec0-JavaScript-IU-251.26927.53" />
|
||||
|
+ </set>
|
||||
|
+ </attachedChunks>
|
||||
|
+ </component>
|
||||
|
<component name="TaskManager"> |
||||
|
<task id="LOCAL-00001" summary="11.1"> |
||||
|
<option name="closed" value="true" /> |
||||
|
@@ -41,9 +65,20 @@
|
||||
|
<option name="presentableId" value="LOCAL-00002" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1761983018907</updated> |
||||
|
+ </task>
|
||||
|
+ <task active="true" id="Default" summary="默认任务">
|
||||
|
+ <changelist id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="" />
|
||||
|
+ <created>1762217324956</created>
|
||||
|
+ <option name="number" value="Default" />
|
||||
|
+ <option name="presentableId" value="Default" />
|
||||
|
+ <updated>1762217324956</updated>
|
||||
|
+ <workItem from="1762217326802" duration="1129000" />
|
||||
|
</task> |
||||
|
<option name="localTasksCounter" value="3" /> |
||||
|
<servers /> |
||||
|
+ </component>
|
||||
|
+ <component name="TypeScriptGeneratedFilesManager">
|
||||
|
+ <option name="version" value="3" />
|
||||
|
</component> |
||||
|
<component name="VcsManagerConfiguration"> |
||||
|
<MESSAGE value="11.1" /> |
||||
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="VcsDirectoryMappings"> |
||||
|
<mapping directory="" vcs="Git" /> |
||||
|
</component> |
||||
|
</project> |
||||
@ -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. 状态的转移:无状态通信 |
||||
|
服务端不保存客户端应用状态,每次请求需包含所有处理信息(无状态通信);客户端维护应用状态,服务端维护资源状态。 |
||||
|
应用状态通过服务端提供的超媒体链接实现转移,客户端无需依赖固定服务端节点,提升扩展性。 |
||||
|
|
||||
@ -0,0 +1,34 @@ |
|||||
|
今日学习笔记:Swagger 与前后端分离接口管理 |
||||
|
|
||||
|
一、Swagger 核心认知 |
||||
|
定位:Swagger(现归属 OpenAPI 规范)是目前前后端分离场景中最流行的 API 接口文档生成与管理工具。 |
||||
|
跨语言支持:不仅适用于 Java(如 Spring Boot),还支持 Python、Node.js、Go 等多种编程语言,通用性极强。 |
||||
|
核心价值:解决传统接口文档“维护成本高、与代码不同步、无法直接调试”等痛点。 |
||||
|
|
||||
|
二、Swagger 核心功能 |
||||
|
自动生成接口文档 |
||||
|
基于代码注解实时生成文档,代码变更时文档自动更新,避免“文档过期”问题。 |
||||
|
|
||||
|
增强接口可读性 |
||||
|
可对复杂属性、接口逻辑添加详细注释(如参数含义、返回值说明、业务场景),降低前后端沟通成本。 |
||||
|
|
||||
|
在线调试接口 |
||||
|
提供可视化 UI 界面(Swagger UI),支持直接填写参数、发送请求、查看响应,无需依赖 Postman 等工具。 |
||||
|
|
||||
|
规范接口设计 |
||||
|
强制遵循 OpenAPI 规范,统一接口的路径、参数格式、返回值结构,提升团队协作效率。 |
||||
|
|
||||
|
三、Spring Boot 集成 Swagger 核心步骤 |
||||
|
1. 引入依赖 |
||||
|
|
||||
|
2. 配置 Swagger |
||||
|
创建配置类,定义文档基本信息(标题、描述、版本等): |
||||
|
|
||||
|
3. 添加接口注释 |
||||
|
使用 Swagger 注解增强文档可读性: |
||||
|
|
||||
|
4. 访问 Swagger UI |
||||
|
启动项目后,通过 `http://localhost:端口号/swagger-ui/index.html` 访问可视化界面,可查看文档并在线调试。 |
||||
|
|
||||
|
Swagger 前后端分离项目中接口管理,核心优势在于文档实时同步和在线调试。 |
||||
|
通过 Spring Boot 集成后,可快速为接口添加注释,降低团队沟通成本。 |
||||
@ -0,0 +1,51 @@ |
|||||
|
股票知识复习 |
||||
|
本次复习覆盖股票基础理论、专业分析工具,形成从“概念认知”到“工具实操”再到“决策应用”的链路。 |
||||
|
一、股票基础:构建市场认知框架 |
||||
|
从基础概念到交易逻辑,逐步建立对A股市场的系统性理解,核心知识点可分为四类: |
||||
|
1. 市场主体与标的 |
||||
|
明确A股定义:境内交易所上市、以人民币交易的普通股,是散户最核心的参与市场; |
||||
|
区分股东类型:大股东(持股5%以上,动作影响股价)与散户(小资金投资者),需关注股东变动公告捕捉关键信号。 |
||||
|
2. 交易规则核心 |
||||
|
价格相关:开盘价(9:30首笔成交)反映早盘情绪,收盘价(15:00终笔/深市集合竞价)为行情基准;普通股票单日涨跌停限制10%(ST股5%),涨停可卖、跌停可买,价格暂时锁定; |
||||
|
量能指标:成交量(成交总股数)、成交额(成交量×股价)是行情真实性的关键——量能放大通常意味着市场关注度提升,需结合价格走势判断多空力量。 |
||||
|
3. 市场状态判断 |
||||
|
牛熊周期:牛市(长期上涨、情绪乐观,赚钱效应强)、熊市(长期下跌、情绪低迷,亏损风险高),新手需避免熊市高位入场; |
||||
|
指数参考:“大盘”通常指上证综指(沪市整体)、深证成指(深市整体),指数涨跌可快速判断市场整体方向,如上证综指涨1%代表沪市多数股票上涨。 |
||||
|
4. 收益指标解读 |
||||
|
市盈率(PE=股价÷每股收益):反映“为1元利润付出的价格”,PE低通常更便宜,但需结合行业对比(如科技股PE普遍高于银行股); |
||||
|
每股收益(EPS=净利润÷总股本):体现每股股票可分利润,EPS持续增长是股价上涨的重要支撑; |
||||
|
股息率(每股分红÷股价×100%):适合追求稳定收益的投资者,银行股、公用事业股股息率通常较高。 |
||||
|
|
||||
|
二、股票分析工具:AI辅助决策体系落地 |
||||
|
聚焦多款专业AI工具的逻辑拆解与实战应用,掌握“从信号识别到操作落地”的全流程方法,核心工具分为三类: |
||||
|
(一)夺宝利剑:趋势联动与启动信号捕捉 |
||||
|
1. 核心逻辑:通过“天线(长期趋势锚点)、飞线(中期预期)、中线(短期资金)、流线(起爆提示)”四线联动,形成“长-中-短”趋势闭环; |
||||
|
2. 关键信号 |
||||
|
强启动:四线窄幅交汇(股价波动≤3%)+流线领涨突破,多空一致、动能集中,易进入主升浪; |
||||
|
弱启动:三线交汇但流线未突破,仅长期/中期趋势一致,需等待流线向上再入场; |
||||
|
3. 实战启示:仅当天线未拐头向下时可忽略短期波动;若流线突破但飞线、天线反向,大概率为假信号(如周期股流线短暂突破但天线向下,易快速回落)。 |
||||
|
4. 案例应用(N奕材-U):作为半导体成长股,天线因行业景气度与公司竞争力陡峭向上,飞线同步反映产能预期,中线随高换手率(60%+)上行,流线开盘15分钟内与三线交汇,精准捕捉上市首日198.72%的涨幅。 |
||||
|
|
||||
|
(二)AI探牛:趋势强度与K线属性验证 |
||||
|
1. 核心逻辑:以“牵牛绳(红升绿降定趋势)+K线属性(进攻/推进/防守/撤退辨多空)”组合,解决短期波动与趋势本质的区分问题; |
||||
|
2. 关键规则 |
||||
|
跨周期验证:日线红绳+进攻K线但周线绿绳,为短期反弹需控仓;日线与周线均红绳+进攻K线,形成“大周期托举小周期”,上涨更稳定; |
||||
|
回调判断:绿绳+撤退K线出现时,跌幅≤5%且未破周线为短期回调,跌幅≥8%且周线拐头需果断止损; |
||||
|
3. 成长股适配:针对N奕材-U这类高波动标的,牵牛绳转换更灵敏(单日涨超50%即可绿转红),进攻K线需满足“首日涨≥50%且收盘价站当日涨幅80%以上”,确保信号时效性。 |
||||
|
|
||||
|
(三)AI雷达:底部启动与趋势强化分析 |
||||
|
1. 核心逻辑:通过“天轨(多方控制线,蓝)、地轨(空方控制线,黄)”+K线形态,判断底部与上涨趋势; |
||||
|
2. 关键信号 |
||||
|
底部启动:需满足“阴线数量多于上一波、最低价创新低、地轨朝上/天地轨走平”3大前提,再通过“试盘阳线(主力探承接)、启动阳线(底部确认)”入场; |
||||
|
趋势强化(金刚一击):上涨中天门由平转朝上,对应拉升阳线,说明多方发力进入加速阶段; |
||||
|
3. 待完善方向:需补充止损信号(如跌破地轨幅度/天数)、震荡行情筛选机制(限定下跌周期、要求量能达标)、不同风格个股适配参数(小盘股缩短周期、蓝筹股提高量能要求)。 |
||||
|
|
||||
|
(四)夺宝奇兵超级云脑:全流程决策辅助 |
||||
|
1. 核心定位:散户专属智能体系,分“超级云脑(分析中枢,输出估值/安全级等指标)、云脑探秘(可视化窗口,展示六大维度)、机构动向(资金跟踪,呈现四大维度)”三层; |
||||
|
2. 关键模块应用 |
||||
|
云脑探秘:覆盖股票估值(PE/PB/EPS对比,输出高估/合理/低估)、安全级别(六色罗盘划五级风险)、压力支撑(标注止跌/受阻位)、趋势研判(区分长短期趋势)、庄家成本(对比主力与散户成本)、情绪价值(提示过热/低迷/拐点),解决“值不值买、能不能买、该持有还是卖”核心问题; |
||||
|
机构动向:通过当日资金(多空流向)、主力资金(机构态度)、主力吸筹(建仓信号)、庄散对决(持仓比例),验证个股资金支撑力度,如“低估+主力净流入+吸筹”为三重利好; |
||||
|
3. 实操流程:选股(估值+安全级+庄家成本+机构资金)→买入(支撑位+情绪稳定)→持有(趋势+主力资金+筹码)→卖出(压力位止盈+情绪恐慌止损)。 |
||||
|
|
||||
|
整体复习启示 |
||||
|
股票领域:基础概念是判断前提,工具信号需结合产业逻辑(如半导体成长股关注行业景气度)、资金动向(如主力净流入)、情绪周期(如避免过热追高)综合验证,避免单一依赖信号; |
||||
@ -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%') |
||||
|
``` |
||||
|
|
||||
@ -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<right &&arr[left]<=arr[low]){ |
||||
|
left++; |
||||
|
} |
||||
|
if(left<right){ |
||||
|
int temp = arr[left]; |
||||
|
arr[left]=arr[right]; |
||||
|
arr[right]=temp; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
//left和right相遇 |
||||
|
if(left!=low){ |
||||
|
arr[low]=arr[left]; |
||||
|
arr[left]=target; |
||||
|
} |
||||
|
quickSort2(arr,low,left-1); |
||||
|
quickSort2(arr,left+1,high); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
查找:二分查找 |
||||
|
|
||||
|
```java |
||||
|
public class Test4 { |
||||
|
public static void main(String[] args) { |
||||
|
int[] arr = {2, 10, 32, 35, 44, 44, 64, 66, 67, 86}; |
||||
|
int idx = find2(arr, 0, arr.length - 1, 67); |
||||
|
System.out.println(idx); |
||||
|
} |
||||
|
|
||||
|
static int find(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 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 泛型 |
||||
|
<T> 类型变量 |
||||
|
|
||||
|
### 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类型实例三种方式: |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue