中高级review

一 算法

基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序.
查找算法,要会写二分查找法, 实际场景要会应用.

冒泡算法

答:冒泡算法总体逻辑

  • 当前元素跟后面的每一个元素比较,如果后面元素比当前元素小则进行交换
  • 遍历所有的节点,最后会出现小的排在前面,大的值排在后面。
插入排序

答:插入排序,可以前插入排序,也可以后插入排序。前插入排序主要是

  • 当前节点的后一个节点,跟前面节点比较,如果是比当前元素小则,继续向前比较,如果比前面节点小比当前节点大,则后一个节点与当前节点交互。
  • 遍历所有的元素,都向前插入。最后形成顺序的排序列表。
快速排序

答:快速排序的算法思路:

  • 在排序前设置基准元素,可以是第一个,也可以是最后一个
  • 根据基准元素进行比较,比基准元素大的放右边,比基准元素小的放左边。
  • 按同样的方式递归左边的元素和右边的元素。最后把这些递归结果数组进行合并。使用array_merge

实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟。面试中考过:
1 猴子选大王
2 斗地主项目设计
3 实现随机函数
4 字符串中元素各种变形查找
5 123456 六个数放到三角形三个顶点及中点上,使每条边上的数字和相等
6 一个超大文件里面存放关键,统计每个关键的个数, 问如何实现
7 一个10G的文件,里面存放关键字, 但内存只有10M, 问如何实现统计, 出现关键字次数最高的前100个
8 实现单链表与双链表
9 实现有权重的随机算法
应该就这么多,其他想不起来, 做这些算法需要冷静分析下, 不要轻易说no

二 php 知识
1 说说php的魔术变量, 要能全部说出来.
2 php的设计模式, 要能清晰说出单例, 工厂, 注册模式的实际应用.
3 session与cookie的区别及如何解决session的跨域共享.
4 如何防止sql注入及数据安全问题.
5 php的生命周期, 启动流程, 多看TIPI.
6 php的垃圾回收机制, php变量,数组 c源代码如何实现.
7 fastcgi 比 php-cgi 的优势在哪里.
8 你用过那些框架, 各自有什么优缺点.
9 你是怎么理解php的.
10 php运行模式有几种,分别是什么.

三 网络
1 http code 码含义 比如204, 304, 404
2 apache与nginx对比,你觉得他们各自的优缺点.
3 nginx与php数据通信原理是什么.

4 http1.0与http1.1的区别, http与https的区别.
答: http1.0 和http1.1的区别。 http1.0 主要还是建立连接。相对http1.1来说没有缓存的处理。这样会耗费大量的连接消耗。
http1.1还支持keepalive ,长连接机制。 除了上面的区别还增加了,host的域处理。

  • 支持了keep-alive的长连接机制,可以大量的节省http请求的开销
  • 支持了host主机,1.0 只支持一个绑定一个IP, 而1.1 支持IP地址的虚拟化,可以一次性绑定多个IP字段的处理
  • 100 的状态可以节省宽带,可以在100的宽带请求判断是否需要请求body的数据。 大量的节省http请求数据的消耗。
  • 在1.0 基础上添加了一些缓存的特性。 提高资源的复用效果。 当缓存对象的Age超过Expire时变为stale对象
  • 1.1 增加了Chunked transfer-coding发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个零长度的块作为消息结束的标志。

    5 描述http请求的三次握手.
    6 如何实现跨域请求.
    7 关于header的各种参数的作用.
    8 长连接的优势在哪里.

四 数据库
1 你采用mysql的引擎是什么. mysql innodb与myisam 这两种引擎本质区别是什么, 要能够从底层数据实现来说.
2 mysql 字段类型有那些, 它们在内存能够存储多少字节数据, 比如 datetime timestamp date.
3 在正式服务器上, 如何操作一个存储大数据表上增加一个字段或添加索引或改变数据字段类型.
4 索引最左原则的意思是什么.
5 mysql分库分表策略, 如何解决增表,减表问题.
6 redis与memcached对比,各自优缺点.
7 redis与memcached如何实现分布式搭建.
8 一致性hash原理是什么.
9 mongodb与mysql对比,优势在什么地方.

五 LINUX
1 如何查看服务器负载
2 说说你常用的命令
3 如何统计日志文件中访问次数最多的十个ip地址.
4 源码编译过lamp 或 lnmp 软件吗
5 在当前目录下,如何查找包含keyword文件.
6 如何重启php 或 nginx.
7 进程与线程的区别
8 什么情况下会出现死锁, 如何解决死锁.

六 综合
1 说说你在工作中碰到的难题及如何解决的, 或讲讲你做过的项目中有难度的项目.
2 你能说一下微博的架构流程是什么样的吗? (这个问题我也是醉了)
3 说说你们现在服务器的架构是什么样子.
4 高并发,高流量情况下,如何设计秒杀或抢红包架构.
5 除了php,你还会那种语言

0 人推荐

声明:本文原创发布于加藤非博客,转载请注明出处:加藤非博客 jiatengfei.com 。如有侵权,请联系本站删除。

加藤非博客
请先登录再发表评论
  • 最新评论

  • 总共0条评论