关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。
百度
一面
1、iOS基础知识
2、Python基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。
3、iOS一些源码的阅读
4、优秀的第三方框架源码阅读
5、GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。
6、询问当前做的项目,以及到具体的实现和优化。
7、多进程间的通讯,Binder机制。
8、询问看过哪些框架源码,EventBus,Volley讲了一下。
二面
1、Delegate 、Notification和KVO比较各自的优缺点
2、在一个UI的正中间实现一个正方形的红色视图有几种方式?
3、手触碰到屏幕的时候,响应机制是怎样的?第一响应者是谁?追问 UIView和UIResponse的关系是什么?
4、UIViewController的生命周期是什么?追问 UIViewController 只alloc而没用到的时候,
5、UIViewController 的view是否加载了?如果没有加载那什么时候加载?
直接用UILabel和自己用DrawRect画UILabel,哪个性能好?为什么?哪个占用的内存少?为什么?
6、AFNetworking是否支持ipv6?
7、项目采用64位,为什么要用64位?怎么修改成64位?i386是什么?他们有什么关系?
8、iOS的应用程序有几种状态?追问,退到后台代码是否可以执行?双击home键,代码是否可以执行?
9、一般使用的图标内存为多大?比如200×300的图片,内存应该占用多少比较合理?
10、说说你对内存泄漏的看法,追问,block为什么容易引起内存泄漏?
11、[object copy]是浅拷贝还是深拷贝?为什么是浅拷贝?copy是实现了哪个协议?
12、Images.xcassets和直接用图片有什么不一样?
三面
全是问得iOS方面的问题,问得真的很细,需要基础很扎实,对各个机制真的足够理解,不然确实有点难回答。
1、内存管理方面的
2、多线程
3、各种队列
4、线程锁
5、MVVM
就是考察一下我iOS方面的能力到底是否有水分吧。问得很细,确实需要基础足够扎实才行。