diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..f6906f2 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# 已忽略包含查询文件的默认文件夹 +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f8ef82c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/practiceGit.iml b/.idea/practiceGit.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/practiceGit.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file 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/.idea/workspace.xml b/.idea/workspace.xml index e2943b7..28a7876 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,8 +5,19 @@ - - + + + + + + + + + + + + + - { - "keyToString": { - "ModuleVcsDetector.initialDetectionPerformed": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", - "RunOnceActivity.git.unshallow": "true", - "RunOnceActivity.typescript.service.memoryLimit.init": "true", - "codeWithMe.voiceChat.enabledByDefault": "false", - "git-widget-placeholder": "wuyingzhao", - "ignore.virus.scanning.warn.message": "true", - "kotlin-language-version-configured": "true", - "last_opened_file_path": "C:/Users/Administrator/Desktop/practiceGit", - "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", - "settings.editor.selected.configurable": "preferences.language.and.region", - "vue.rearranger.settings.migration": "true" + +}]]> diff --git a/吴迎召学习笔记/wu.txt b/吴迎召学习笔记/wu.txt new file mode 100644 index 0000000..e69de29 diff --git a/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt new file mode 100644 index 0000000..1d7a9b1 --- /dev/null +++ b/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt @@ -0,0 +1,150 @@ +1. 核心定义与特点 +MySQL 是Oracle 公司维护的开源关系型数据库管理系统(RDBMS),基于标准 SQL 语言,是 Web 开发、企业级业务最主流的数据库。 +核心优势:开源免费、跨平台、性能优异、支持事务、高可用生态完善、社区活跃。 +主流版本: +5.7:企业广泛使用的稳定版,长期支持,兼容性好 +8.0:当前最新稳定版,性能大幅提升,新增窗口函数、CTE、原子 DDL、原生 JSON 支持,默认 InnoDB 引擎,默认字符集 utf8mb4,移除查询缓存。 +字段约束 +NOT NULL:非空约束,建议所有字段都设置,避免 NULL 值带来的性能问题 +UNIQUE:唯一约束,字段值唯一,允许 NULL +PRIMARY KEY:主键约束,非空 + 唯一,一张表仅一个 +DEFAULT:默认值,字段未赋值时的兜底值 +CHECK:检查约束,MySQL 8.0.16 + 正式支持,限制字段取值范围 +二、SQL 核心语法 +SQL 分为五大类:DDL(数据定义)、DML(数据操作)、DQL(数据查询)、DCL(数据控制)、TCL(事务控制) +1. DDL:操作库、表结构 +-- 创建数据库 +CREATE DATABASE IF NOT EXISTS test_db +DEFAULT CHARACTER SET utf8mb4 +DEFAULT COLLATE utf8mb4_general_ci; +-- 删除数据库 +DROP DATABASE IF EXISTS test_db; +-- 查看数据库创建语句 +SHOW CREATE DATABASE test_db; +-- 创建表(企业级规范示例) +CREATE TABLE IF NOT EXISTS `user` ( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `username` VARCHAR(50) NOT NULL COMMENT '用户名', + `phone` CHAR(11) NOT NULL COMMENT '手机号', + `age` TINYINT UNSIGNED DEFAULT 0 COMMENT '年龄', + `gender` ENUM('男','女','未知') DEFAULT '未知' COMMENT '性别', + `balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '账户余额', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), -- 主键索引 + UNIQUE KEY `uk_phone` (`phone`), -- 唯一索引 + KEY `idx_username` (`username`) -- 普通索引 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; +-- 修改表结构 +ALTER TABLE `user` ADD COLUMN `email` VARCHAR(100) NOT NULL COMMENT '邮箱' AFTER `phone`; -- 新增字段 +ALTER TABLE `user` MODIFY COLUMN `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄'; -- 修改字段属性 +ALTER TABLE `user` DROP COLUMN `email`; -- 删除字段 +ALTER TABLE `user` ADD INDEX `idx_create_time` (`create_time`); -- 新增索引 +ALTER TABLE `user` DROP INDEX `idx_create_time`; -- 删除索引 +-- 删除表 +DROP TABLE IF EXISTS `user`; +2. DML:增删改表数据 +-- 插入数据(批量插入性能远高于循环单条插入) +INSERT INTO `user` (username, phone, age, gender, balance) +VALUES +('张三', '13800138000', 25, '男', 1000.00), +('李四', '13800138001', 22, '女', 500.00); +-- 更新数据(必须加WHERE条件,否则全表更新!!!) +UPDATE `user` +SET balance = 1500.00, age = 26 +WHERE id = 1; +-- 删除数据(必须加WHERE条件,否则全表删除!!!) +DELETE FROM `user` WHERE id = 1; +-- 清空全表(比DELETE快,自增主键重置) +TRUNCATE TABLE `user`; +3. DQL:数据查询 +-- 语法书写顺序 +SELECT [DISTINCT] 字段列表 +FROM 表名 +[WHERE 条件过滤] +[GROUP BY 分组字段] +[HAVING 分组后过滤] +[ORDER BY 排序字段 ASC/DESC] +[LIMIT 分页偏移量, 条数]; +-- 实际执行顺序 +FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT +SELECT u.id, u.username, o.order_no, o.amount +FROM `user` u +INNER JOIN `order` o ON u.id = o.user_id; +-- 查询所有用户,含无订单的用户 +SELECT u.id, u.username, o.order_no, o.amount +FROM `user` u +LEFT JOIN `order` o ON u.id = o.user_id; + +-- 查询无订单的用户 +SELECT u.id, u.username +FROM `user` u +LEFT JOIN `order` o ON u.id = o.user_id +WHERE o.id IS NULL; +-- 创建用户(%允许远程登录,localhost仅本地登录) +CREATE USER 'test_user'@'%' IDENTIFIED BY 'Test@123456'; + +-- 授权(最小权限原则) +GRANT SELECT, INSERT ON test_db.* TO 'test_user'@'%'; -- 给test库授予查询、插入权限 +GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%' WITH GRANT OPTION; -- 管理员全权限 + +-- 刷新权限 +FLUSH PRIVILEGES; + +-- 查看权限 +SHOW GRANTS FOR 'test_user'@'%'; + +-- 撤销权限 +REVOKE INSERT ON test_db.* FROM 'test_user'@'%'; +-- 删除用户 +DROP USER 'test_user'@'%'; +五、事务与 ACID、MVCC +1. 事务四大特性(ACID) +事务是一组原子性的 SQL 操作,要么全成功,要么全失败回滚,仅 InnoDB 支持。 +表格 +特性 定义 实现原理 +原子性(Atomicity) 事务是最小执行单元,不可分割,要么全成要么全败 undo log(回滚日志),存储数据历史版本,回滚时恢复 +一致性(Consistency) 事务执行前后,数据的完整性约束不被破坏 事务的最终目的,由原子性、隔离性、持久性共同保证 +隔离性(Isolation) 并发事务之间相互隔离,互不干扰 锁机制 + MVCC 多版本并发控制 +持久性(Durability) 事务提交后,数据修改永久生效,崩溃也不丢失 redo log(重做日志),WAL 预写日志机制 +2. 事务并发问题与隔离级别 +并发问题 +脏读:一个事务读到了另一个事务未提交的数据 +不可重复读:同一事务内,两次读取同一行数据结果不一致(另一个事务修改并提交) +幻读:同一事务内,两次范围查询返回的行数不一致(另一个事务插入 / 删除并提交) +四大隔离级别 +表格 +隔离级别 脏读 不可重复读 幻读 说明 +读未提交(Read Uncommitted) 可能 可能 可能 最低级别,几乎不用 +读已提交(Read Committed) 解决 可能 可能 Oracle、SQL Server 默认 +可重复读(Repeatable Read) 解决 解决 可能(InnoDB 已解决) MySQL 默认级别 +串行化(Serializable) 解决 解决 解决 最高级别,事务串行执行,并发性能极差 +重点:InnoDB 的 RR 级别,通过 ** 临键锁(Next-Key Lock)** 彻底解决了幻读问题。 +3. MVCC 多版本并发控制 +MVCC 是 InnoDB 实现隔离级别的核心,通过数据行的多个版本实现读写不阻塞,大幅提升并发性能。 +核心实现:隐藏字段(DB_TRX_ID、DB_ROLL_PTR)+ undo log + Read View 读视图 +核心逻辑:事务开启时生成 Read View,判断当前事务能看到的数据版本,不同隔离级别 Read View 生成时机不同: +RC 级别:每次 SELECT 都生成新的 Read View,解决脏读 +RR 级别:第一次 SELECT 生成 Read View,后续复用,解决不可重复读 +六、MySQL 锁机制 +锁是实现事务隔离性的核心,解决并发修改数据的冲突问题。 +1. 锁的分类 +按粒度分类 +全局锁:锁住整个实例,所有读写阻塞,仅用于全库备份 +表级锁:锁住整张表,加锁快、冲突概率高、并发差,MyISAM 默认使用 +行级锁:InnoDB 特有,锁住具体行,锁粒度最小、冲突概率最低、并发性能最高 +注意:InnoDB 行锁是针对索引加的锁,查询没用到索引会升级为表锁! +按功能分类 +共享锁(S 锁,读锁):多个事务可同时加 S 锁,阻塞写操作,用法SELECT ... LOCK IN SHARE MODE; +排他锁(X 锁,写锁):一个事务加 X 锁后,其他事务不能加 S/X 锁,读写都阻塞。UPDATE/DELETE/INSERT 会自动加 X 锁,用法SELECT ... FOR UPDATE; +2. InnoDB 行锁 3 种算法(RR 级别) +记录锁:锁住具体的索引记录,如WHERE id=1,仅锁住 id=1 的行 +间隙锁:锁住索引之间的间隙,防止插入数据,解决幻读 +临键锁(Next-Key Lock):记录锁 + 间隙锁,左开右闭区间,InnoDB 默认行锁算法,彻底解决幻读 +3. 死锁 +产生条件:互斥、请求与保持、不剥夺、循环等待 +避免方案: +所有事务按相同顺序访问数据行 +大事务拆分为小事务,减少锁持有时间 +等值查询用唯一索引,避免间隙锁扩大范围 +避免无索引查询导致的表锁 \ No newline at end of file diff --git a/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt b/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt new file mode 100644 index 0000000..e4cc904 --- /dev/null +++ b/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt @@ -0,0 +1,57 @@ +学习内容:一、核心基础概念 +证券与股票 +证券是经济权益凭证,股票是上市公司发行的股份凭证,属于有价证券。 +证券市场三大功能 +筹资(企业募资、投资者投资)、定价(供求决定资本价格)、资本配置(引导资金流向高回报企业)。 +投资者分类 +分为机构投资者和个人投资者。 +二、股票核心特性 +股票具备风险性、收益性、流通性、波动性、永久性(不退股、可转让)。 +三、股价影响与分析方法 +影响股价因素 +核心是供求关系,还包括公司经营、宏观经济、政策、心理、人为操纵等。 +两大分析流派 +基本面分析:看宏观、行业、公司财务,判断价值。 +技术面分析:看历史走势,遵循市场包容一切、股价沿趋势运行、历史会重演三大公理。 +四、股票交易规则 +交易原则:价格优先、时间优先。 +核心规则 +交易时间:A 股 9:30-11:30、13:00-15:00,含集合竞价。 +交易单位:1 手 = 100 股,零股只能卖出。 +涨跌幅:普通股票单日 ±10%,新股首日除外。 +交收:A 股T+1(次日交割)。 +五、股票与市场分类 +股票类型 +A 股(人民币普通)、B 股(外币计价)、H 股(香港上市)、N/S/T 股(境外上市)。 +市场板块 +主板(大型企业)、中小板(中小盘)、创业板(成长型企业,风险高)、新三板(中小微企业转让平台)。 +六、核心业务与门槛 +融资融券:信用交易(杠杆),个人门槛账户资产≥50 万。 +沪港通:跨境炒股,个人门槛资产≥50 万。 +开户:一人最多可开20 个 A 股账户,本人持身份证、银行卡办理。 +七、交易费用 +主要包含印花税(卖出单边千一)、交易佣金、过户费。 +八、道氏理论(技术分析鼻祖) +市场存在长期(基本运动)、中期(次级运动)、短期(日常波动) 三大趋势,核心是趋势为王、成交量验证趋势、无反转信号则趋势延续。 +九、基础核心术语 +涵盖 K 线、多空、牛熊市、除权 / 除息、市盈率、建仓 / 平仓、套牢、反弹等常用交易名词。 +1. K 线 +记录股价一天涨跌的蜡烛图,红涨绿跌;由实体、上下影线组成,能看开盘 / 收盘 / 最高 / 最低价。 +2. 多空 +多头:看好股价会涨,先买后卖赚差价。 +空头:看跌股价,先借股卖出、跌了再买回还券。 +3. 牛熊市 +牛市:股价长期普遍上涨,多头占优。 +熊市:股价长期普遍下跌,空头占优。 +4. 除权 / 除息 +除息:公司发现金分红,股价扣除分红金额,新股东不再领这笔钱。 +除权:公司送股 / 配股,股本变大,股价按比例下调。 +5. 市盈率(PE) +股价 ÷ 每股盈利,用来衡量股价贵不贵;数值越低,相对越便宜。 +6. 建仓 / 平仓 +建仓:开始买入股票(做多)或卖出(做空)。 +平仓:把手里的持仓卖掉,结束这笔交易。 +7. 套牢 +买完股票就跌、卖完就涨,亏着舍不得卖,被 “套” 在里面。 +8. 反弹 +股价跌了一阵后,短期小幅回升,不是反转大涨。 \ No newline at end of file diff --git a/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt new file mode 100644 index 0000000..e7dcea7 --- /dev/null +++ b/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt @@ -0,0 +1,77 @@ +GO知识的学习 +Go 程序底层执行流程 +1. 编译器读取 .go 源码 +2. 检查语法错误(package main / main函数 必须存在) +3. 编译为机器码(CPU可直接执行) +4. 从 main() 函数第一行开始执行 +5. 逐行运行代码,执行完毕程序退出 +Go 开发核心注意事项 +可执行程序必须双件套 +只有 package main + func main() 才能运行,缺一不可 +禁止未使用的变量 / 导入包 +短变量 := 有严格限制 +只能在函数内部使用 +同一作用域不能重复声明同一个变量 +全局变量只能用 var,不能用 := +大小写决定访问权限 +大写字母开头:公共(对外可访问,对标 Java public) +小写字母开头:私有(仅包内可访问,对标 Java private) +项目与依赖 +必须用 Go Modules,别碰 GOPATH +所有项目必须执行:go mod init 项目名 +对标 Java 的 Maven/Gradle,管理依赖 +依赖自动清理 +依赖乱了、多了,执行:go mod tidy +自动删无用依赖、补全缺失依赖 +标准库优先,少用第三方包 +Go的转义字符 +\n 换行 输出后换行 +\t 制表符(Tab 空格对齐文本 +\\ 输出一个反斜杠 \ 打印路径 +\" 输出双引号 " 字符串里带引号 +\' 输出单引号 ' 字符里带单引号 +\r 回车(回到行首)\b退格(删除前一个字符) +Go 变量核心知识 +一、变量命名规则 +只能用:字母、数字、下划线 +首字符不能是数字 +区分大小写(name ≠ Name) +不能用 Go 关键字(如 var、func、package) +1. 标准声明(指定类型) +格式:var 变量名 类型 +var name string +var age int +var isOk bool +2. 类型推导(不写类型,Go 自动识别) +格式:var 变量名 = 值 +var name = "张三" // 自动推导为string +var age = 20 // 自动推导为int +var pi = 3.14 // 自动推导为float64 +3. 短变量声明 +格式:变量名 := 值 +func main() { + name := "李四" + age := 25 + fmt.Println(name, age) +} +4. 批量声明(一次声明多个) +// 方式1:var批量 +var a, b, c int +var x, y = 10, "hello" + +// 方式2:批量块(更整洁) +var ( + name string = "王五" + age int = 30 + isStudent bool +) +零值机制 +整型 (int) 0 +浮点型 (float64) 0.0 +字符串 (string) ""(空字符串) +布尔型 (bool) false +:= 只能在函数内用,全局变量禁止用 +变量 / 包定义了必须用,不用直接编译报错 +同一作用域不能重复声明同名变量 +大写开头 = 公共,小写开头 = 私有(和 Java 不同) +短变量 := 至少要声明一个新变量 \ No newline at end of file diff --git a/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt b/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt new file mode 100644 index 0000000..7e19185 --- /dev/null +++ b/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt @@ -0,0 +1,39 @@ +超级云脑 - 云脑探秘 功能 +超级云脑 - 云脑探秘是单只股票一站式量化分析工具,以股票检索为入口,从估值、风险、技术位、趋势、主力成本、市场情绪六大维度,提供可视化、通俗化的个股分析结论,帮普通投资者快速看懂个股核心情况。 +1. 股票精准检索(功能入口) +作为全功能的前置操作,支持两种检索方式: +按股票代码精确查找 +按股票名称模糊匹配 +输入后可快速锁定目标上市股票,一键调取该股票专属的全套分析数据,无需复杂筛选,直达标的。 +2. 股票估值(基础价值 + 行情层) +检索出具体股票后,展示两大核心信息: +当前股票估值 +基于市盈率、市净率等核心估值指标,呈现个股当前估值水位(高估 / 合理 / 低估),直观判断估值性价比。 +上一收盘日基础情况 +展示上一交易日关键盘口数据:收盘价、涨跌幅、成交量、成交额、换手率、流通股本等,快速掌握个股昨日收盘的交易活跃度与基础行情。 +3. 安全级别(六色罗盘风险评级) +以六色罗盘为可视化核心,做综合风险判定: +核心依据:结合支撑位有效性、压力位强度、股价所处位置、波动幅度、资金博弈数据 +输出内容:六色罗盘图形 + 明确风险分级(高 / 中 / 低风险、稳健级等) +作用:一眼看懂个股持仓安全等级,快速判断入场 / 持有的整体风险程度。 +4. 压力支撑(关键价位 + 操作指引) +聚焦股价关键攻防点位,提供清晰的阻力 / 支撑判断: +核心数据:精准测算并展示多周期关键价位 +支撑位:短期 / 中期 / 长期强支撑、弱支撑(下跌企稳价位) +压力位:短期 / 中期 / 长期强压力、弱压力(上涨受阻价位) +文字总结:结合当前股价与支撑 / 压力的相对位置,直白说明股价是受支撑企稳、承压回落、突破上攻还是跌破下行,明确多空阻力强弱。 +5. 趋势研判(K 线可视化 + 趋势定性) +从技术走势给出明确方向判断: +可视化展示:呈现个股日 K / 周 K 主流周期 K 线图,搭配均线等辅助指标,清晰呈现走势形态; +趋势总结:基于 K 线形态、量价关系、均线方向,给出确定性趋势结论(如多头上升、空头下跌、横盘震荡、趋势反转 / 延续),直接告知个股当前运行方向与趋势强弱。 +6. 庄家成本(筹码模型 + 主力成本分析) +聚焦主力资金行为,揭秘核心成本: +展示形式:以筹码分布模型可视化呈现,包含筹码峰、筹码集中度、获利盘 / 套牢盘占比等筹码结构数据; +核心分析:基于筹码模型精准算出庄家 / 主力核心成本价格区间,判断筹码密集区、筹码锁定程度与主力控盘力度,帮用户识别主力成本支撑,判断股价下行空间。 +7. 情绪价值(全维度综合总结) +对单只股票做一站式定性总结,整合所有分析维度: +总结内容:涵盖估值高低、风险等级、趋势方向、主力成本状态、市场多空情绪等核心要点; +呈现形式:简短通俗的文字陈述,不堆砌专业术语,直接给出个股整体投资价值与市场情绪导向,让用户快速把握个股全貌。 +整体功能逻辑 +检索股票 → 看估值与基础行情 → 判风险安全等级 → 找压力 / 支撑关键位 → 识股价运行趋势 → 算庄家主力成本 → 得综合情绪与价值结论 +全程可视化、结论化,把专业分析转化为普通投资者易懂的判断依据。 \ No newline at end of file diff --git a/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt new file mode 100644 index 0000000..9d07aa0 --- /dev/null +++ b/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt @@ -0,0 +1 @@ +111 \ No newline at end of file diff --git a/周新忠3.26/3.26/3.26周新忠.doc b/周新忠学习笔记/3.26/3.26周新忠.doc similarity index 100% rename from 周新忠3.26/3.26/3.26周新忠.doc rename to 周新忠学习笔记/3.26/3.26周新忠.doc diff --git a/周新忠3.26/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg b/周新忠学习笔记/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg similarity index 100% rename from 周新忠3.26/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg rename to 周新忠学习笔记/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg diff --git a/周新忠3.26/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg b/周新忠学习笔记/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg similarity index 100% rename from 周新忠3.26/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg rename to 周新忠学习笔记/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg diff --git a/周新忠3.26/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg b/周新忠学习笔记/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg similarity index 100% rename from 周新忠3.26/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg rename to 周新忠学习笔记/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg diff --git a/周新忠3.26/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg b/周新忠学习笔记/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg similarity index 100% rename from 周新忠3.26/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg rename to 周新忠学习笔记/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg diff --git a/周新忠3.26/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg b/周新忠学习笔记/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg similarity index 100% rename from 周新忠3.26/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg rename to 周新忠学习笔记/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg diff --git a/周新忠3.26/3.27/1.jpg b/周新忠学习笔记/3.27/1.jpg similarity index 100% rename from 周新忠3.26/3.27/1.jpg rename to 周新忠学习笔记/3.27/1.jpg diff --git a/周新忠3.26/3.27/2.jpg b/周新忠学习笔记/3.27/2.jpg similarity index 100% rename from 周新忠3.26/3.27/2.jpg rename to 周新忠学习笔记/3.27/2.jpg diff --git a/周新忠3.26/3.27/3.27周新忠.md b/周新忠学习笔记/3.27/3.27周新忠.md similarity index 100% rename from 周新忠3.26/3.27/3.27周新忠.md rename to 周新忠学习笔记/3.27/3.27周新忠.md diff --git a/周新忠3.26/3.27/3.jpg b/周新忠学习笔记/3.27/3.jpg similarity index 100% rename from 周新忠3.26/3.27/3.jpg rename to 周新忠学习笔记/3.27/3.jpg diff --git a/周新忠3.26/3.27/4.jpg b/周新忠学习笔记/3.27/4.jpg similarity index 100% rename from 周新忠3.26/3.27/4.jpg rename to 周新忠学习笔记/3.27/4.jpg diff --git a/周新忠学习笔记/3.28/1.jpg b/周新忠学习笔记/3.28/1.jpg new file mode 100644 index 0000000..17112ef Binary files /dev/null and b/周新忠学习笔记/3.28/1.jpg differ diff --git a/周新忠学习笔记/3.28/2.jpg b/周新忠学习笔记/3.28/2.jpg new file mode 100644 index 0000000..d30a27c Binary files /dev/null and b/周新忠学习笔记/3.28/2.jpg differ diff --git a/周新忠学习笔记/3.28/3.28.md b/周新忠学习笔记/3.28/3.28.md new file mode 100644 index 0000000..7c759b6 --- /dev/null +++ b/周新忠学习笔记/3.28/3.28.md @@ -0,0 +1,180 @@ +\# 技术相关: + +\### 获取请求参数剩余部分: + +用map提取参数: .GetQueryMap() .GetQueryMapStrStr .GetQueryMapStrVar + +取Form格式请求体参数: .GetForm()/.GetFormMap() + +获取Restful风格路由参数: GetRouter/GetRouterMap + +一次性取出各类参数: + +Get()=GetRequestMap() + +GetStruct()=GetRequestStruct() (规范路由默认调用) + + + +\### 标签: + +\#### meta标签: + +method: 请求方式(all/get/post...) + +path: 路径 + +sm: 总结 + +tags: 分组标签 + +\#### 普通字段标签: + +dc: 描述 + +p/params: 请求key + +m/orm: 数据库字段名 + +default: 默认值 + +v/vaild: 校验规则 + +ad: 补充说明 + +eg: 示例值 + + + +\### Dao部分 + +\####查询: + +\#####Select + +g.Model("table").One() 查询单条数据 + +g.Model("table").All() 查询全部数据 + +g.Model("table").Feilds()指定字段 + +g.Model("table").FeildsEx()排除字段 + +g.Model("table").Value()查询某一格的内容 + +g.Model("table").Array()查询整列 + +g.Model("table").LockUpdate()申请行级锁 + +\#####聚合函数 + +Count() Sum() Min() Max() Avg() + +\####条件: + +Where() + +WhereLT + +WhereGT + +WhereLTE + +WhereGTE + +WhereIn + +WhereBetween + +WhereNot + +WhereOr.......... + + + +\####排序 + +Order("feild","asc/desc") + +\####分组 + +Group() + +\####分页 + +Limit(origin,offset) + +Page(pageNum,pageCapcity) + +\####扫描为结构体 + +Scan(\&struct) + +\####插入 + +model.Insert()或model.Data().Insert() + +model.Replace() 删除或插入 + +model.Save()更新或插入 + +model.InsertAndGetId()插入并获取自增id + +\####更新 + +Update() + +Increment() + +Decrement() + +\####删除 + +Delete() + +\####时间字段 + +create\_at delete\_at update\_at 增删改时框架自动更新这些字段 + +delete\_at 会被作为逻辑删除的依据 + +\####事务 + +1\.手动管理事务 + +tx,err:=g.DB(),Begin(req.Context())开启事务 + +tx.Rollback()回滚 + +tx.Commit()提交 + +2\.靠抛出error管理的事务 + +err:=g.DB().Transaction(context.TODO(),func(ctx context.Context,tx gbd.Tx)error{}) + + + +\#股票相关: + + + +道氏理论观点: + +平均价格包容消化一切 + +市场同时存在三种趋势(基本运动,次级运动,日常运动) + +大趋势有三个阶段 + +平均价格互相验证 + +成交量验证趋势 + +确切的反转信号判定终结 + +操作口诀:先大后小,先长后短,做熟不做生 + + + + + diff --git a/周新忠学习笔记/3.28/3.jpg b/周新忠学习笔记/3.28/3.jpg new file mode 100644 index 0000000..ab9bfd7 Binary files /dev/null and b/周新忠学习笔记/3.28/3.jpg differ diff --git a/周新忠学习笔记/3.28/4.jpg b/周新忠学习笔记/3.28/4.jpg new file mode 100644 index 0000000..e4ff07a Binary files /dev/null and b/周新忠学习笔记/3.28/4.jpg differ diff --git a/周新忠学习笔记/3.28/5.jpg b/周新忠学习笔记/3.28/5.jpg new file mode 100644 index 0000000..cda6238 Binary files /dev/null and b/周新忠学习笔记/3.28/5.jpg differ diff --git a/周新忠学习笔记/3.28/6.jpg b/周新忠学习笔记/3.28/6.jpg new file mode 100644 index 0000000..f60dfe6 Binary files /dev/null and b/周新忠学习笔记/3.28/6.jpg differ diff --git a/周新忠学习笔记/3.28/7.jpg b/周新忠学习笔记/3.28/7.jpg new file mode 100644 index 0000000..4621d5d Binary files /dev/null and b/周新忠学习笔记/3.28/7.jpg differ diff --git a/周新忠学习笔记/3.30/1.jpg b/周新忠学习笔记/3.30/1.jpg new file mode 100644 index 0000000..4ad5fbe Binary files /dev/null and b/周新忠学习笔记/3.30/1.jpg differ diff --git a/周新忠学习笔记/3.30/2.jpg b/周新忠学习笔记/3.30/2.jpg new file mode 100644 index 0000000..de7837d Binary files /dev/null and b/周新忠学习笔记/3.30/2.jpg differ diff --git a/周新忠学习笔记/3.30/3.jpg b/周新忠学习笔记/3.30/3.jpg new file mode 100644 index 0000000..3b0ba74 Binary files /dev/null and b/周新忠学习笔记/3.30/3.jpg differ diff --git a/周新忠学习笔记/3.30/4.jpg b/周新忠学习笔记/3.30/4.jpg new file mode 100644 index 0000000..60a1c23 Binary files /dev/null and b/周新忠学习笔记/3.30/4.jpg differ diff --git a/周新忠学习笔记/3.30/5.jpg b/周新忠学习笔记/3.30/5.jpg new file mode 100644 index 0000000..fd95c45 Binary files /dev/null and b/周新忠学习笔记/3.30/5.jpg differ diff --git a/周新忠学习笔记/3.30/6.jpg b/周新忠学习笔记/3.30/6.jpg new file mode 100644 index 0000000..7d3c76a Binary files /dev/null and b/周新忠学习笔记/3.30/6.jpg differ diff --git a/周新忠学习笔记/3.30/周新忠3.30笔记.md b/周新忠学习笔记/3.30/周新忠3.30笔记.md new file mode 100644 index 0000000..ccc15ad --- /dev/null +++ b/周新忠学习笔记/3.30/周新忠3.30笔记.md @@ -0,0 +1,145 @@ +# 技术部分 +### 手动编写SQL的方法: +g.DB().Query(ctx,sql,g.Array{}) //查询sql +g.DB().Exec(ctx,sql,g.Array{}) //修改的sql +### Dao代码生成 +config 中需要配置: +gfcli: + gen: + dao: + link: + tables: +执行gf gen dao命令 //即逆向工程 +或直接执行gf gen dao -l "link" -t "tables" 可不用改配置 + +生成代码: +entity包 数据库表对应结构体 +do包 经过包装的结构体,与entity区别是普通字段类型为interface{}而不是基本类型,可用来区分空值和空指针 +dao包 直接隶属dao包的go文件写自定义业务代码,隶属于internal包的go文件用来存储框架预设代码(再次执行gen命令会被覆盖) + +### 级联查询 +#### 一对一关系 +结构体中添加字段: Struct *Struct `orm:"with:id=s_id"` //标签指定关联规则 +查询时使用model.With(entity.Struct{})设置级联的表 + +#### 一对多关系 +结构体中添加字段: Structs []*Struct `orm:"with:id=s_id"` //标签指定关联规则 + +#### 多级级联 +直接在With()中添加多个结构体就行 + +### Service和Logic层 + +根据logic包生成service接口:gf gen service + +#### service +组成部分: +接口 +type IExample interface{ //命名以I开头 +定义业务函数 +} + +定义接口变量 +var localExample() IExample //私有化防止外部修改 + +定义获取接口方法 +func Example () IExample{ +if localExample==nil{ +panic(".....") +} +return localExample +} + +定义注册方法 +func RegisterExample(i IExample){ +localExample=i //用接口实现给接口变量赋值 +} + +#### Logic层 +定义结构体 +type sExample struct{} //以s开头命名 + +初始化方法中注册 +func init(){ +service.RegisterExample(&sExample{}) +} + +实现service的接口中的业务方法 + +#### 初始化接口 +在logic.go中统一import logic,然后再在main.go 中import一次logic.go 实现单例初始化服务接口 + +### 模板输出 +1. req.Response.Writef() //其实就是write套了层Sprintf +2. req.Response.WriteTplContent(string,g.Map{}) //此法是在string中预留{{}}占位符,用g.Map中的value替换占位符 +3. req.Response.WriteTpl(path string, g.Map{}) //此法与上一个区别是第一个参数是HTML文件路径,在文件路径中可以预留占位符进行替换,形式类似于JSP或Thymeleaf +4. 模板中的流程控制语句: + 条件判断 + {{if [compare] variable1 variable2}} + {{else}} + {{end}} + 循环遍历切片 + {{range.slice}} + {{end}} + 循环遍历map + {{range $key,$value := .map}} + {{end}} + +### 文件上传 + file:=req.GetUploadFile("name") + 规范路由写法: + 属性: File *ghttp.UploadFile `p:"name"` + 全局配置文件大小限制: + config文件中 + server: + clientMaxBodySize: "" + + 局部配置文件大小限制: + 标签:v:"max-size: xxx MB" + +### 文件下载 +req.Response.ServerFile("/path") // 图片会显示在前端而不主动下载 +req.Response.ServerFileDownload("/path","name") //无论是不是图片都会立刻开始下载 + +### Cookie和Session +req.Cookie.Set("key","value") +req.Cookie.SetCookie// 有多项设置,自由度较高 +req.Cookie.Remove("key") //移除cookie +req.Session.Set("key","value") +req.Session.Remove("key") + +### 时间工具 +gtime.Now() Date() DateTime() New() Format() TimeStamp().... + +### 随机工具 +grand.Intn() grand.N() grand.S() grand.Letters()..... + +### 中间件 +固定签名格式: +func 函数名 (r *ghttp.Request){ +前置中间件业务逻辑 +r.Middleware.Next() +后置中间件业务逻辑 +} +挂载方法: +1.全局中间件 2.分组路由中间件 + + + +# 业务部分 + +## 超级云脑-云脑探秘 功能总结 + +首先是可以根据股票代码或名称搜索股票 +#### 股票估值 +搜索出具体的股票后,显示当前股票估值和上一收盘日的基本情况 +#### 安全级别 +显示六色罗盘,分析支撑和压力情况,据此显示风险分级 +#### 压力支撑 +显示支撑位和压力位,根据支撑压力数据显示简短的总结 +#### 趋势研判 +显示K线图,并总结趋势 +#### 庄家成本 +显示筹码模型,根据筹码模型分析陈本价格 +#### 情绪价值 +对该支股票进行简短的总结陈述 diff --git a/李柏霖学习笔记/.idea/.gitignore b/李柏霖学习笔记/.idea/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/.idea/misc.xml b/李柏霖学习笔记/.idea/misc.xml new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/.idea/modules.xml b/李柏霖学习笔记/.idea/modules.xml new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/.idea/vcs.xml b/李柏霖学习笔记/.idea/vcs.xml new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/2026.3.28.md b/李柏霖学习笔记/2026.3.28.md new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/3.30.md b/李柏霖学习笔记/3.30.md new file mode 100644 index 0000000..25213e5 --- /dev/null +++ b/李柏霖学习笔记/3.30.md @@ -0,0 +1,206 @@ +# go语言 + +## 执行流程 + +![](images/QQ20260330-143952.png) + +Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错 + +## 转义字符 + +\t:制表符 + +\n:换行 + +**\\"**:一个" + +\r:回车 + +fmt包提供格式化,输出,输入函数。 + +## 基本语法 + +使用gofmt进行格式化 + +**(1)** + +所有的Go文件以package 开头,对于独立运行的执行文件必须是package main; + +fmt.Printf("Hello, world; or 世界") 这是说需要将fmt包加入main。不是main的其他包都被称为库,其他许多编程语言有 着类似的概念。 + + package main 必须首先出现,紧跟着是import。 + +在 Go 中,package 总是首先出现, 然后是import,然后是其他所有内容。当Go程序在执行的时候,首先调用的函数 是main.main(),这是从C中继承而来。这里定义了这个函数; + +Go 同其他语言不同的地方在于变量的类型在变量名的后面。不是:int a,而是a int。 当定义了一个变量,它默认赋值为其类型的null值。这意味着,在var a int后,a的 值为0。而var s string,意味着s被赋值为零长度字符串,也就是""。 + +**(2)** + +var a int + +var b bool + +a = 15 + +b = false + +------ + +用:= 声明 + +a := 15 + + b := false + +在左边使用了关键字var声明变量,然后赋值给它。右边的代码使用了:= 使得在一 步内完成了声明和赋值(这一形式只可用在函数内)。在这种情况下,变量的类型是由 值推演出来的。值15表示是int类型,值false告诉Go它的类型应当是bool。多 个var声明可以成组;const和import同样允许这么做。留意圆括号的使用: var ( x int b + +### Go 语言的字符串连接可以通过 **+** 实现: + +```go +package main +import "fmt" +func main() { + fmt.Println("Google" + "Runoob") +} +``` + +``` +GoogleRunoob +``` + +Go 语言中使用 **fmt.Sprintf** 或 **fmt.Printf** 格式化字符串并赋值给新串: + +- **Sprintf** 根据格式化参数生成格式化的字符串并返回该字符串。 +- **Printf** 根据格式化参数生成格式化的字符串并写入标准输出。 + +| **概念** | **Java 对应** | **Go 派生类型** | +| -------------- | ---------------- | ------------------------ | +| **对象属性** | Class (Fields) | **Struct** | +| **动态列表** | ArrayList | **Slice** | +| **键值对** | HashMap | **Map** | +| **抽象定义** | Interface | **Interface** (隐式实现) | +| **内存操作** | 引用 (Reference) | **Pointer** (显式指针) | +| **多线程通信** | BlockingQueue | **Channel** | + +声明变量的一般形式是使用 var 关键字: + +```go +var identifier type +``` + +可以一次声明多个变量: + +```go +var identifier1, identifier2 type +``` + +### 变量声明 + +**第一种,指定变量类型,如果没有初始化,则变量默认为零值**。 + +``` +var v_name v_type +v_name = value +``` + +bool 零值为 false + +没有初始化就为零值 + +**第二种,根据值自行判定变量类型。** + +``` +var v_name = value +``` + +**第三种,如果变量已经使用 var 声明过了,再使用 \**:=\** 声明变量,就产生编译错误,格式:** + +``` +v_name := value +``` + +例如: + +``` +var intVal int +intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明 +``` + +直接使用下面的语句即可: + +``` +intVal := 1 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句 +``` + +**intVal := 1** 相等于: + +``` +var intVal int +intVal =1 +``` + +``` +//类型相同多个变量, 非全局变量 +var vname1, vname2, vname3 type +vname1, vname2, vname3 = v1, v2, v3 +``` + +**所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值:** + +可以通过 &i 来获取变量 i 的内存地址 + +一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置。 + +![img](https://www.runoob.com/wp-content/uploads/2015/06/4.4.2_fig4.3.jpg) + +这个内存地址称之为指针,这个指针实际上也被存在另外的某一个值中。 + +变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。 + +### go的常量 + +- 显式类型定义: `const b string = "abc"` +- 隐式类型定义: `const b = "abc"` + +#### iota,特殊常量,可以认为是一个可以被编译器修改的常量。 + +iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。 + +iota 可以被用作枚举值 + +**`iota` 只能读,不能写**:永远不要写 `iota = x` 或 `iota += 1`,这是 Go 语法严格禁止的。 + +**`const` 块内类型一致**:同一组 `const` 里,要么全是数字,要么全是字符串,不能混用。 + +Go 语言支持的位运算符如下表所示。假定 A 为60,B 为13: + +| 运算符 | 描述 | 实例 | +| :----- | :----------------------------------------------------------- | :------------------------------------- | +| & | 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。 | (A & B) 结果为 12, 二进制为 0000 1100 | +| \| | 按位或运算符"\|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或 | (A \| B) 结果为 61, 二进制为 0011 1101 | +| ^ | 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 | (A ^ B) 结果为 49, 二进制为 0011 0001 | +| << | 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | A << 2 结果为 240 ,二进制为 1111 0000 | +| >> | 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。 | A >> 2 结果为 15 ,二进制为 0000 1111 | + +# 夺宝奇兵之时空预测: + +AI时空共振: + +股价不可能一直涨或者跌,时间决定了一切,空间决定了你的收益到底有多大 + +AI时空共振功能 +• 追踪股价运行背后的超级临界点,预判转折位置。 +• 适用于所有股票,结合时间和空间分析。 +• 以英伟达为例展示功能,识别连续上涨后的临界点。 + +未来预测技术 +• 包含股价预测和时空预测两大内容。 +• 提前标注变盘点,如距离下个变盘点5或13个交易日。 +• 通过案例验证预测准确性,如高低点与实际走势吻合。 +• 结合高阶数据科学与AI技术,逐步完善预测模型。 + +高低点规律总结 +• 高点提前易暴跌,低点提前易暴涨。 +• 高点延后易续涨,低点延后易续跌。 +• 牛市中低点易提前,高点易延后。 +• 熊市中高点易提前,低点易延后。 \ No newline at end of file diff --git a/李柏霖学习笔记/images/021099bd151272c630107ed552ab7af2.png b/李柏霖学习笔记/images/021099bd151272c630107ed552ab7af2.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/images/QQ20260330-143952.png b/李柏霖学习笔记/images/QQ20260330-143952.png new file mode 100644 index 0000000..fa2a0fb Binary files /dev/null and b/李柏霖学习笔记/images/QQ20260330-143952.png differ diff --git a/李柏霖学习笔记/images/image-20260328093542705.png b/李柏霖学习笔记/images/image-20260328093542705.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/images/image-20260328093613551.png b/李柏霖学习笔记/images/image-20260328093613551.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/images/image-20260328112106933.png b/李柏霖学习笔记/images/image-20260328112106933.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/images/image-20260328135132711.png b/李柏霖学习笔记/images/image-20260328135132711.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/images/image-20260328135416809.png b/李柏霖学习笔记/images/image-20260328135416809.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/021099bd151272c630107ed552ab7af2.png b/李柏霖学习笔记/imges/021099bd151272c630107ed552ab7af2.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/image-20260328093542705.png b/李柏霖学习笔记/imges/image-20260328093542705.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/image-20260328093613551.png b/李柏霖学习笔记/imges/image-20260328093613551.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/image-20260328112106933.png b/李柏霖学习笔记/imges/image-20260328112106933.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/image-20260328135132711.png b/李柏霖学习笔记/imges/image-20260328135132711.png new file mode 100644 index 0000000..e69de29 diff --git a/李柏霖学习笔记/imges/image-20260328135416809.png b/李柏霖学习笔记/imges/image-20260328135416809.png new file mode 100644 index 0000000..e69de29