惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
Hacker News: Ask HN
Hacker News: Ask HN
Schneier on Security
Schneier on Security
H
Heimdal Security Blog
Simon Willison's Weblog
Simon Willison's Weblog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
Help Net Security
Help Net Security
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
S
Securelist
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes
Know Your Adversary
Know Your Adversary
The Last Watchdog
The Last Watchdog
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
H
Hacker News: Front Page
NISL@THU
NISL@THU
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Google Online Security Blog
Google Online Security Blog
The Hacker News
The Hacker News
Cloudbric
Cloudbric
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
A
Arctic Wolf
Latest news
Latest news
S
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
Project Zero
Project Zero
P
Privacy International News Feed
B
Blog
云风的 BLOG
云风的 BLOG

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19) 使用 Velero 备份 Kubernetes 集群 Kubernetes Cheat Sheet 开发 Tips(18) 如何构建一个 Java 工程 开发 Tips(17) KubeSpray 安装 Kubernetes 报错 ip in ansible_all_ipv4_addresses 基于 Kubernetes 和 Jenkins 搭建自动化测试系统 在 Kubernetes 上动态创建 Jenkins Slave 使用 Jenkins 进行服务拨测 开发 Tips(16) Kubernetes 签发 Ingress 证书及日常故障运维 Kubernetes 中 Deployment 的基本操作 Kubernetes 中的证书 如何使用 KubeBuilder 开发一个 Operator Kubernetes 1.6.0 安装问题汇总 镜像管理工具 -- Harbor 开发 Tips(15) Docker 如何拉取镜像 开发 Tips(14) 使用 Helm 安装 harbor 开发 Tips(13) 使用 S2I 构建云原生应用 在 Kubernetes 中使用 emptyDir、hostPath、localVolume 开发 Tips(12) 开发 Tips(11) 代码质量分析工具 SonarQube 使用 Kubeadm 安装 Kubernetes 集群 一起来学 Go --(4)常用函数 Kubernetes 中的 Ceph Kubernetes 之 Volumes Kubernetes 之 Labels、Selectors 开发 Tips(10) 开源正在重构商业模式 Kubernetes 之网络 Kubernetes 之 API 使用 Helm 和 Operator 快速部署 Prometheus Kubernetes 复杂有状态应用管理框架 -- Operator Kubernetes 的包管理器 -- Helm 一起来学 Go --(3)Go Modules 如何一步一步地优化博客方案 kubectl 实用指南 Kubernetes 中的基本概念 搭建远程 Kubernetes 开发环境 大公司和小公司的 ToB 思路 开发 Tips(9) Go 入门指南 一起来学 Go --(2)数据与逻辑结构 如何预防 Web 富文本中的 XSS 攻击 django-xss-cleaner 云工作时代 一起来学 Go --(1)背景与特点 SaaS 开发团队的不同阶段 你不知道的 Git 使用技巧 输出既服务 微服务设计 继续奔跑 开发 Tips(8) 从账户安全到二次验证 Django 性能之数据库查询优化 Django 性能之分库分表 敏捷开发之研发流程 打造一致性的团队 开发 Tips(7) Pytest 进阶学习之 Mock PaaS 部署之 buildpack Go 开发配置 领域输出才是 PaaS 的核心竞争力 Pytest 入门学习 开发 Tips(6) 如何使用 Jenkins、Docker、GitLab 搭建 Django 自动化部署流程
一些常见的计算机面试题
微信公众号 · 2021-04-26 · via 陈少文的网站

计算机基础

堆和栈

什么时候用堆?什么时候用栈?栈有什么作用?Golang 的变量在栈还是堆?堆、栈有没有上限?有的话和什么有关?

数据结构

Slice 空间是怎样分配的?双倍扩容,原来数据复制过去。

Golang 的 map 是什么结构 Golang 的 map 是什么结构,遍历是否有序, 什么是 Hash 表? Hash 表的查询效率? 解决碰撞有什么方法?

线程

线程是否越多越好吗? 线程切换消耗大不大?

协程是否越多越好吗?要区分线程调度(内核上下文切换)与协调调度时(进程内上下文切换)机制。

网络

TCP 协议

TCP 建立过程是怎样的,最要的工作是什么?协商序列号。

TCP 关闭过程,为什么要四次挥手?因为TCP是全双工的。

Client -> Server, Client 主动关闭链接, TIME_WAIT 发生在那端?服务器有很多 TimeWait 一般是什么情况 主动关闭端。有很多 Timewait 证明是服务主动关闭连接,存在有很多短链接。

Client 和 Server 已建立了 TCP 连接, Client 正在调用 Read 阻塞,Server 进程崩溃后,Client 会怎样? 进程崩溃,操作系统会关闭文件描述符,Sever 进入主动关闭流程。

通过 TCP 传输文件,为什么还需要对收到的文件做正确性校验?

HTTP 协议

简述 http 协议格式,文本协议能不能传输二进制?http 可传输图片的方法(content-length)。

http 与 https 关系是什么?简述 https 协议作用,描述出 https 握手过程的加分 。

什么是 http 中 的 keepalive,怎样做到 keepalive ? http1.1 才支持 keepalive,一个 tcp 连接顺序发送请求(遵守一问一答顺序),http2.0 多路复用。

数据库

索引知识

数据库索引使用了什么数据结构?为什么要使用这个数据结构?

一个表的字符串字段 A 已经建立了索引,使用查询条 A == ‘abc’ 是否能用上索引?使用查询条A != ‘abc’ 是否能用上索引?为什么?因为 A!=‘abc’ 在 B+ 树查找过程无法比较大小,无法进一步定位孩子树

有个表 a 有主键 id, 说明一下 select * from a order by id desc limit 10, 1select*from a order by id desc limit 100000, 1 的效率差别? offset 为多少,就要遍历多少

一个表有一个联合索引(A,B),如果查询用 A=1 能用上索引吗,B=2 呢,为什么?

limit 的局限

用什么办法遍历一个有主键 id 的 3 亿数据表

算法

算法能力考察

有一个 100 万个不相等的乱序的整数, 用最快方法将其分成相等的两部分,要求前一部分每个数都比后一部分每个数小?使用快速排序的思路

在内存中有 100 组有序数组, 每组 10 万个元素,用最快方法将他们合并成一个有序的数组。使用堆

基本知识

如何判断一个链表有闭环

Golang

多线程编程

如果多个线程并发读写一个 map,会产生什么结果?为什么会产生这种结果?有什么办法保证并发安全?

Golang 中对一个 int64 进行高并发更新(增减),有什么办法保证并发安全? 并发编程的理解,可以有 3 种方式:(1)锁(2)atomic包(3)channel - 多生产者单消费者

协程,线程,进程

描述 goroutine 调度、切换机制。

Channel

Golang chan特性 chan 为什么不用锁,底层是怎么实现的?

什么时候会阻塞,怎么判断会阻塞? 1)chan底层是用了锁+双向队列实现。2)投递前可cap、len函数判断是否相等,但要锁住。第2个方法是用select default,实际编程中select必需加 default处理逻辑。

Redis

基本数据结构

string、list、set、zset、hash,每种数据结构的使用场景,实现原理

Redis Redis 用法如何用 Redis 实现一个分布式锁 最初级的回答是SETNX。更好的回答是考虑到原子性,用 Lua 脚本

原理

Redis对设置了TTL的key,是如何实现key的过期的? 能回答出 2 种过期方式:主动和被动(惰性)。如果能回答出主动方式的随机抽样流程,加分。

Redis的key淘汰策略有哪些? 各有什么特点?常用的有volatile-lru、volatile-ttl。LRU 算法的流程是什么

redis 有没有 stop the world 问题?什么时候会出现?为什么?回答:redis 是单进程、单线程服务,单个任务处理时间过长,就严重影响并发性能。如持久化时、处理返回大 values 值数据时、从一个很长的 list 中删除一个元素时等场景。

系统设计

短网址服务

  1. 输入一个长网址,编码返回一个短网址(重点是编码方法的考虑,比如用什么方式表示短网址,能表示的量有多大)

  2. 如何通过短网址找到长网址?

  3. HTTP重定向是选301还是302? (1)编码方式:用ID生成器生成一个64bit整数,然后把这个整数编码成英文数字的字符串(注意考虑要多长的字符串?),如果回答md5之类的hash方法的,会有冲突问题。

  4. 通过kv存储,key是短网址,value是长网址,redis mysql都可以

  5. 301(永久重定向)和302(临时重定向)的区别主要在于搜索引擎的行为。如果想要统计用户请求信息,用302.

高并发 ID 生成服务

  1. 全局唯一

  2. ID体积尽可能小

  3. ID按照时间有序