大咖面试-第二期

作者: 强子ly | 来源:发表于2018-06-13 12:09 被阅读229次

    一、上海青客

    1、UIView 于 CALayer 的区别
    2、页面布局的方式
    3、如何优化TableView的流畅性
    4、OC与JS交互所用的方式,并简述一下
    5、列举常用的设计模式,并说明使用场景
    6、列举数据持久化的几种方式,及优缺点
    7、数据库读写中用到的多线程是什么?多线程如何同时操作一个数据库
    8、多个线程读取数据如何保证不出错
    9、2个app间通讯(调用)方式,及两个app间如何进行数据传输?
    10、block与函数有什么区别,block的优点有哪些?声明一个block及实现
    11、使用swift3.0写一个单例


    二、易车网(2017)

    1、讲一下你们的项目结构

    • 使用的设计模式
    • 对比其他项目有什么新的技术
    • 非功能性模块有哪些

    2、MVC设计模式中C层需要做哪些工作,对MVVM的理解以及对比MVC中C层中功能拆解位置划分
    例如:对于MVC中C层中数据处理转为MVVM是所处的位置VM层还是M层(胖瘦Model的问题)
    3、view的frame和bounds.当对view进行旋转之后frame以及bounds有什么变化
    4、UIView和CALayer的关系以及各自的继承关系.
    5、iOS中的事件响应机制(response Chain)
    6、TCP,UDP有什么区别,讲解一些对于Socket的理解
    7、Decorator模式与Category,给类添加方法(继承,Category和Runtime添加)
    8、动画的种类和实现过程(basic动画,keyFrame动画,Spring动画)

    9、Block

    • 根据在内存中所处的位置有哪几种(global,stack,heap)
    • global和stack类型的区别
    • 能不能将block添加到数组或者字典中,会有什么问题

    10、RunLoop

    • 解释一下RunLoop
    • RunLoop有几种状态
    • RunLoop的mode有什么作用
    • RunLoop与线程之间的关系
    • 系统是怎么实现RunLoop的mode切换
    • NSTimer与RunLoop的经典问题 怎么解决
    • RunLoop的mode切换需要做什么(自定义的异步线程)PS 可能跟source1和source0有关

    三、(滴滴架构师:孙源sunny)DynamicCocoa项目招聘

    WechatIMG1408.jpeg

    四、广州某公司面试题(2018.07)

    简答
    1、使用NSLog函数输入一个浮点类型,结果四舍五入,并保留一位小数
    2、在一个对象的方法里面:self.name = “object”, 和 name = “object”有什么不同
    3、定义属性时,什么情况下使用copy, assign, 和 retain
    4、简述object-c内存管理机制,并简述什么时候由你负责释放对象,什么时候不由你释放
    5、Object-c的类可以多重继承么?可以实现多个接口么?

    程序设计
    1、求n个数的和 1/2 + 1/3 + 1/4 + … + 1/n
    2、求第N个数是多少 1,1, 2, 3, 5, 8, 13, 21
    (a)可用一个数组,把n个数都保存在数据中从而求第n个数
    (b)用多个变量循环求第n个数
    (c)用递归求第n个数
    3、请走完程序,求出数组中,连续几个数字相加和最大

        int num[12] = {2, 7, -10, 8, 22, -2, 13, -9, 5, 3, -8, 7};
        int sum = 0;
        for (int i = 0; i < 12; i ++)
        {
            int temp = 0;
            for (int j = i; j < 12; j ++)
            {
                ____________
                ____________
                ____________
            }
        }
        printf(sum);
    

    算法题
    1、一个农夫,买了一头小牛,这头小牛成长到第四年开始,会每年生一头小牛,所出生的小牛成长到第四年开始,也会每年生一头小牛,请问N年后,农夫共有多少头牛。(请写出代码实现)。
    2、一个文件中有40亿个 不重复的 unsigned int 整数,没有排过序的,如何快速判断某个数是否在那40亿个数当中?描述关键代码或者主要思路即可。
    3、有一个玻璃瓶,里面装了若干糖果。两个人轮流拿,每次只能拿1-3颗。如果让你先拿,你有什么策略保证,每次都能拿到最后一颗。


    五、一个不知名的公司面试题

    基础题
    1、二选一(20%)

    • 利用rand5 生成 rand7(randN等概率随机输入1、2、…、N)
    • 单次批量生成100个不重复的 0—200的随机数(即不可逐个记录已选出的数)

    2、二选一(20%)

    • 判断一个链表是否有环,并定位环的位置
    • 单链表原地逆制,不使用递归,复杂度O(n)

    编程题 (60%)
    快速、归并、堆排序(三选一)


    六、某公司二面

    1、写二叉树的先序遍历,然后用非递归写
    2、写快排,并分析原理
    3、http协议
    4、http为什么底层是tcp不是udp ?
    5、tcp是基于流式传输的,怎么设计协议,进行协议的解析?
    6、tcp为什么要进行三次握手?不是2次,4次?
    7、抓包工具的原理是啥?
    8、socket异常断开时,设计一个合理的重连机


    七、

    1、说下线程和进程的区别
    2、如何保证线程安全
    3、写个算法,输出2~100的素数(然后问你怎么优化,还可以怎么优化,然后还可以怎样优化.....)
    4、了解哪些设计模式
    5、MVC设计模式的思想是什么?在项目中的运用,然后对比MVVM设计模式
    6、堆和栈的区别,工程项目中的哪些数据是储存在堆哪些在栈中
    7、iOS中的NSCopying协议,copy,MutableCopy的区别
    8、解释属性修饰关键词的作用(weak,strong,copy,readOnly,assgin,nonatomic等)
    9、最近看过哪些书?目录结构是怎样的?哪部分内容印象最深?了解过作者吗?
    10、你还有什么问题问我?


    八、

    1、解释一下keywords的区别:assign weak __block, __weak
    2、__block在arc和非arc下含义相同么
    3、使用atomic一定是线程安全吗
    4、描述一个你遇到过的retain cycle
    5、+(void)load; +(void)initalize有什么用处.
    6、为什么其他语言里叫函数调用,oc里则是给对象发消息(或者谈一下对runtime理解)
    7、什么是method swizzling
    8、UIView 和 CALayer的关系
    9、如何高性能的给UIImageView加圆角
    10、讲讲你用Instrument优化动画性能的经历
    11、loadView是干什么用的。


    九、一个2015年的老篇面试题

    1、什么是arc?(arc是为了解决什么问题诞生的?)
    2、请解释以下keywords的区别: assign vs weak, __block vs __weak
    3、__block在arc和非arc下含义一样吗?
    4、使用atomic一定是线程安全的吗?
    5、描述一个你遇到过的retain cycle例子。(别撒谎,你肯定遇到过)
    6、+(void)load; +(void)initialize;有什么用处?
    7、为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)
    8、什么是method swizzling?
    9、UIView和CALayer是啥关系?
    10、如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)
    12、使用drawRect有什么影响?(这个可深可浅,你至少得用过。。)
    13、ASIHttpRequest或者SDWebImage里面给UIImageView加载图片的逻辑是什么样的?(把UIImageView放到UITableViewCell里面问更赞)
    14、麻烦你设计个简单的图片内存缓存器(移除策略是一定要说的)
    讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)
    15、loadView是干嘛用的?
    16、viewWillLayoutSubView你总是知道的。。
    17、GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?
    18、用过coredata或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?
    19、http的post和get啥区别?(区别挺多的,麻烦多说点)
    20、我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree? search的时间复杂度是多少?我很想知道!

    相关文章

      网友评论

        本文标题:大咖面试-第二期

        本文链接:https://www.haomeiwen.com/subject/atfjeftx.html