liyanshuang 3 weeks ago
parent
commit
91288cbede
  1. 10
      .idea/.gitignore
  2. 67
      .idea/misc.xml
  3. 9
      .idea/new.iml
  4. 6
      .idea/vcs.xml
  5. 63
      .idea/workspace.xml
  6. 16
      zhangbo/第五天技术学习.txt
  7. 54
      zhangbo/第五天股票学习.txt
  8. BIN
      吴光慧学习笔记/10.31/10.31夺宝利剑-吴光慧.docx
  9. BIN
      吴光慧学习笔记/10.31/10.31学习总结-吴光慧.docx
  10. 45
      吴光慧学习笔记/10.31/study.html
  11. BIN
      孙维宁学习笔记/10.29孙维宁学习笔记.docx
  12. BIN
      孙维宁学习笔记/10.31孙维宁学习笔记.docx
  13. BIN
      孙维宁学习笔记/11.1孙维宁学习笔记.docx
  14. BIN
      孙维宁学习笔记/孙维宁-Link软件相关功能学习笔记-10.27.docx
  15. BIN
      孙维宁学习笔记/孙维宁-夺宝奇兵AI预测大模型学习笔记-11.1.docx
  16. BIN
      孙维宁学习笔记/孙维宁-夺宝奇兵夺宝利剑+AI探牛学习笔记-10.31.docx
  17. BIN
      孙维宁学习笔记/孙维宁-夺宝奇兵超级云脑学习笔记补全版-10.30.docx
  18. BIN
      孙维宁学习笔记/孙维宁-夺宝奇兵超级云脑机构动向学习笔记-10.20.docx
  19. BIN
      孙维宁学习笔记/孙维宁-股票知识学习笔记-10.28.docx
  20. BIN
      尹顺宇10.31作业/尹顺宇10.31夺宝奇兵之AI金牛学习.docx
  21. BIN
      尹顺宇10.31作业/尹顺宇10.31学习总结.docx
  22. 560
      尹顺宇10.31作业/尹顺宇10.31学习笔记.md

10
.idea/.gitignore

@ -1,10 +0,0 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# 依赖于环境的 Maven 主目录路径
/mavenHomeManager.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

67
.idea/misc.xml

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id>JUnit</id>
</State>
<State>
<id>JVM 语言</id>
</State>
<State>
<id>Java</id>
</State>
<State>
<id>Java 5Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>Java 8Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>JavadocJava</id>
</State>
<State>
<id>Spring</id>
</State>
<State>
<id>Spring AOPSpring</id>
</State>
<State>
<id>TestNGJava</id>
</State>
<State>
<id>代码成熟度Java</id>
</State>
<State>
<id>性能Java</id>
</State>
<State>
<id>数值问题Java</id>
</State>
<State>
<id>线程问题Java</id>
</State>
<State>
<id>编译器问题Java</id>
</State>
<State>
<id>详细或冗余的代码结构Java</id>
</State>
</expanded-state>
<selected-state>
<State>
<id>用户定义</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="ms-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

9
.idea/new.iml

@ -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>

6
.idea/vcs.xml

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

63
.idea/workspace.xml

@ -4,7 +4,7 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="e9807c74-40e9-4058-a7fc-a1b7d5673ee9" name="Changes" comment="尹顺宇10.28第二次提交" />
<list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="11.1" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@ -13,79 +13,40 @@
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="dev" />
<entry key="$PROJECT_DIR$" value="sunweining/feature-20251028175924-学习" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;customColor&quot;: &quot;&quot;,
&quot;associatedIndex&quot;: 7
}</component>
<component name="ProjectId" id="34gukrCQvX9IyqbGUVm223CRuDa" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"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"
"last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
"node.js.selected.package.tslint": "(autodetect)"
}
}]]></component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-jdk-9823dce3aa75-bf35d07a577b-intellij.indexing.shared.core-IU-252.27397.103" />
<option value="bundled-js-predefined-d6986cc7102b-3aa1da707db6-JavaScript-IU-252.27397.103" />
</set>
</attachedChunks>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="e9807c74-40e9-4058-a7fc-a1b7d5673ee9" name="Changes" comment="" />
<created>1761647682116</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1761647682116</updated>
<workItem from="1761647683285" duration="1423000" />
<workItem from="1761702635011" duration="19000" />
<workItem from="1761702726155" duration="1693000" />
</task>
<task id="LOCAL-00001" summary="尹顺宇10.28第二次提交">
<task id="LOCAL-00001" summary="11.1">
<option name="closed" value="true" />
<created>1761647865510</created>
<created>1761983013107</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1761647865510</updated>
<updated>1761983013107</updated>
</task>
<task id="LOCAL-00002" summary="尹顺宇10.28第二次提交">
<task id="LOCAL-00002" summary="11.1">
<option name="closed" value="true" />
<created>1761647873327</created>
<created>1761983018907</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1761647873327</updated>
<updated>1761983018907</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="尹顺宇10.28第二次提交" />
<option name="LAST_COMMIT_MESSAGE" value="尹顺宇10.28第二次提交" />
<MESSAGE value="11.1" />
<option name="LAST_COMMIT_MESSAGE" value="11.1" />
</component>
</project>

16
zhangbo/第五天技术学习.txt

@ -0,0 +1,16 @@
第五天技术学习规划
1:Spring Boot整合ORM框架(MyBatis/MyBatis-Plus)—— 数据库操作
2:Spring Boot Web开发进阶(解决实际接口问题)
3:学习了异常处理(@ControllerAdvice)
核心需求:统一处理接口异常(如参数校验失败、数据库异常),返回规范的错误格式(避免直接返回默认错误页面)
4:拦截器
5:微服务组件实战深化(
6:Nacos进阶:配置分组与命名空间
7:Seata进阶:事务失败排查与日志分析
8:Dubbo进阶:负载均衡与服务降级
9:AOP高级应用(结合自定义注解)
10:对前几天学习的知识进行整合
11:重点复习
Java集合底层(HashMap与ConcurrentHashMap的区别)、JVM垃圾回收算法、MySQL索引失效场景(如“函数操作索引列”“不等于判断”);
Spring Boot自动配置原理(`@EnableAutoConfiguration`如何加载配置类)、AOP核心概念(切入点与通知的关系);
MyBatis-Plus分页插件原理、Seata事务回滚机制、Dubbo服务降级逻辑。

54
zhangbo/第五天股票学习.txt

@ -0,0 +1,54 @@
AI金牛工具实战解析:N奕材-U的成长股趋势捕捉与信号验证
一、夺宝利剑:成长股启动信号的精准定位
作为AI赋能的简化版趋势工具,夺宝利剑通过“四线分工+信号聚合”的逻辑,在高波动成长股中更能凸显其捕捉启动点的核心价值。以10月28日上市的科创成长股N奕材-U为例,其上市首日涨幅达198.72%、市值突破千亿的强爆发表现,恰好与夺宝利剑的四线信号形成完美呼应,为散户提供了清晰的布局参考。
核心组成与个股适配解读
针对N奕材-U这类半导体赛道成长股,夺宝利剑四条线的信号意义与蓝筹股存在显著差异,需重点关注“短期爆发力与长期基本面的共振”:
天线:对应半导体行业景气度与公司核心竞争力。N奕材-U作为中国内地第一、全球第六的12英寸硅片厂商,产品已适配AI高端芯片供应链,长期产业逻辑扎实,天线自上市起即呈陡峭向上走势,确认长期趋势强势。
飞线:反映市场对产能释放的预期。公司通过IPO募资建设第二工厂,预计2026年全球份额将超10%,中期增长确定性明确,飞线与天线同步向上,形成“产业逻辑+资金预期”的双重支撑。
中线:捕捉新股上市后的短期资金动向。N奕材-U上市首日换手率超60%(科创新股典型特征),中线随资金流入快速上行,且始终位于飞线之上,显示短期承接力强劲。
流线:成长股最关键的“起爆提示线”。上市前的盘前竞价阶段,流线已完成从向下到向上的转向,并快速向其他三线靠拢,开盘后15分钟内即与三线形成交汇,构成明确的启动信号。
核心信号与实战操作逻辑
N奕材-U的案例完美印证了夺宝利剑的“四线共振”法则,其信号特征与操作价值具体体现为:
关键信号:10月28日开盘瞬间,天线、飞线、中线、流线在发行价上方30%区间完成交汇,流线以45度角向上突破其他三线,形成“起爆聚合点”。这一信号与该股作为年内第二大IPO的资金关注度、半导体自主化的产业热度形成三重印证。
使用逻辑:遵循“长期看天线(产业逻辑)、中期看飞线(产能预期)、短期看中线(资金承接)、启动看流线(起爆时机)”的分层判断:天线向上确认赛道价值,飞线同步验证增长确定性,中线不破飞线说明资金未撤离,流线突破则给出精准入场点。
解决的核心痛点:避免散户在新股炒作中“盲目追高”或“错过主升”——四线未交汇时,即便开盘冲高也需观望;交汇信号出现后介入,既抓住了首日198%涨幅的核心波段,又通过天线方向规避了长期风险。
二、AI探牛:成长股趋势强度的双重验证
AI探牛通过“牵牛绳定趋势+K线属性辨多空”的组合逻辑,针对N奕材-U这类高成长新股,重点解决“短期波动与趋势本质的区分”问题。结合其半导体赛道属性与新股波动特征,信号解读需聚焦“趋势确立效率”与“资金动能持续性”两大核心。
指标定义与成长股适配要点
相较于工商银行这类低波动蓝筹,N奕材-U的AI探牛信号解读需强化“短期信号的时效性”,具体指标适配规则如下:
| 指标 | 核心功能 | N奕材-U适配要点 |
|----- -|----------|----------------|
| 牵牛绳 | 标注整体趋势(红=升/绿=降) | 成长股趋势转换快,单日涨幅超50%即可触发绿转红,无需3日确认 |
| 进攻K线(红) | 多方主动发力,涨幅真实有效 | 新股上市首日涨幅≥50%且收盘价站于当日涨幅80%以上为强信号 |
| 推进K线(蓝) | 多方稳步控盘,趋势持续确认 | 上市后次日涨幅≥10%且量能未缩量,视为资金持续流入信号 |
| 防守K线(黄) | 多空博弈临界点,动能衰减 | 单日冲高回落幅度≥15%(即最高价与收盘价差占开盘价15%以上)触发 |
| 撤退K线(青) | 空方主导下跌,趋势转弱 | 单日跌幅≥10%且开盘价为当日最高价,视为短期资金出逃信号 |
10.28-10.30 AI探牛信号全解析
(一)趋势锚点:牵牛绳的快速确认轨迹
转换逻辑:10月28日开盘后,N奕材-U股价从发行价8.62元快速拉升至25元以上,半小时内涨幅突破180%,触发牵牛绳“瞬时转红”(成长股特殊规则);10月29日股价微涨2.3%,绳色维持红色(确认趋势延续);10月30日虽小幅回调3.1%,但未跌破前一日收盘价25.75元,绳色持续为红。
关键结论:N奕材-U当前处于明确的红绳上升趋势,短期回调未触及趋势反转阈值,符合半导体成长股“强趋势下窄幅震荡”的特征。
(二)核心信号组合与实战价值
1. 趋势启动信号(10.28):红绳+超强进攻K线
特征:牵牛绳瞬时转红后,当日收出涨幅198.72%的巨型进攻K线,收盘价25.75元接近当日最高价26.10元,且量能达50亿元(远超同类新股平均水平)。
操作价值:这是成长股的“极致买点”,对应股价从发行价到首日收盘价的翻倍收益,完美捕捉新股上市后的主升波段。
2. 趋势延续信号(10.29):红绳+推进K线
特征:红绳趋势下,当日收涨2.3%的推进K线,量能维持在35亿元(未较前一日大幅萎缩),且股价站稳25元整数关口。
操作价值:确认资金未大规模撤离,可持仓观望后续突破机会,对应股价从25.75元升至26.34元的短期收益。
3. 趋势防守信号(10.30):红绳+弱防守K线
特征:红绳趋势未变,但当日收出冲高回落的防守K线(最高价26.80元,收盘价25.96元,回落幅度3.1%),且量能降至28亿元。
操作价值:提示短期获利盘了结风险,需减仓1/3规避波动,但无需清仓——因红绳未转绿,长期趋势仍受产业逻辑支撑。
三、工具组合应用的实战启示
N奕材-U的案例充分展现了AI金牛两大工具的协同价值:夺宝利剑的“四线交汇”信号精准命中10月28日的起爆点,解决“何时买”的问题;AI探牛的“红绳+K线组合”则持续验证趋势强度,解决“何时持、何时减”的问题。
相较于工商银行的低波动策略,成长股操作需把握两大核心差异:一是夺宝利剑的流线突破信号更具时效性,需在15分钟内快速响应;二是AI探牛的牵牛绳转换更灵敏,无需等待多日确认。对于散户而言,这种“启动点精准定位+趋势强度验证”的组合,能有效降低成长股投资中的“追高站岗”与“过早离场”风险,在半导体等高景气赛道中更能发挥实战价值。

BIN
吴光慧学习笔记/10.31/10.31夺宝利剑-吴光慧.docx

BIN
吴光慧学习笔记/10.31/10.31学习总结-吴光慧.docx

45
吴光慧学习笔记/10.31/study.html

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>H<sub>2</sub>O is the scientific term for water.</p>
<blockquote cite="http://www.worldwildlife.org/who/index.html">
For 50 years, WWF has been protecting the future of nature. The world's leading conservation organization, WWF works in 100 countries and is supported by 1.2 million members in the United States and close to 5 million globally.
</blockquote>
<p>The <abbr
title="World Health Organization"> WHO</abbr> was founded in 1948.
</p>
<a href="default.html" title="Home">Back to Home</a>
<table>
<caption>Names</caption>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Points</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
</table>
<ul style="list-style-type:square;">
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
</body>
</html>

BIN
孙维宁学习笔记/10.29孙维宁学习笔记.docx

BIN
孙维宁学习笔记/10.31孙维宁学习笔记.docx

BIN
孙维宁学习笔记/11.1孙维宁学习笔记.docx

BIN
孙维宁学习笔记/孙维宁-Link软件相关功能学习笔记-10.27.docx

BIN
孙维宁学习笔记/孙维宁-夺宝奇兵AI预测大模型学习笔记-11.1.docx

BIN
孙维宁学习笔记/孙维宁-夺宝奇兵夺宝利剑+AI探牛学习笔记-10.31.docx

BIN
孙维宁学习笔记/孙维宁-夺宝奇兵超级云脑学习笔记补全版-10.30.docx

BIN
孙维宁学习笔记/孙维宁-夺宝奇兵超级云脑机构动向学习笔记-10.20.docx

BIN
孙维宁学习笔记/孙维宁-股票知识学习笔记-10.28.docx

BIN
尹顺宇10.31作业/尹顺宇10.31夺宝奇兵之AI金牛学习.docx

BIN
尹顺宇10.31作业/尹顺宇10.31学习总结.docx

560
尹顺宇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<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个进程
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f000c716e26b4ac385455546ca2556bb.png)
线程:Thread。一个进程中可以包含至少一个线程。所有线程共享进程的资源。线程是cpu可调度的最小单位
cpu:单核。一个核心。
多核。真正的并行。
web开发程序都是并行的,多线程。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ac0c637b29364252bc4fef75de588a71.png)
### 3.18 反射
反射:java的灵魂,在程序运行期间,在无法直接使用目标类的情况下,以一种间接的方式,去操作对象。
Reflect: 镜像。
常用类:
Class: 描述其他类,描述类的类
Field: 描述字段的类。描述成员属性
Method:描述成员方法的。
Constructor:描述构造函数的。
Parameter:描述方法的参数的。
Annotation:描述注解的。
获取Class类型实例三种方式:
Loading…
Cancel
Save