年终将至,我总结了2019高频后端面试题,共计123题,请查收

前言

本文收录的面试题包括MySQL、Redis、MongoDB、数据结构、系统编程、网络编程、编程题等相关内容。

一. MySQL

  1. 事务
  2. 数据库索引
  3. 乐观锁和悲观锁
  4. MVCC
  5. MyISAM和InnoDB
  6. 主键 超键 候选键 外键
  7. 视图的作用,视图可以更改么?
  8. drop,delete与truncate的区别
  9. 索引的工作原理及其种类
  10. 连接的种类
  11. 数据库优化的思路
  12. 存储过程与触发器的区别
  13. 悲观锁和乐观锁是什么?
  14. 你常用的mysql引擎有哪些?各引擎间有什么区别?

二. Redis

  1. Redis是什么?
  2. Redis缺点
  3. Redis宕机怎么解决?
  4. Redis和Mecached的区别,以及使用场景
  5. Redis集群方案该怎么做?都有哪些方案?
  6. Redis回收进程是如何工作的

三. MongoDB

  1. MongoDB中对多条记录做更新操作命令是什么?
  2. MongoDB如何才会拓展到多个shard里?

四. 数据结构

  1. 数组中出现次数超过一半的数字-Python版
  2. 求100以内的质数
  3. 无重复字符的最长子串-Python实现
  4. 通过2个5/6升得水壶从池塘得到3升水
  5. 什么是MD5加密,有什么特点?
  6. 什么是对称加密和非对称加密
  7. 冒泡排序的思想?
  8. 快速排序的思想?
  9. 如何判断单向链表中是否有环?
  10. 你知道哪些排序算法(一般是通过问题考算法)
  11. 斐波那契数列
  12. 如何翻转一个单链表?
  13. 青蛙跳台阶问题
  14. 两数之和 Two Sum
  15. 搜索旋转排序数组 Search in Rotated Sorted Array
  16. 写一个二分查找
  17. set 用 in 时间复杂度是多少,为什么?
  18. 列表中有n个正整数范围在[0,1000],进行排序;
  19. 面向对象编程中有组合和继承的方法实现新的类

五. 系统编程

  1. select,poll和epoll
  2. 调度算法
  3. 死锁
  4. 程序编译与链接
  5. 静态链接和动态链接
  6. 虚拟内存技术
  7. 分页和分段
  8. 页面置换算法
  9. 边沿触发和水平触发
  10. unix进程间通信方式(IPC)
  11. 进程总结
  12. Java异步使用场景有那些?
  13. 多线程共同操作同一个数据互斥锁同步?
  14. 什么是多线程竞争?
  15. 请介绍一下Java的线程同步?
  16. 解释以下什么是锁,有哪几种锁?
  17. 什么是死锁?
  18. 多线程交互访问数据,如果访问到了就不访问了?
  19. 什么是线程安全,什么是互斥锁?
  20. 说说下面几个概念:同步,异步,阻塞,非阻塞?
  21. 什么是僵尸进程和孤儿进程?怎么避免僵尸进程?
  22. Java中进程与线程的使用场景?
  23. 线程是并发还是并行,进程是并发还是并行?
  24. 并行(parallel)和并发(concurrency)?
  25. IO密集型和CPU密集型区别?
  26. python asyncio的原理?
  27. 谈谈你对多进程,多线程,以及协程的理解,项目是否用?

六. 网络编程

  1. 三次握手和四次挥手
  2. ARP协议
  3. urllib和urllib2的区别
  4. Post和Get
  5. Cookie和Session
  6. apache和nginx的区别
  7. 网站用户密码保存
  8. HTTP和HTTPS
  9. CSRF和XSS
  10. 幂等 Idempotence
  11. RESTful架构(SOAP,RPC)
  12. SOAP
  13. RPC
  14. CGI和WSGI
  15. 中间人攻击
  16. c10k问题
  17. socket
  18. 浏览器缓存
  19. HTTP1.0和HTTP1.1
  20. Ajax
  21. 怎么实现强行关闭客户端和服务器之间的连接?
  22. 简述TCP和UDP的区别以及优缺点?
  23. 简述浏览器通过WSGI请求动态资源的过程?
  24. 描述用浏览器访问www.baidu.com的过程
  25. 列出你知道的HTTP协议的状态码,说出表示什么意思?
  26. 说一下什么是tcp的2MSL?
  27. 为什么客户端在TIME-WAIT状态必须等待2MSL的时间?
  28. 谈一下HTTP协议以及协议头部中表示数据类型的字段?
  29. 使用Socket套接字需要传入哪些参数 ?
  30. HTTP常见请求头?
  31. 七层模型?
  32. url的形式?

七. 编程题

  1. 台阶问题/斐波那契:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  2. 变态台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  3. 矩形覆盖:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
  4. 杨氏矩阵查找:在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
  5. 去除列表中的重复元素
  6. 链表成对调换
  7. 创建字典的方法
  8. 合并两个有序列表
  9. 交叉链表求交点
  10. 二分查找
  11. 快排
  12. 找零问题
  13. 广度遍历和深度遍历二叉树
  14. 二叉树节点
  15. 层次遍历
  16. 深度遍历
  17. 前中后序遍历
  18. 求最大树深
  19. 求两棵树是否相同
  20. 前序中序求后序
  21. 单链表逆置
  22. 两个字符串是否是变位词
  23. 动态规划问题

小编已经把以上涉及问题总结成了面试专题文档,有需要的朋友 点此即可获取



 

发布了65 篇原创文章 · 获赞 17 · 访问量 1609

猜你喜欢

转载自blog.csdn.net/cxytony/article/details/104029339