面
java面试
线程产生死锁的四个必要条件
互斥条件:一个资源只能被一个进程使用
请求与保持条件:一个进程因请求资源而阻塞时,对已经获得的资源保持不放
不剥夺条件:进程已经获得资源不能 强行剥夺
循环等待条件:若干个进程之间形成一种头尾相接的循环等待资源
只要有一个不满足,就不会发生死锁
算法红黑树的特点:
节点是红色或者是黑色的
根是黑色的
叶子节点都是黑色的
红色节点的叶子节点都是黑色的
红色节点的父亲 节点都是黑色的
从根节点到叶子节点所有的路径上不能有两个连续的红色节点
从任意节点到叶子节点所有路径都包含相同数目的黑色节点、
算法
哈希算法
不可逆的,通过一定的计算生成的索引
生成的索引不能还原回去
哈希碰撞:
不同的输入得到相同的输入
发生冲突的情况:
链式寻址方法:
用的时候进入链表逐个查找
开放寻址方法:
冲突了就找下一个地址
或者是2的2次方3的3次方或4的次方
MD5(128)和SHA算法(256)
python
爬虫
Rquests123456import requestsresponse = requests.get("http://book.")if response.ok: print(response.text)else: print("请求失败+")
123456789101112131415161718192021222324252627282930int waiting = 0; // 等候理发师 顾客坐的椅子数int CHAIRS = N; // 为顾客准备的椅子数semaphore customers = 0; // 等候的顾客数semaphore barbers = 0; // 空闲的理发师数semaphore mutex = 1; // 互斥信号量,保证waiting++操作完整进行cobeginprocess barber() { // 理发师 while(true) { P(customers); // 有顾客吗?若无顾客,理发师睡眠 P(mutex) ...
python
python
python基础123456print("""第一句第二句""") 自动换行不报错想要打印' 用转义字符\'
2**3 就是2的3次方的意思 math.sqrt 是开平方的意思
12345ifelifelif
列表pandas的列表Series是线性的数据结构,带有标签的一维数组,轴标签统称为索引,数据和标签之间存在联系
DataFrame
np.random.randn()函数返回的是一个浮点数
np.random.rand()函数同样范围是(0,1)
123max(num_list)打印列表里面最大的值min(NUM_LIST)最小的sorted 打印排序好的
字典1234567print("小明" in contacts) //判断键是是否这个字典里面del contacts["键名"] //删除一个不存在就报错contacts["键名"] = 值 //添加len(contacts) ...
前端
vue3
Vue3快速上手
1.Vue3简介
2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王)
耗时2年多、2600+次提交、30+个RFC、600+次PR、99位贡献者
github上的tags地址:https://github.com/vuejs/vue-next/releases/tag/v3.0.0
2.Vue3带来了什么1.性能的提升
打包大小减少41%
初次渲染快55%, 更新渲染快133%
内存减少54%
……
2.源码的升级
使用Proxy代替defineProperty实现响应式
重写虚拟DOM的实现和Tree-Shaking
……
3.拥抱TypeScript
Vue3可以更好的支持TypeScript
4.新的特性
Composition API(组合API)
setup配置
ref与reactive
watch与watchEffect
provide与inject
……
新的内置组件
Fragment
Teleport
Suspense
其他改变
新的生命周期钩子
data 选项应始终被声明为一个函数
...
http鉴赏
httpsecure安全
http:明文发送
https:加密发送
非对称加密:公钥解密私钥-——私钥解密公钥 (单向解密
https实现安全的流程:
1.服务器给浏览器服务器的公钥,浏览器利用服务器的公钥生成一个随机的数,发送给服务器,服务器利用自己的私钥进行解密,得到一个同样的密钥
2.利用非对称生成相同的密钥
ssl:TLS(混用
TCL证书:把这些数据给CA的第三方,CA用私钥加称密文发送给服务器,再给别人就是这个密文
别人收到这个密文用ca发送的