美文网首页将来跳槽用
京东商城面试总结

京东商城面试总结

作者: 齐舞647 | 来源:发表于2018-04-17 01:26 被阅读46次

    京东的小哥哥真的特别好,一开始倒了杯咖啡给我,是京东的杯子。印象很深,非常喜欢。二面的面试官也很友好,聊的很开心,也让我对未来做了一个规划。

    先记一下比较好的题,这篇文章做个补充和总结。

    weak的本质是一个hash表:
    它的key存储的是对象的地址,
    它的value存储的是weak指针地址的数组,而数组元素的count就是引用计数的count,当count为0时,key移除表,指针致空。
    所以用weak可以避免出现野指针的情况,而assign就会出现安全性问题。

    原因:session在ARC下不会及时释放
    原因探究: AFURLSessionManager实现了NSURLSession的协议,即AFURLSessionManager和NSURLSession互相持有,如果这个delegate是week的话,那没什么问题,但是系统提供的是retain:如图


    delegate是retain

    解决方法有两种: 设计成单例 或者 取消tasks,将session对象销毁

    //废弃session对象。cancelPendingTasks决定是否取消此session中的tasks
    –(void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks 
    
    __weak typeof(manager) weak_manager = manager;
        [manager requestWithMethod:method
            URLString:uri
            parameters:param
            success:^(NSURLSessionDataTask *task, id responseObject) {
                if (completion) {
                    completion(YES, responseObject, task.response);
                }
                [weak_manager invalidateSessionCancelingTasks:YES];
            }
            failure:^(NSURLSessionDataTask *task, NSError *error) {
                if (completion) {
                    completion(NO, error, task.response);
                }
                [weak_manager invalidateSessionCancelingTasks:YES];
            }];
    
    • 在不使用AFN等第三方库的情况下,自己用苹果源生API实现一个异步下载图片功能(可以写伪代码,记不清的地方可以大概写一下,仿AFN设计)

    这个我写了一个大概。。流程应该没问题。。。

    • 如果让你自己设计一个缓存框架,你会怎么设计?(仿SD设计:一个下载器,一个缓存器,一个管理者)

    这里主要设计了下载器,和缓存器,
    缓存要设计最大时间清理,以及超过峰值大小,遍历最远没有修改的文件,删除大小为峰值的一半。

    京东的面试过程很愉快,面试官很友好并且很有耐心的引导我走向正确的结果,很感谢,感恩,希望能与京东的面试官和小伙伴们共事。再次感恩!感谢!

    相关文章

      网友评论

        本文标题:京东商城面试总结

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