您的位置:首页 > 其它

范师兄的面经

2015-08-06 21:51 260 查看


新浪

php spl

autoload

file_get_contents

判断两个数组$a、$b

tp 和Smarty的区别

linux 命令查看Apache打开的端口

apache和nginx区别

...


京东

笔试大题:

输入整数n,求m,m>9,m中各个数位的乘积=n的最小整数;如n=36,m=49;

二叉树前序遍历的非递归实现(本文的总结)

求第n个数,这个序列满足(2^i)*(3^j)*(5^k),前7个为:2,3,4,5,6,8,10...

整体不是特别难,除了第三道附加算法题时间没来得及做,其他两道和选择题自我感觉还不错

一面:

PHP有多线程么(没有,但可以通过其他方式实现),怎样理解PHP

对于静态页面文件,是放在ngnix端,还是Server端 (ngnix处理静态页面性能比apache要快三倍以上,所以直接放在ngnix)

php写接口,通信方式,socket、http通信实现

两台计算机如何通信,浏览器输入url后,一直到页面呈现,中间服务器都经过了哪些流程

用php做客户端接口应注意什么问题(数据加密、json传输等)

json格式数据有哪些特点 (并不能保证安全,对于所有语言都是统一的key-value处理规范)

验证码安全,google破解其他站点

md5怎样逆置,其他加密方式的加密、逆置原理

验 证码的原理。验证码的实现原理,如果验证码是存储在服务器session,那如果正在输入的时候,服务器与客户端断开连接,又连上去(session已经 失效),提交后怎样判断验证码正确性(在客户端js中构造和服务器端相同的sessionid,提交时与服务器端sessionid匹配)

数据库主键怎样理解,它是索引么

建立数据库应该注意哪些(表冗余、主键、外键、索引、字段...)

数据库事务是什么

如果正在下单状态,将用户银行卡状态修改为正在使用状态1,下一步付款、修改订单状态时,突然断网怎么办 (面试官期待答案:不是马上回滚,而是在这个地方尝试重试几次,若还不成功就rollback)

请求量比较大时应从哪方面优化提高性能(缓存、页面静态化、sql优化、表结构、水平分割、垂直分割)

Linux常用命令 (文件操作命令、vim命令、系统命令)

Javascript和jquery的区别

学校活动、个人性格、工作地域调整、薪资等...


腾讯后台开发面

2.core文件是什么,有什么用?

答:程序崩溃以后,会把最后的栈信息存在core文件里,方便程序员了解程序崩溃前最后的栈信息。

追问:如果程序core了,但没产生core问价,是何原因?

答:没有打开core文件生成的开关。ulimit -c unlimit

追问:不用core文件,程序出了问题产生信号是否知道?

答:当时蒙了,现在回想起来,就是内核向进程发信号嘛。没答出来。

3.共享内存,不使用同步方式,是否可以安全读写?

答:这一题答偏了,不知怎么扯到fork上去了。这一题应该是不行,共享内存属于临界区,应该要同步,否则两个进程同时操作一个内存区就出问题了。可以使用读写锁来同步。

4.fork后,子进程保留了父进程的什么?

答:子进程的内存区是父进程的副本,堆栈等都会继承过来,还有打开的文件描述符等。其实还有很多,比如实际用户ID,有效用户ID,当前工作目录,存储映射等等。

5.共享内存除了文件映射还有什么方式?

答:共享内存对象映射。

追问:二者有什么区别?

答:不知道。

6.tcp怎么实现流量控制?

答:对端告知窗口大小。本端传递的数据量小于窗口大小。(更好的说法是告诉对端本地的窗口的大小,对端传递的数据量必须小于该窗口)

追问:怎么告知窗口大小?

答:在ACK的报文里。

7.编程题(没搞出来,诶~)

问:一个超长字符串表示的十进制数(大于2^32),转化为十六进制的字符串?


赶集网面试总结

面试渠道:小伙伴 @蔚然 内推技术实习岗

面试时间:8月14日 下午13:30

第一面:

面试方式:2对1 (技术leader和前端负责人)

过程叙述:

问的问题很广,php方面、算法数据结构、设计模式、前端、数据库、Linux等。

内容大概有:

当字符串为null时,isset和empty的区别

==和===的区别

PHP魔术方法有哪些,作用是什么

用过哪些数组函数,array_merge、in_array的作用

常见的排序算法和查找算法有哪些,数据结构的树、链表、堆、栈,是自己实现过还是只看过

说一下快速排序的最好和最坏时间复杂度 (nlogn n的平方)

简述快速排序的原理 面试前最好先熟悉一下常用算法和数据结构,另外不可忽略了时间复杂度

二分查找的原理和时间复杂度(logn)时间复杂度第一次回答错了

你熟悉的设计模式有哪些,手写一个设计模式(当时我写的是单例)

数据库中的索引有哪些,数据库引擎区别(MyIsam和InnoDB)

叙述联合索引,和主键的区别(把主键和索引搞混了,囧..)

数据库表优化方法,建表的注意事项和原则,常见数据库字段类型

sql注入有哪些,如何有效防止

用过哪些缓存技术,thinkphp的缓存是局部缓存 还是完全缓存

Cookie和Session区别

禁用Cookie后,Session还可以用吗,有什么解决方案

常用Linux命令(我当时从文件操作和vim两方面回答)

是否了解ngnix,和apache作用相同

常见apache配置是否熟悉,apache中的rewrite作用

php开发过程中用过哪些编译器(eclipse、phpstrom、zend,一般的sublimeText)

对前端的html、css、js是否熟悉,用过哪些前端框架

第一面结束后问了有什么问题,我问了公司开发过程中使用的技术架构(lnmp)。然后然我等一下,当时心情比较放松,因为感觉除了数据库方面回答不太流 利,其他都还可以。在会议室正纳闷接下来会发生什么,一会儿来了一个气场十足的大牛。接下来的面试有点紧张...

第二面:

面试方式:1对1

过程叙述:

问的问题很深,感觉平时做项目太偏应用,底层的知识比较欠缺

内容大概有:

解释了一下为什么大学是五年制(囧,每次回答这个问题都要从很古老的一段伤心往事说起)

平时学习的渠道(我说刚开始基础是从书上学习,后面都是项目驱动,然后人直接说了项目驱动的弊端...)

索引的最左前缀原则 (有点熟悉,好像在哪看到过,但是真想不起来了)

为什么要用ThinkPHP,和直接写php比有哪些优缺点

是否阅读过tp源码

既然学习thinkphp,解释一下tp中的hook机制吧(只在新版本更新时候看过,不太熟悉啊,紧张...)

什么是reset ful (呃...这是什么,真心不知道)

解释一下php中的fastcgi,那cgi是什么,cgi和fastcgi的区别 (不太熟悉,唉,硬着头皮上吧)

刚才第一面问过你设计模式了,什么是共享模式 (晕啊,设计模式那么多,好紧张,想不起来了)

解释一下PHP的namespace

你平时开发用的php版本是什么 (顿时好轻松,5.5啊)

你之前做过产品经理,你是怎样理解产品和技术的,你想做技术还是产品 (啊,这个好,论述题,看我的)

平时工作强度比较高可以承受吗 (当然,我们这有正常周末的)

聊了一些比较轻松的话题,后面才知道这一面是故意这么难的,考验技术深入的程度,真是惭愧,顿时觉得会的东西好少,确实最近复习方式和时间安排都有点 乱,还有一些其他的事情让人整个状态比较浮躁,也比较紧张,不再状态,回去好好恶补一下。最后大概说了一下实习薪资是XXXX比较少,我说不介意,然后说 如果我这边都ok的话,回去等hr电话。

面试过程总共将近两个小时,结束后又和小伙伴聊了一会儿。大概是下午4点多回到家的,没想到赶集很有效率,我还在思考下午面试的怎样,刚到家没一会儿 hr妹纸就打电话过来了,一个比较好听的声音说面试通过,问了什么时候入职。其实我没打算工作,还想着面试完再去其他地方转转,增长一下面试技巧。先答应 着吧,人说下周一和周三什么时候可以入职,我说周三,再容我休息几天嘛。接下来回复offer,心情比较纠结,到底去不去,想想现在也没什么事,就先实习 着再继续准备校招吧。准备入职材料。


百度

笔试题型

百度技术岗的笔试题,是每个大部门自己出题的,所以,每年笔试完都会有数套笔试题在网上流传。

考察面主要包括:

1. 基本要求

语言(主要是C/C++)、计组原理、操作系统原理、计算机网络。如指针运算、字节对齐、函数调用栈帧结构、内存管理、进程调度、网络协议七层模型等。通常以问答题形式出现。

2. 数据结构及算法

查 找(典型如二分查找)、排序(典型如快排、外排)、树(典型如2叉树的前/中/后序遍历、trie树)。人品好的话,是题目明确告诉你"请写出2叉树中序 遍历的算法伪码并分析复杂度",这种题目还算简单。不走运的话,题目相对抽象,比如"给定一个存放几亿个整数值的文件,设计一种算法,在满足xx空间复杂 度或xx时间复杂度的前提下,对这些整数做xx处理",这种题目是比较难对付的。所以,大家要有心理准备。这部分通常是写算法伪码。

3. 系统设计题

文字描述一段实际的业务场景,要求设计一个系统,能多快好省地实现xxx功能。

这种题目比较发散,通常,大部分校招学生对这类设计题都不可能有啥经验。基本是凭借自己对系统,尤其是计算机组成原理或操作系统的理解,触类旁通,自由发挥,做到有理有据,逻辑严谨即可。这类题目的考察点通常也不是某个标准答案,而是你分析实际问题的能力。

如何准备笔试

虽然笔试的内容通常都是平时积累的知识 但也不可忽视"考前突击"的重要性

1. c/c++

推荐教材:c programming language (C语言缔造者写的教材 短小精悍 甩谭浩强叔叔几十条街)、c++ primer、effective c++

2. 计算机系统

不清楚交大的教材是那本,学叔自学时用的教材:

《深入理解计算机系统》 英文名:Computer.Systems:A Programmer's Perspective

《现代操作系统》 英文名:Modern Operating Systems

3. 数据结构及算法

当年交大用的教材是清华严蔚敏教授的《数据结构》C语言版

找工作前,学叔也是用这本书复习的

当然,如果有牛人在啃MIT的《算法导论》或 Donald E.Knuth著的《计算机程序设计艺术》,那算法这块知识点应当没啥大问题了

4. 临时抱佛脚的面试题

前面3条列出的资料,都是需要一定时间来消化的。现在从零开始的话,时间显然来不及。所以,学叔这里给出一些资料,权当抛砖引玉。

1)《编程之美》微软技术面试心得

该书总结了互联网公司经常用到的几十种典型算法题,绝对值得好好研究,相比之下,程序员面试宝典之类的国产快餐,就是一坨翔。。。

2)csdn博客—结构之法 算法之道

google或百度搜索"结构之法" 第1条搜索结构点进去就是。该blog的博主为算法牛人,建议有兴趣的同学去围观其中的面试算法题。

此外,该算法大牛的新浪微博号是研究者July,最近在搞面试算法题讲座,可以去关注。


校招准备

阿里笔试:8月25日
百度笔试:9月27日或10月12日
腾讯笔试:xxx

《剑指Offer》
《程序员面试宝典》
《大话设计模式》
《零基础学算法》前五章
《编程之美》
csdn博客—结构之法 算法之道

《PHP求职宝典》
《C和指针》
《Redis入门指南》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: