目录
1. 操作系统
- 概念
操作系统(Operating System,
OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的软件集合。
- 内存管理
逻辑地址(虚拟地址)、物理地址、分页、分段、页置换算法
https://blog.csdn.net/sicofield/article/details/8807950
- 线程与进程
进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
https://blog.csdn.net/kuangsonghan/article/details/80674777
- 进程/线程间通信
管道、信号量、共享内存、消息队列、信号、套接字
进程https://www.cnblogs.com/liugh-wait/p/8533003.html
https://blog.csdn.net/Beyond_2016/article/details/81357705
- 死锁,中断
死锁
https://blog.csdn.net/weixin_41064826/article/details/78877052
中断
https://blog.csdn.net/typhoonzb/article/details/4726385
2.计算机网络
- TCP/UDP区别
TCP是传输控制协议,提供的是面向连接,可靠的字节流服务。当前客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时的重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。(打电话)
UDP是用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。(寄信)
- TCP三次握手四次挥手
- TCP如何保证数据不出错
TCP为应用程序提供可靠的通信连接,因为他采用了三次握手协议,三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互。连接建立后,客户端和服务器就开始进行安全可靠的数据传输了
- Http/Https区别
https://zhinan.sogou.com/article/i5611182.htm?ch=zn.wap.kepu
- Https详解
https://blog.csdn.net/be_happy_mr_li/article/details/53886706
- Token
- 计算机网络模型、TCP/IP协议五层模型
https://blog.csdn.net/u011619283/article/details/52679504
https://blog.csdn.net/W_Y2010/article/details/52536133
https://blog.csdn.net/starter_____/article/details/102055024
- DNS解析
- Url是如何转换成网页的
3.数据结构
- 数组与链表在内存中的区别
- 数组与链表的区别
- 队列与栈的区别
https://blog.csdn.net/fhb1922702569/article/details/94742469
- 二叉树详解
- 二叉树的遍历-前序/中序/后序
https://blog.csdn.net/yin1031468524/article/details/56841188
- 红黑树详解
- 深度优先/广度优先算法
4.算法
- 动态规划
https://blog.csdn.net/qq_41739364/article/details/89306524?locationNum=11&fps=1
- 贪心算法
- 排序算法
https://blog.csdn.net/weixin_41190227/article/details/86600821
- Manacher
- 判断链表有环
- 链表反序
单https://www.cnblogs.com/pursuiting/p/7718072.html
双https://blog.csdn.net/qinglongzhan/article/details/80667296
5.Java
- 基本数据类型
1 整型 byte(1字节) short (2个字节) int(4个字节) long (8个字节) 2 浮点型 float(4个字节)
double(8个字节) 3 逻辑性 boolean(八分之一个字节) 4 字符型 char(2个字节,一个字符能存储下一个中文汉字)
- int与float区别
int为二进制存储(-2^31 ~ 2^31),float为指数存储
https://blog.csdn.net/C2681595858/article/details/84865920
- float与double区别
float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间
double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间
当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f 例如:float a=1.3;
则会提示不能将double转化成float 这成为窄型转化 如果要用float来修饰的话,则应该使用float a=1.3f
注意float是8位有效数字,第7位数字将会产生四舍五入 所以如果一个float变量 这样定义: float a=1.32344435;
则第7位将产生四舍五入(5及5以下的都将舍去)
- int和Integer的区别
int是基本数据类型,Integer是封装类,是对象。 注意 -128~127
https://blog.csdn.net/Teacher_Lee_ZZSXT/article/details/79230501
- 自动装箱拆箱(ArrayList不能使用基本数据类型)
Integer total = 99; //自动装箱 int totalprim = total; //自动拆箱
https://www.cnblogs.com/wang-yaz/p/8516151.html
https://www.cnblogs.com/libinhong/p/10988945.html
- Arraylist和linklist区别
- 原子性
- 单继承/单根继承
- 双亲委派模型
- 深拷贝/浅拷贝
- 线程同步/线程安全-Volatile/Synchronized/Lock
- 两者区别-(abstract/interface)(Override/Overload)(wait/sleep)(JDK/JRE)(start/run)
- 三者区别-(String/StringBuilder/StringBuffer)(final/finally/finallize)(== 、equals、===)
- 内部类使用外部类局部变量为什么要声明为final
- GC详解
- 四种引用(软引用与弱引用的区别)以及软引用实现高速缓存
强引用、软引用、弱引用、虚引用,高速缓存的实际应用
https://blog.csdn.net/he_world/article/details/50543793
- Java 反射
- 泛型与泛型擦除
- HashMap详解
- 设计模式
- 生产者消费者模式
手写!!! https://blog.csdn.net/u011109589/article/details/80519863
杂
- 多态的含义和优点
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作
消除类型之间的耦合关系,可替换性,可扩充性,接口性,灵活性,简化性
- 封装目的
- c++与java的区别
https://blog.csdn.net/weixin_41947075/article/details/89556145
- 指针和引用的区别
https://blog.csdn.net/superwangxinrui/article/details/80565594