面经
我的
我的
我的
[1. 浏览器输入URL之后的过程
2. 域名投毒
3. 计算机网络的7层模型
4. 说一说有哪些应用层协议
5. Http状态码中的302和401是什么用的
6. 有没有做过web的身份验证
7. 脏读的场景和解决方案
8. 谈谈幻读
9. 幻读和脏读的区别
10. MySQL中 redo log 和 binary log 的区别和场景的使用意义
11. 为什么innoDB使用B+树
12. TopK问题 用那些方式实现,一步一步的优化
- 首先是完全排序 O(n*logn)
- 然后是冒泡或选择排序 O(K*n)
- 接着堆排序 O(n*logK)
- 使用二分的方式 ???
- 算法题(给了我两道题,然后选一道来做)
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定 n 和 k,返回第 k 个排列
比如n=3,k=4输出231
判断是否是一个二叉搜索数
节点的左子树只包含小于当前节点的数
节点的右子树只包含大于当前节点的数
所有左子树和右子树自身必须也是二叉搜索树
/**
- Definition for a binary tree node.
- type TreeNode struct {
- Val int
- Left *TreeNode
- Right *TreeNode
- }
- /
输入:
2
/
1 3
输出:true
输入:
3
/
1 6
/
5 4
输出: false
解释: 输入为: [3,1,6,null,null,5,4]。
根节点的值为 6 ,但是其右子节点值为 4 。
- 反问:我有哪些可以提高的地方?请问您是做什么相关事务的?
二面 - 介绍项目,结合项目问了 拉格朗日松弛算法,迪杰斯特拉算法
- 浏览器输入了 https://www.toutiao.com 的整个过程
- 证书在ssl过程中的作用
- 三次握手的过程中有哪些攻击方式,举例子
- 网络通道非常拥塞时,TCP如何保证数据可以正确到达对方
- 拥塞控制详细过程讲一下
- 四次挥手过程原因
- 应用程序如何将数据从网卡上面读取到进程当中
- 同步IO和异步IO
- reactor模型
- IO多路复用
- Linux中有那些多路复用方式
- 进程的几种状态,CPU如何在这几种状态中调度
- 线程池的七大参数
- 核心线程数 和 最大线程数的作用和使用过程中的变化
- 讲一下volatile
- 原子类的实现方式
- 讲一下锁的AQS的实现方式
- 讲一下知道的一些锁
- 算法题(给了我两道题,然后选一道来做)
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。
输入: 1->2->3->4->5->NULL, k = 2
输出: 4->5->1->2->3->NULL
解释:
向右旋转 1 步: 5->1->2->3->4->NULL
向右旋转 2 步: 4->5->1->2->3->NULL
输入: 0->1->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL向右旋转 4 步: 2->0->1->NULL
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:
1 <---
/
2 3 <---
\
5 4 <--- - 反问:我有什么可以提高的地方嘛?
](https://www.nowcoder.com/discuss/576220?channel=666&source_id=feed_index_nctrack)