$1小结一下#1-#3
前言
先说说感受 3天高强度学习 学了挺多 感觉遗忘的也挺多
现在的快速入门路线就是倍速听课 快速了解一下一些方法 和思维 能记起来 或者会查 文档就行
今天2025-5-21 23:47:21 的进度
Java se 基础 感觉基本是脑子过了一遍 学到io流 差个注解 反射网络编程 可以说基础内容就是学完了
怎么说呢 前面的很多内容是看已经看尚硅谷的视频了 差不多是到面对对象多态哪一部分还有多线程和集合
后面是看黑马的视频
但是感觉黑马的听起来舒服一些 前面看的尚硅谷的其实也忘了挺多的 今天是第四天了 距我的百日计划截止还剩下的
只有96天 所以得加紧一下步伐了!!!
下一个四天小周期 估计是得把Java基础的内容全部过完 然后小总结一下
对了,今天还发现一个牛逼网站小林coding 这个网站是Java八股文 怎么说呢,看完视频 然后可以看这个网站上的内容检验一下自己
的掌握程度 基本上熟练的话1h多可以多一遍基础内容 我今天是看到注解那里 后面还没学 ,讲的都是底层没有具体的方法调用 但是看完这些再打代码 可以减少报错 加深代码的编写思路 和 底层思维及 debug的能力 总之,这个Java基础八股文大概也就2w字 再接下来四天里基本上 每天需要过一遍 熟练记忆一下
再说一下 前端把 看黑马的是视频是有点气 感觉白雪了 现在的前端技术 迭代的非常快 然后Java全栈 我也是打算侧重后端的话
接下来要求的话 就是记住学过的html css js 前端三大件
还有知道vue框架的使用 以及axios 异步加载 嗯让我想想
还有一些组件的结构 比如说element 会用会复制
以及一些工具的使用比如说打包工具怎么用 vue 路由怎么用 maven怎么用
反正至少是需要了解一下前端工程化的思维 后续的项目也会锻炼到以上能力
接下来的前端课程会涉及的是spring web spring boot 主要先了解一下这个生态把 后面还有mysql 这个之前学过一点 我感觉直接跳
mybatics maven高级 springboot原理 以及还有挺多案例东西还是有点多的 也不太压力自己这个的话 我会
3
5 还有16天的时间里穿插着看 并把重要的内容拎出来单独学 比如mysql 会花一个小周期 重点学一下
这个差不多就是我的安排了
对了 最重要的差点忘了说了
百日计划还需要同步刷100到leetcode热门题
每天还需要抽出时间来整理这个玩意
怎么说 算法对我来说还是感觉很难学到现在也没入门感觉
虽然有专业课 但是摆了没学byd考的一坨 所以 这个方面也是我需要去重点补的地方 大概在
8左右也就是一个月后就会再每天2h时间先做每日一题 再刷150道企业 热题 然后再继续Java的深入部分 spring 啥的 当然八股也会每天看1h
byd
接下来豆包复习法启动
Java基础部分
1. Collection 接口
单列集合顶级接口,定义通用方法如add
/remove
/iterator
,适配多种数据结构。
2. 单列集合分类
- List:有序、有索引、元素可重复(如
ArrayList
/LinkedList
)。
- Set:无序(
TreeSet
有序)、元素唯一(如HashSet
/TreeSet
)。
3. 迭代器(Iterator)
集合遍历工具,通过hasNext()
/next()
获取元素,remove()
支持遍历中删除。
4. 哈希表原理
数组 + 链表 + 红黑树结构,链地址法解决哈希冲突,JDK1.8 + 链表过长转红黑树。
5. 红黑树
自平衡二叉搜索树,用于TreeSet
/TreeMap
,插入 / 查询效率 O (log n),支持排序。
6. 泛型基础
编译时类型检查,避免强转,代码复用。泛型类 / 方法 / 接口,T 仅限引用类型。
7. 泛型通配符
<?>
:任意类型(只读);<? extends T>
:上限(T 及其子类,只读)。
<? super T>
:下限(T 及其父类,只写)。
8. List 接口实现类
- ArrayList:动态数组,查询快,扩容 1.5 倍,线程不安全。
- LinkedList:双向链表,增删快,提供头尾操作方法。
- Vector:线程安全动态数组,已被
ArrayList
替代。
9. 增强 for 循环
简化集合 / 数组遍历,本质是迭代器(集合)或普通 for(数组),语法糖集合名.for
。
10. Collections 工具类
shuffle
:打乱集合;sort
:自然排序或自定义比较器。
addAll
:批量添加元素,reverse
:反转列表。
11. 比较器(Comparator vs Comparable)
- Comparator:外部排序,自定义规则(如
(a,b)->b.length()-a.length
)。
- Comparable:内部排序,对象实现
compareTo
定义自然顺序。
12. 哈希值与去重
对象的十进制标识,HashSet
/HashMap
通过hashCode
+equals
去重,需重写两方法。
13. Set 接口实现类
- HashSet:哈希表,无序唯一;LinkedHashSet:哈希表 + 链表,插入顺序有序。
- TreeSet:红黑树,自动排序,不允许 null。
14. Map 接口与实现类
双列集合,键唯一。
- HashMap:哈希表,线程不安全,支持 null 键值。
- TreeMap:红黑树,键自动排序;LinkedHashMap:保持插入顺序。
15. 集合嵌套
列表套列表 / 映射,映射套映射,用于复杂数据结构(如斗地主牌面序号映射)。
16. Lambda 表达式
SAM 接口匿名内部类简写,语法(参数)->{逻辑}
,适配Runnable
/Comparator
等。
17. 方法引用(::)
直接调用已有方法替代 Lambda,如String::length
,支持静态 / 实例 / 构造器引用。
18. JUC 核心组件
- 线程池:
ExecutorService
复用线程,ThreadPoolExecutor
自定义配置。
- 原子类:
AtomicInteger
无锁操作,替代volatile+synchronized
。
19. Stream 流操作
链式处理集合,filter
过滤、map
转换、collect
收集,支持并行流parallelStream()
。
20. 不可变集合
List.of
/Set.of
创建后不可修改,线程安全,防篡改,不允许 null 元素。
21. File 类操作
处理文件 / 目录路径,可获取绝对路径、创建文件 / 目录,listFiles()
遍历子项。
22. 递归思想
将问题分解为同构子问题,需明确定终止条件,避免栈溢出(如计算阶乘)。
23. IO 流分类
- 字节流:
InputStream
/OutputStream
,处理二进制数据(图片 / 音频)。
- 字符流:
Reader
/Writer
,处理文本数据,自动管理编码。
24. 字节流核心操作
FileInputStream
/FileOutputStream
读写文件,read(byte[])
/write(byte[])
批量操作。
25. 字符流核心操作
FileReader
/FileWriter
读写文本,BufferedReader.readLine()
按行读取大文件。
26. 缓冲流优化
BufferedInputStream
/BufferedWriter
装饰基础流,内部缓冲区减少 IO 次数,提升性能。
27. 转换流(编码处理)
InputStreamReader
/OutputStreamWriter
连接字节流与字符流,指定编码(如 UTF-8)。
28. 序列化与反序列化
对象转字节流存储 / 传输,类需实现Serializable
,transient
修饰敏感字段。
29. 压缩流与解压缩流
- GZIP:单文件压缩;ZIP:多文件归档,
ZipEntry
管理条目。
- 装饰器模式嵌套流,自动处理压缩标记。
30. IO 异常处理
JDK7+try-with-resources
自动关闭流,如try (FileInputStream fis = ...) { ... }
。
31. 装饰器模式(IO 应用)
动态扩展流功能,如BufferedInputStream
包装FileInputStream
添加缓冲。
32. 编码与解码
字符与字节转换,需一致编码(如 UTF-8),String.getBytes("UTF-8")
避免乱码。
33. 设计模式 - 工厂模式
解耦对象创建,简单工厂 / 工厂方法 / 抽象工厂,如Calendar.getInstance()
。
34. 设计模式 - 单例模式
确保全局唯一实例,枚举 / 静态内部类 / 双重检查锁定实现,线程安全。
35. 设计模式 - 代理模式
为对象提供代理控制访问,如 Spring AOP 动态代理实现切面编程。
36. 设计模式 - 观察者模式
发布 - 订阅机制,解耦组件,如 GUI 事件监听、消息队列(MQ)。
37. 斗地主案例核心逻辑
组合牌面→洗牌→发牌(i%3
分配玩家,最后 3 张底牌),集合嵌套与工具类应用。
38. 哈希表存储过程
键通过哈希函数定位数组索引,冲突时链表 / 红黑树存储,扩容触发重新散列。
39. Properties 属性集
Hashtable
子类,键值均为 String,load
/store
读写配置文件(如.properties
)。
40. 线程安全集合对比
- ArrayList:非线程安全,高性能;Vector:线程安全,已废弃。
- HashMap:非线程安全;ConcurrentHashMap:分段锁,高并发场景首选。
41. 红黑树与 AVL 树
- 红黑树:平衡要求宽松,插入 / 删除更快,适合频繁修改场景。
- AVL 树:高度严格平衡,查询更快,适合读多写少场景。
42. 泛型擦除
编译后泛型类型信息擦除,运行时仅保留原始类型,需注意类型安全(如List<String>
与List<Integer>
运行时相同)。
43. 不可变集合与防御性编程
返回不可变集合防止外部修改,如Collections.unmodifiableList(list)
,提升接口安全性。
44. NIO.2 与 Path 类
Java 7 + 新 IO API,Path
替代File
,Files
工具类支持文件读写、复制、属性查询,更简洁高效。
Javaweb部分
1. 前端三大件(HTML/CSS/JS)
- 目标:看懂基础结构与逻辑,能配合后端联调接口。
- 核心:
-
- HTML:语义化标签(如
<header>
/<article>
)、表单标签(<form>
/<input>
)。
- HTML:语义化标签(如
-
- CSS:盒模型(width/height/padding/margin)、Flex 布局(
display: flex
)、响应式基础(媒体查询@media
)。
- CSS:盒模型(width/height/padding/margin)、Flex 布局(
-
- JS:变量声明(
let
/const
)、事件绑定(addEventListener
)、JSON 序列化(JSON.parse/stringify
)。
- JS:变量声明(
2. DOM 与 BOM(浏览器操作)
- DOM:通过
document.getElementById
或querySelector
获取元素,动态修改innerHTML
或样式。
- BOM:掌握
window.location.href
(跳转)、localStorage
(本地存储),其他场景按需查询。
3. Vue 框架(快速开发核心)
- 核心思想:数据驱动视图,组件化开发。
- 必学:
-
- 模板语法(
{{ data }}
)、指令(v-if
/v-for
/v-model
)。
- 模板语法(
-
- 组件通信:父子传值(
props
/$emit
)、全局状态(Vuex 简单使用)。
- 组件通信:父子传值(
-
- 路由集成:
vue-router
基本配置(router-link
/router-view
)。
- 路由集成:
4. Axios(异步请求)
- 作用:前后端数据交互,替代传统 Ajax。
- 核心用法:javascript
// GET 请求
axios.get('/api/data', { params: { page: 1 } });
// POST 请求
axios.post('/api/login', { username, password });
- 注意:拦截器处理 Token(
axios.interceptors.request.use
),错误捕获(.catch
)。
5. Element UI(Vue 组件库)
- 定位:快速搭建中后台界面,减少重复开发。
- 常用组件:
-
- 表单(
el-form
/el-input
):结合rules
实现校验。
- 表单(
-
- 表格(
el-table
):数据渲染与自定义列(slot-scope
)。
- 表格(
-
- 弹框(
MessageBox
):消息提示与确认框。
- 弹框(
6. Vue 路由(Vue Router)
- 模式:
-
- Hash 模式(默认):URL 带
#
,兼容性好。
- Hash 模式(默认):URL 带
-
- History 模式:需服务端配置,更美观(如 Node.js 配置
res.sendFile
)。
- History 模式:需服务端配置,更美观(如 Node.js 配置
- 关键配置:
-
- 动态路由(
/user/:id
)、嵌套路由(children
)。
- 动态路由(
-
- 导航守卫(
beforeEach
):登录校验(to.meta.requiresAuth
)。
- 导航守卫(
7. Maven(Java 项目构建)
- 核心功能:依赖管理、自动化构建。
- 必学操作:
-
pom.xml
依赖配置(groupId:artifactId:version
),范围控制(test
/provided
)。
-
- 生命周期命令:
mvn clean package
(清理并打包)、mvn install
(安装到本地仓库)。
- 生命周期命令:
-
- 镜像加速:配置阿里云镜像(
<mirrorOf>*</mirrorOf>
)。
- 镜像加速:配置阿里云镜像(
8. 低代码平台(效率工具)
- 适用场景:企业内部系统(OA/CRM)、快速验证需求。
- 主流平台:
-
- 钉钉宜搭:集成钉钉生态,适合协同办公。
-
- 简道云:零代码,上手快,适合中小企业轻量化应用。
-
- 得帆云:支持复杂业务集成,适合中大型企业。
9. JSON(数据交互标准)
- 语法:键值对(双引号包裹)、数组(
[]
)、对象({}
)。
- 前后端交互:
-
- 前端:
JSON.stringify
发送数据,JSON.parse
解析响应。
- 前端:
-
- 后端:Java 用 Jackson 或 Gson 库实现对象与 JSON 互转。
10. 前端工程化(团队协作)
- 核心目标:标准化、自动化。
- 关键点:
-
- 模块化:ES6
import/export
、Vue 组件拆分。
- 模块化:ES6
-
- 规范化:ESLint 代码检查、Prettier 代码格式化。
-
- 构建工具:Vite(冷启动快)、Webpack(功能全)。
11. 事件机制(JS 交互基础)
- 绑定方式:
addEventListener
(推荐)、内联事件(onclick
)。
- 常见事件:
click
(点击)、input
(输入变化)、load
(资源加载完成)。
- 事件委托:利用冒泡原理,父元素统一处理子元素事件(如列表项点击)。
12. 技术选型建议
场景 | 推荐方案 | 理由 |
中小型项目前端 | Vue + Element UI + Axios | 生态成熟,开发效率高 |
复杂中后台系统 | Vue 3 + Element Plus + Vue Router | 性能更强,支持 TypeScript |
快速原型开发 | 低代码平台(如简道云) | 无需编码,快速上线 |
大型团队协作项目 | Maven + 多模块架构 | 依赖统一管理,构建标准化 |
总结:学习路径与时间分配
- 前端基础(<8 小时):重点掌握 HTML 结构、CSS 布局、JS 基础逻辑,能看懂 Vue 组件代码。
- 框架与工具(<6 小时):学会 Vue 基础语法、Axios 调用、Element UI 组件使用,了解 Vue Router 配置。
- 后端衔接(按需):深入 Maven 依赖管理、JSON 数据交互,配合低代码平台快速实现全栈功能。
- 实践优先:通过小项目(如博客、TODO 列表)串联知识点,侧重前后端联调与接口对接。
算法
没学啥
红黑树 贪心算法 差分数组前缀和 没学会 每日一题解不出来还