常见知识点总结

1、静态成员

知识点 详细说明
本质 属于,不属于任何一个对象,是所有对象共享的变量
内存位置 存放在全局 / 静态数据区不占用对象内存空间
生命周期 程序启动时分配,程序结束时释放,全程存在
访问方式 1. 类名直接访问:类名::静态变量 2. 对象访问:对象.静态变量
共享特性 所有对象共用同一份数据,修改一处,全部生效
声明与定义 1. 类内声明static 类型 变量名; 2. 类外定义 / 初始化 (必须):类型 类名::变量名 = 值;
与普通成员变量区别 普通成员:每个对象独立一份,随对象创建 / 销毁 静态成员:全类一份,独立于对象

2、DFS和BFS

算法 时间复杂度(邻接表) 空间复杂度(最好 / 最坏)
DFS(递归) O(V+E) O(V)
BFS(队列) O(V+E) O(V)

3、常用排序时间复杂度

排序算法 平均时间复杂度 最好时间复杂度 最坏时间复杂度 空间复杂度 稳定性
冒泡排序 O(n2) O(n) O(n2) O(1) 稳定
选择排序 O(n2) O(n2) O(n2) O(1) 不稳定
插入排序 O(n2) O(n) O(n2) O(1) 稳定
希尔排序 O(n1.3) O(nlogn) O(n2) O(1) 不稳定
快速排序 O(nlogn) O(nlogn) O(n2) O(logn) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定
计数排序 O(n+k) O(n+k) O(n+k) O(n+k) 稳定
桶排序 O(n+k) O(n+k) O(n2) O(n+k) 稳定
基数排序 O(d(n+k)) O(d(n+k)) O(d(n+k)) O(n+k) 稳定

4、N/NP问题

分类 问题名称 说明
P 问题(多项式可解) 二分查找 时间复杂度 O(logn)
快速排序 时间复杂度 O(nlogn)
归并排序 时间复杂度 O(nlogn)
冒泡排序 时间复杂度 O(n2)
插入排序 时间复杂度 O(n2)
选择排序 时间复杂度 O(n2)
最短路径 Dijkstra 图论经典可解问题
最小生成树 Kruskal/Prim 图论经典可解问题
NP 完全问题(目前无多项式解法) 旅行商问题 TSP 经典 NPC 问题
哈密顿回路 / 路径 典型 NPC 问题
0-1 背包问题 只能近似 / 动态规划
子集和问题 典型 NPC
图着色问题 典型 NPC
顶点覆盖问题 典型 NPC
最大团问题 典型 NPC

5、HTTP

HTTP 应答报文的结构分为三部分:状态行、响应头(报头)、空行、响应正文

结构部分 作用 示例
状态行 告知请求处理结果 HTTP/1.1 200 OK
报头(响应头) 描述响应元信息 Content-Type: text/html
空行 分隔报头与正文 (仅一个换行符)
正文 实际返回的数据 <html>...</html>

6、string

核心优点 具体含义 一句话总结
AOP 切面 面向切面编程,统一处理日志、事务、权限控制 交叉业务逻辑与核心代码分离
IOC 解耦 控制反转 / 依赖注入,由容器管理对象生命周期 对象创建与依赖关系解耦
一站式 涵盖了持久层、Web 层、业务层等完整解决方案 全栈覆盖,一站式搞定
集成能力 无缝集成 MyBatis、Hibernate、Dubbo 等主流框架 生态强大,兼容性极佳
相关推荐
库克克19 小时前
【C++】类和对象--类对象模型与大小计算
开发语言·jvm·c++
嘘嘘出差20 小时前
天气数据监控系统
jvm·爬虫
2601_949817721 天前
C++指针与引用深度精讲:底层原理、差异对比与高阶实战陷阱
java·jvm·c++
不爱编程的小陈2 天前
操作系统内存管理 —— 虚拟内存
jvm
大阿明2 天前
C++智能指针与RAII机制精讲:彻底根治内存泄漏与野指针
java·jvm·c++
一生了无挂2 天前
C++面向对象核心精讲:类、对象、封装、权限与生命周期全解析
java·jvm·c++
老毛肚2 天前
juc线程通信
java·开发语言·jvm
不会就选b3 天前
Linux之进程(七)--虚拟地址空间
jvm
思麟呀4 天前
在C++基础上理解CSharp-7
java·jvm·c++·c#