2 Commits
655ab9134a
...
5f45833880
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
5f45833880 |
Merge branch 'wuyingzhao' into milestone-20260325-学习笔记
|
2 weeks ago |
|
|
ef0afa3d81 |
4.3
|
2 weeks ago |
2 changed files with 238 additions and 0 deletions
@ -0,0 +1,142 @@ |
|||
Java 核心知识点详细总结 |
|||
一、Java 基础 |
|||
1. 核心特性 |
|||
跨平台原理:JVM屏蔽不同操作系统指令集差异,对外提供统一 Java API,实现跨平台运行。 |
|||
数据类型:8 种基本数据类型,int 固定4 字节,long 需加L;包装类(Integer/Byte 等)支持 **-128~127 缓存机制 **。 |
|||
字符串核心: |
|||
String:final 修饰不可变,底层private final char[],无修改方法; |
|||
StringBuilder:线程不安全、效率最高,适合频繁拼接; |
|||
StringBuffer:线程安全(synchronized)、效率低。 |
|||
面向对象:四大特征封装、抽象、继承、多态;重载(同一类、方法名同参数不同)、重写(子类遵循两同两小一大规则)。 |
|||
2. 核心机制 |
|||
传递方式:Java 仅值传递,基本类型传数值,引用类型传内存地址。 |
|||
反射:运行时获取类信息 / 调用方法,获取 Class 对象 3 种方式:getClass()、类.class、Class.forName()。 |
|||
序列化:transient关键字修饰字段不参与序列化。 |
|||
二、集合框架 |
|||
1. 核心接口与工具 |
|||
Collection:单值集合父接口;Collections:集合工具类,提供排序、查找等静态方法。 |
|||
2. 常用集合对比 |
|||
表格 |
|||
集合类型 底层结构 线程安全 核心特性 |
|||
ArrayList 数组 否 查询快、增删慢,默认容量10,扩容1.5 倍 |
|||
LinkedList 双向链表 否 增删快、查询慢 |
|||
Vector 数组 是 效率低,扩容2 倍 |
|||
HashMap 数组 + 链表 + 红黑树 否 默认容量16,加载因子0.75 |
|||
ConcurrentHashMap 1.8:Node+CAS+synchronized 是 高并发,桶级锁替代分段锁 |
|||
3. 核心规则 |
|||
HashSet 判重:hashCode()+equals() 双重判断; |
|||
HashMap 树化:链表长度 **>8且数组容量≥64**;退化:树节点≤6。 |
|||
三、JUC 并发编程 |
|||
1. 线程基础 |
|||
创建方式:继承 Thread、实现 Runnable/Callable、线程池;Callable支持返回值、抛出异常。 |
|||
线程状态:新建→可运行→运行→阻塞→死亡。 |
|||
2. 同步机制 |
|||
synchronized:JVM 层面锁,自动释放,可重入非公平; |
|||
ReentrantLock:API 层面锁,手动释放,可判断锁状态; |
|||
volatile:保证可见性、禁止指令重排,不保证原子性; |
|||
CAS:比较并交换,硬件级原子操作,存在ABA 问题(用AtomicStampedReference解决)。 |
|||
3. 线程池 |
|||
核心参数:corePoolSize(核心线程)、maximumPoolSize(最大线程)、keepAliveTime(空闲超时)、workQueue(任务队列)、threadFactory(线程工厂)、handler(拒绝策略); |
|||
执行流程:核心线程→队列→非核心线程→拒绝策略; |
|||
规范:手动创建ThreadPoolExecutor,避免Executors导致 OOM。 |
|||
4. 其他核心 |
|||
ThreadLocal:线程隔离,底层ThreadLocalMap,key 为弱引用; |
|||
死锁:四大条件(互斥、请求保持、不剥夺、环路等待),打破任一条件即可预防。 |
|||
四、Java Web |
|||
1. HTTP 请求 |
|||
GET/POST:GET 传参在 URL、长度受限、不安全;POST 传参在请求体、无长度限制、安全。 |
|||
2. Servlet |
|||
生命周期:加载→实例化→init()→service()→destroy(); |
|||
转发 / 重定向:转发(服务器端、一次请求、地址不变);重定向(客户端、两次请求、地址变更)。 |
|||
3. 会话机制 |
|||
Cookie:客户端存储,不安全,单条≤4K; |
|||
Session:服务器存储,安全,依赖 Cookie 传递 sessionId; |
|||
JWT:无状态 Token,适合分布式、移动端。 |
|||
五、数据库 |
|||
1. 基础知识点 |
|||
存储引擎:InnoDB(支持事务、行锁)、MyISAM(无事务、表锁); |
|||
三范式:1NF(原子性)、2NF(唯一性)、3NF(消除传递依赖); |
|||
聚合函数:sum()、avg()、max()、min()、count()。 |
|||
2. SQL 核心 |
|||
PreparedStatement:预编译,有效防止 SQL 注入; |
|||
执行顺序:from→where→group by→having→select→order by。 |
|||
六、索引与事务 |
|||
1. 索引 |
|||
数据结构:B + 树(MySQL 默认),非叶子节点存 key,叶子节点存数据 + 双向链表; |
|||
分类:聚簇索引(主键,存完整数据)、非聚簇索引(二级索引,存主键)、覆盖索引(无需回表); |
|||
失效场景:索引列运算、%开头 like、or、!=、is null。 |
|||
2. 事务 |
|||
ACID:原子性、一致性、隔离性、持久性; |
|||
隔离级别:读未提交→读已提交(Oracle 默认)→可重复读(MySQL 默认)→串行化; |
|||
并发问题:脏读、不可重复读、幻读。 |
|||
七、主流框架 |
|||
1. Spring |
|||
IOC:控制反转,对象创建交给容器;DI:依赖注入,自动装配依赖; |
|||
AOP:动态代理(JDK 代理 / CGLIB),通知类型:前置、后置、环绕、异常、最终; |
|||
事务失效 |
|||
事务失效:异常捕获、抛出检查异常、非 public 方法、内部调用。 |
|||
2. SpringBoot |
|||
自动配置:@SpringBootApplication整合配置、扫描、自动装配三大能力。 |
|||
3. MyBatis |
|||
#{} / ${}:#{} 预编译防注入,${}字符串拼接不防注入; |
|||
缓存:一级缓存(SqlSession 级,默认开启)、二级缓存(Mapper 级,手动开启)。 |
|||
八、设计模式 |
|||
1. 六大原则 |
|||
开闭原则、里氏代换、依赖倒转、单一职责、接口隔离、迪米特法则。 |
|||
2. 常用模式 |
|||
单例模式:饿汉式(线程安全)、懒汉式(双重检查 + volatile)、枚举式(防反射 / 反序列化); |
|||
代理模式:静态代理、JDK 动态代理(基于接口)、CGLIB 代理(基于子类)。 |
|||
九、JVM |
|||
1. 类加载 |
|||
过程:加载→验证→准备→解析→初始化; |
|||
双亲委派:自定义→应用→扩展→启动类加载器,避免类重复加载。 |
|||
2. 运行时数据区 |
|||
线程私有:程序计数器、虚拟机栈、本地方法栈; |
|||
线程共享:堆、方法区(JDK8 后为元空间)。 |
|||
3. 垃圾回收 |
|||
GC 算法:标记 - 清除、复制(新生代)、标记 - 整理(老年代)、分代收集; |
|||
垃圾收集器:G1(JDK9 默认,区域分代,低延迟); |
|||
内存溢出:堆内存不足,内存泄漏(单例、资源未关闭)。 |
|||
十、Redis |
|||
1. 核心特性 |
|||
数据类型:String、Hash、List、Set、ZSet; |
|||
持久化:RDB(快照,恢复快)、AOF(日志,数据安全); |
|||
淘汰策略:推荐allkeys-lru(淘汰最近最少使用数据)。 |
|||
2. 缓存问题 & 解决方案 |
|||
表格 |
|||
缓存问题 核心原因 解决方案 |
|||
缓存穿透 查询不存在的数据 缓存空值、布隆过滤器 |
|||
缓存击穿 单个热点 key 过期 互斥锁、逻辑过期 |
|||
缓存雪崩 大量 key 同时过期 / Redis 宕机 随机过期、集群、多级缓存 |
|||
3. 分布式锁 |
|||
核心命令:SET lock value NX EX 超时时间,Redisson 解决锁续期 + 重试。 |
|||
十一、消息中间件 |
|||
核心作用:解耦、异步、削峰填谷; |
|||
RabbitMQ:confirm 机制(生产者)、持久化(服务端)、手动 ACK(消费者)保证消息不丢失;幂等性解决重复消费。 |
|||
十二、微服务 |
|||
SpringCloud:提供服务注册发现、配置中心、网关、负载均衡、熔断降级; |
|||
Dubbo:阿里高性能 RPC 微服务框架。 |
|||
十三、计算机网络 |
|||
TCP:三次握手(建立连接)、四次挥手(关闭连接),可靠传输基于校验、重传、流量 / 拥塞控制; |
|||
跨域:违反同源策略,解决方案:CORS、Nginx 代理、JSONP。 |
|||
十四、数据结构 |
|||
递归:爬楼梯问题遵循斐波那契规律,f(n)=f(n-1)+f(n-2)。 |
|||
4. 关键问题 |
|||
问题 1:JDK1.8 中 HashMap 的底层原理、树化条件及线程安全方案? |
|||
答案: |
|||
底层原理:采用数组 + 链表 + 红黑树结构,通过 hash (key) 计算数组下标,哈希冲突用链表存储;默认容量16,加载因子0.75,扩容为原容量 2 倍。 |
|||
树化条件:链表长度超过 8,且数组容量 **≥64** 时转为红黑树;树节点数≤6 时退化为链表。 |
|||
线程安全方案:使用ConcurrentHashMap,JDK1.8 通过CAS+synchronized实现桶级锁,替代分段锁,并发性能大幅提升。 |
|||
问题 2:Redis 缓存穿透、击穿、雪崩的核心区别与解决方案? |
|||
答案: |
|||
核心区别:缓存穿透是查询不存在的数据,缓存击穿是单个热点 key 过期,缓存雪崩是大量 key 同时过期 / Redis 宕机。 |
|||
解决方案: |
|||
穿透:缓存空对象、布隆过滤器、参数合法性校验; |
|||
击穿:互斥锁重建缓存、热点 key 设置逻辑过期; |
|||
雪崩:key 过期时间加随机值、Redis 集群部署、多级缓存、限流降级。 |
|||
问题 3:Spring 事务失效的常见场景及解决方法? |
|||
答案: |
|||
异常捕获未抛出:try-catch 捕获异常后未抛出,事务不回滚;解决:catch 块抛出RuntimeException。 |
|||
抛出检查异常:Spring 默认仅回滚非检查异常;解决:@Transactional(rollbackFor = Exception.class)。 |
|||
非 public 方法:AOP 仅代理 public 方法;解决:将方法改为 public。 |
|||
同类内部调用:未经过代理对象,事务失效;解决:引入自身代理对象调用方法。 |
|||
@ -0,0 +1,96 @@ |
|||
股票基础知识详细总结 |
|||
一、证券基础核心 |
|||
1. 证券与证券市场 |
|||
证券:经济权益凭证统称,核心为有价证券; |
|||
证券市场三大功能: |
|||
筹资功能:为资金短缺者筹资,为盈余者提供投资对象; |
|||
定价功能:由供求关系决定证券(资本)价格; |
|||
资本配置功能:引导资本流向高报酬率企业,实现合理配置。 |
|||
投资者分类:机构投资者、个人投资者(分散性、流动性)。 |
|||
2. 证券市场发展历程 |
|||
萌芽阶段:1602 年荷兰东印度公司,1611 年阿姆斯特丹交易所(全球首个); |
|||
初步发展:股份公司数量激增,资本高度集中; |
|||
停滞阶段:1929-1933 年经济大危机; |
|||
恢复阶段:二战后 - 20 世纪 60 年代; |
|||
加速发展阶段:20 世纪 70 年代。 |
|||
二、股票核心知识 |
|||
1. 股票定义与特性 |
|||
定义:上市公司为筹资发行的有价证券,是股东持股凭证; |
|||
五大特性: |
|||
风险性:高风险,收益不确定; |
|||
收益性:最基本特征,来源为公司分红 + 二级市场差价; |
|||
流通性:可自由交易,判断维度:市场深度、报价紧密度、价格弹性; |
|||
波动性:股价随市场实时波动; |
|||
永久性:不可退股,只能二级市场转让,期限与公司存续一致。 |
|||
2. 股票价格影响因素 |
|||
核心因素:供求关系(供小于求涨价,供大于求降价); |
|||
其他因素:公司经营状况、宏观经济、政治政策、市场操纵、投资者心理。 |
|||
3. 股票分析方法 |
|||
表格 |
|||
分析流派 核心逻辑 适用人群 |
|||
基本面分析 价值决定价格,分析宏观 / 行业 / 公司财务 长期价值投资者 |
|||
技术面分析 供求决定价格,依据历史走势判未来 个人短期投资者 |
|||
技术分析三大公理: |
|||
市场行为包容消化一切; |
|||
股价以趋势运行(上升 / 下降 / 横盘); |
|||
历史会重演,但非简单重复。 |
|||
三、股票交易核心规则 |
|||
1. 交易原则 |
|||
价格优先:高价买入、低价卖出优先成交; |
|||
时间优先:同价位,先申报者优先成交。 |
|||
2. 交易时间(A 股) |
|||
常规交易:周一至周五9:30-11:30、13:00-15:00(每日 4 小时); |
|||
集合竞价:9:15-9:20(可撤单)、9:20-9:25(不可撤单)、14:57-15:00(收盘竞价)。 |
|||
3. 交易单位与涨跌幅 |
|||
交易单位:100 股 = 1 手,买入需为 1 手整数倍,零股仅可卖出; |
|||
涨跌幅限制:常规股票 **±10%**,ST 股票 ±5%,上市首日无限制。 |
|||
四、市场与股票分类 |
|||
1. 股票类型(按上市地 / 投资者) |
|||
表格 |
|||
股票类型 计价货币 上市地 投资者 |
|||
A 股 人民币 内地 中国公民 |
|||
B 股 美元 / 港元 内地 境外投资者 |
|||
H 股 港元 香港 全球投资者 |
|||
N/S/T 股 当地货币 美国 / 新加坡 / 日本 全球投资者 |
|||
2. 市场板块 |
|||
主板:大型成熟企业,上交所 + 深交所,核心市场; |
|||
中小板:流通盘约 1 亿以下中小企业,创业板过渡; |
|||
创业板:成长期企业,业绩不稳定,风险较高,需单独开通权限; |
|||
新三板:全国中小企业股份转让系统,服务创新型中小微企业。 |
|||
五、投资业务与交易费用 |
|||
1. 核心投资业务 |
|||
融资融券:证券信用交易,融资买股、融券卖股;个人门槛:开户满 18 个月 + 资产≥50 万; |
|||
沪港通:2014 年 11 月 17 日启动,含沪股通 + 港股通;个人门槛:资产≥50 万。 |
|||
2. 开户规则 |
|||
A 股全面放开一人一户,自然人最多可开20 个账户; |
|||
开户方式:本人持身份证 + 银行卡,线下网点 / 线上官网办理。 |
|||
3. 交易费用 |
|||
表格 |
|||
费用类型 收费规则 |
|||
印花税 卖出单边收取0.1%,买入不收费 |
|||
交易佣金 买卖双向收取,默认0.15%,可协商 |
|||
过户费 深交所股票免收,上交所双向收取 |
|||
六、道氏理论(技术分析鼻祖) |
|||
1. 核心定义 |
|||
以股票市场基本趋势为研究对象的投资理论。 |
|||
2. 六大核心观点 |
|||
平均价格包容消化一切影响因素; |
|||
市场同时存在三种趋势:基本运动、次级运动、日常运动; |
|||
大趋势分为三个阶段:积累阶段→上涨阶段→反转阶段; |
|||
不同平均价格相互验证,确认趋势有效性; |
|||
成交量验证趋势,趋势方向成交量递增; |
|||
唯有明确反转信号,才能判定原有趋势终结。 |
|||
3. 趋势分类 |
|||
表格 |
|||
趋势类型 周期 幅度 特点 |
|||
基本运动 ≥1 年 ≥30% 大趋势,牛市 / 熊市 |
|||
次级运动 3 周 - 数月 回撤 1/3-2/3 趋势中的回调 / 反弹 |
|||
日常运动 6-10 天 无规律 短期波动,风险极高 |
|||
七、核心专业名词 |
|||
K 线:起源日本米市,阳线(涨)、阴线(跌),含实体、上影线、下影线; |
|||
市场状态:牛市(普涨)、熊市(普跌)、盘整(波动小)、阴跌(缓慢下跌); |
|||
交易操作:建仓(买入)、平仓(反向卖出)、满仓(全仓持股)、清仓(全部卖出); |
|||
核心指标: |
|||
市盈率 = 股价 ÷ 每股收益(衡量估值); |
|||
市净率 = 股价 ÷ 每股净资产(衡量安全边际); |
|||
市场行为:利多(利好)、利空(利空)、套牢(买入后下跌)、填权(除权后涨价)、贴权(除权后降价)。 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue