网易严选iOS开发一面 4.14 约40min
一. 写在前面
我发现了,只要你不写iOS开发的相关经历,就不会问...为什么不写呢?因为我根本不会...
二. 非技术问题
1. 自我介绍
2. 项目经历
最好严格按照STAR原则进行叙述,但是面试官似乎也没有多问我具体的细节,可能根本没有听懂我在讲什么...
3. 学习中遇到困难
可以挑自己在平时写小项目时遇到的困难来说,最好要具体一点,还要说解决方法。我tm作死地说了数字电路与逻辑设计这门课学起来有困难,然后面试官好像很感兴趣?就追着我问学数电有啥困难,我哪知道啊,我啥都忘了!!
4. 学到的知识的体现
请挑你比较熟悉的内容来说,比如数据结构与算法、操作系统什么的。我又一次作死,回答了计算机系统基础,然后就有了下面的展开...(我计组的知识忘了很多,主要自学了操作系统和计算机网络这两门课...)
三. 技术问题
1. 程序执行的过程
-
代码编译成可执行文件后,静静地躺在硬盘中...
-
操作系统要执行它了!
-
首先,操作系统运用虚拟内存技术为进程创建虚拟地址空间,用一个页表把硬盘中代码/数据的位置(程序所占的地址空间被分为一个一个的页)记录在表中;
-
其次,加载器loader找到程序(指令)的入口地址(还是虚拟地址);
-
然后,CPU查询页表,试图把虚拟地址映射成物理地址。如果页表查到的地址还是指向硬盘,就把程序加载到内存中,再通过页表的翻译,定位到物理内存的地址;
-
最后,进程结束,内存中的数据会被清理、覆盖,程序还是静静地躺在硬盘上。
-
2. 动态链接和静态链接的区别
我是真不会,请参考https://www.cnblogs.com/tracylee/archive/2012/10/15/2723816.html。
3. TCP协议的特点
4. TCP三次握手过程
5. TCP拥塞控制的方法叙述
-
慢开始和拥塞避免(balabala随便讲了一通)
-
快重传与快恢复(我没回答出来)
6. 虚拟内存技术简述(分页和分段)
四. 总结
没有当场写代码,可能看我太菜了,没有问的必要了...面完以后跟我说回去好好回顾一下今天问的基础知识...操作系统这块还是要结合计算机系统基础来学习比较好,因为结合得非常紧密。计算机网络的话应用层、运输层、网络层要好好复习,特别是运输层...但是网络层也不能不看,因为冷不丁地就会问到。非技术问题一定要好好准备啊,要有一套自己的答题模版!
全部评论
(4) 回帖