京东面经、网易有道、360等面经

其实我是2021年秋招的女程序媛,拿了京东的offer。但后面还是选择了老家所在城市的公司。

京东一、二面

流程是两个技术面试,几乎一两天搞定,需要人再面试,只是后面人力谈薪资。

我面了很多家公司,面试的专业知识都差不了太多,《 iOS程序员面试宝典》这本书基本都包含了,网上有很多电子版,当时我怕网上给的不全,还买了个纸质的,现在看来纯属浪费呀。可加我得到资料,在最后边哦。
面多了发现面来面去都是那些题目问过来问过去,当时秋招投了好多公司,做了很多测评,也拿了不少offer,可发现最终也只会选择一家公司,所以我觉得找工作首先得找好自己的目标城市,然后针对性的投递,不然会太累哦。
话不多说,放一点我能记住的面试题。
jingdong的是电话面试,没有编程题。

技术:

1. runtime

2. runloop

3. weak原理

答: 一个全局的weak_entry_t,weak_entry_t * weak_tntries
对象释放流程: objc_release -> 引用计数器为0 -> dealloc -> objc_rootDealloc -> objc_dispose -> objc_destructInstance -> objc_clear_deallocting 才会调用该对象的weak指针数组,将其依次置为nil

4. 三种多线程技术,GCD可以取消队列中的任务么

5. SDK的了解

6. 组件化技术

1target-action方案

优点:
1、内存中不需要维护映射表
2、不需要注册
缺点:1、中间件实现繁琐。
2、中间件方法类型、参数、返回值不够灵活。
中间件方法内部使用字符串来调用方法和类,调用死板。
3、中间件方法内部容易写错,编译没问题,而实现运行就出问题了,维护不方便。

2url-block方案

优点:统一了ios和安卓平台差异性,以及h5和app的交互都可以使用该路由。
缺点:1、需要在内存中维护url-block表,组件多了可能会有内存问题。
2、url的参数传递受到限制,只能传递常规的字符串参数,无法传弟非常规参数,如UIImage、NSData等类型。
3、未区分本地调用和远程调用的情况,尤其是远程调用,会因为url参数受限,导致一些功能受限。
4、组件本身依赖了中间件,且分散注册使的耦合较多。
5、url注册查找不够高效,且维护不方便,编译没问题,运行出错难于找错。

3protocol-class

1、解决了无法传递非常规参数的问题
2、组件间的调用更为方便
3、解耦代码量少,实现方便,以后维护也方便。
4、协议方法改变后,编译就会报错,避免代码个性遗漏。
5、协议方法未实现的话,会报编译警告。
6、方法查找容易,调用高效。
缺点
1、内存维护映射表
2、组件的方法调用分散
3、组件协议需要注册,不注册就无法调用。

4url-controller

7. block类型,为什么用__weak修饰了就不会循环引用了

8. 性能优化做了哪些


问的挺多的,记不了多少了。几乎都包含在面试书里。


我现在在这里,可投递加我得资料哦。
万兴科技,全国同岗同薪,在长沙等城市工资很有竞争力哦

校招内推投递链接:

https://www.wondershare.cn/join-us.html

内推码:NTAHBfC

投递后,可加VX,交流面经、查询面试或者是聊聊公司都可~ 18072530104

#万兴科技##内推##校招##秋招#
全部评论
万兴科技2023提前批来了,只发SP,赶快来吧内推码 NTAHBfC
点赞 回复 分享
发布于 2022-05-27 18:30
哈哈哈,又搜到了你的
点赞 回复 分享
发布于 2021-11-13 10:00

相关推荐

1、自我介绍2、项目拷打3、GMP 模型的调度流程(追问:M 如何与 P 绑定?P 的本地队列满了之后怎么处理?G 的抢占式调度是怎么实现的?)4、Go 的垃圾回收机制(三色标记法+混合写屏障,GC 的触发条件有哪些?)5、MySQL 的 redo log、undo log、binlog 的区别与联系(追问:三者的写入时机?崩溃恢复时的执行顺序?binlog 的两种格式(statement/row)区别及适用场景)6、MTU 的作用,数据包怎么分片(追问:MTU 的默认值(1500)、分片后的数据包如何重组?IP 分片和 TCP 分段的区别?)7、Protobuf 如何序列化数据,为什么比 JSON、XML 好(追问:Protobuf 的 TLV 编码细节?Varint 编码对负数的处理?proto3 相比 proto2 的优化)8、容器编排相关(追问:K8s 的核心组件有哪些?Pod 的生命周期及重启策略?Deployment 如何实现滚动更新?K8s 的 Service 与 Ingress 的区别?)9、Go 的 channel 实现原理(追问:channel 的底层数据结构?无缓冲 channel 和有缓冲 channel 的读写规则?关闭 channel 后读写会发生什么?)10、分布式一致性协议(Paxos/Raft)的核心思想(追问:Raft 如何解决 Paxos 的复杂性?Leader 选举的流程?日志复制的机制?网络分区后如何恢复?)11、哈希表的底层实现(追问:Go 中 map 的哈希冲突解决方式?map 的扩容机制?如何实现并发安全的 map?)12、TCP 的拥塞控制算法(追问:拥塞避免、快速重传的流程?BBR 算法相比 CUBIC 的优势?)13、分布式链路追踪如何设计14、数据库索引的底层结构(追问:InnoDB 的 B+ 树索引和哈希索引的区别?聚簇索引和非聚簇索引的区别?索引失效的场景及原因)15、Go 的接口实现原理(追问:iface 和 eface 的区别?接口断言的底层逻辑?空接口能存储 nil 吗?为什么?)已经凉了,反问阶段直接放弃了,说没啥想问的,面试官暗示说,不希望你浪费掉这次宝贵的面试机会,有啥想问的就问问吧,G
查看15道真题和解析
点赞 评论 收藏
分享
11-25 12:25
门头沟学院 Java
1、项目介绍2、new一个hashmap和new一个hashmap(16)在底层执行时,空间分配上有什么不同吗3、hashmap是线程安全的吗,多线程时,举例说明在什么条件下会出现死循环4、多线程在扩容时,会发生线程之间相互覆盖的现象吗5、现在让你选择一个性能比较好的线程安全的hashmap,你会选择哪个6、你刚刚提到说读不加锁,那如何保证不脏读呢,如何保证可见性呢7、加了可见性的话,对性能有影响吗8、concurrenthashmap如何保证扩容时的线程安全9、现在让你设计一个线程安全的list,用来存储配置数据,读多写少,你会选择什么样的list(用已有的,或者改造一个list)10、如果读写比一样呢,读多写也多的情况11、你提到用CAS,CAS一定好过锁吗12、你说加细粒度的锁,能细到什么程度,如果我要给链表尾插入数据如何加锁,在链表头插入数据如果加锁13、b+树做索引的优势14、怎么判断是不是用的我们设计的索引15、索引失效16、你说到数据量比较少的情况下会全表扫描,那数据库如何判断数据的多少从而决定索引方式呢17、你用的引擎是行存还是列存,他们分别的优劣势18、讲实习,你的压缩线程如果挂了怎么办,有没有做一些线程的状态的监控19、手撕:快排20、复杂度是多少21、最坏复杂度在什么场景下出现,我们可以如何优化这种场景22、有了解过jdk本身的sort排序吗23、快排和其他排序比起来有什么优势吗,是稳定排序吗24、闲聊、反问
查看23道真题和解析
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务