常见知识点总结

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 等主流框架 生态强大,兼容性极佳
相关推荐
鹤旗9 分钟前
While语句,do-while语句,for语句
java·jvm·算法
wuqingshun31415934 分钟前
谈谈你对springAop动态代理的理解?
java·jvm
gelald1 小时前
JVM - 运行时内存模型
java·jvm·后端
2501_924952692 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
专注_每天进步一点点6 小时前
方法 A 用线程池 1,方法 A 内部的方法 B 也用同一个线程池 1提交任务。导致的线程死锁
jvm
小王不爱笑1326 小时前
深度剖析:synchronized 底层实现原理(JVM 视角)
jvm
庞轩px6 小时前
线程池核心参数与拒绝策略深度解析
java·jvm·数据库
干啥啥不行,秃头第一名6 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
无风听海7 小时前
LangGraph Thread 数据清理总结
java·开发语言·jvm·langchain·deep agents