淘天 24秋招 客户端一面

之前牛客上联系的淘天的其他部门,直接发简历给到组内的负责人。被约面试,没有走系统内推,被面试官告知可以不走系统,能拿到offer

个人感觉这种流程不是很可靠,只能先面,后续有无推进都随缘了

面试内容:

算法题:定义一种特殊数对(i,j)满足:0<=i<j<nums.length,lower<=nums[i]+nums[j]<upper;找出特殊数对

发题目到邮件,但是因为太卡了,那个系统写一半就不让继续写了,只能讲述一下思路,归并排序然后递归比较;

  1. Java中Hash Map线程安全如何保证?
  2. 说了HashTable是整体加锁,效率太低,后面改成ConcurrentHashMap,分段锁
  3. 那ConcurrentHashMap性能是否好?
  4. 没太理解面试官想问的点,回答性能很好啊。
  5. 读操作(查询)可以并发执行。不同的线程可以同时读取不同的片段,无需相互阻塞。
  6. 写操作(插入、更新、删除)只会锁定对应的片段
  7. 问Java8之后对ConcurrentHashMap的优化
  8. 一开始没想起来,后来经过提醒想起来了,讲分段锁给换了,不用Segment分段锁,改成CAS+红黑树+链表
  9. CAS+synchronized 实现颗粒度更低的锁
  10. ConCurrentHashmap 每次扩容是原来容量的2倍,而且扩容的时候也能进行读写操作
  11. 那这里面CAS有什么问题?
  12. 想半天,想到了ABA的问题
  13. 还会有自旋的开销
  14. 那如何解决CAS的ABA问题?
  15. AtomicStampedReference 提供的有版本号
  16. 增加一个中间状态
  17. 使用带有时间戳的原子类,AtomicStampedLong
  18. 但是这些其实本质上就是多做了几次比较,能解决ABA问题,那也会有ABABABA这种情况
  19. 为什么直接调用方法和访问字段的性能通常比使用反射更好
  20. 反射需要进行额外的运行时类型检查和解析。
  21. 看你们有做过内存优化相关的,怎么做的
  22. 分两个大的方向,一个是资源优化,比如使用合适的图片缓存策略和图片压缩方式,用Webp这种格式
  23. 另一个就是偏解决内存分析的问题,如内存抖动等等,对内存管理用一些常见的工具监测
  24. 有用过哪些内存监测的工具?
  25. Android studio自带的Memory Profiler,可以查找对象的引用链和内存泄漏情况
  26. 使用 LeakCanary,定位内存泄漏的位置
  27. Java堆方向的分析MAT
  28. 那有没有做过这种内存线上监控,怎么实现?
  29. 没有做过,自己了解可以去实现类APM这种工具
  30. 监测一些内存快照,监测一些关键指标,如CPU使用率这种
  31. Android签名的流程和原理
  32. 密钥对生成:首先,使用 Java 的 keytool 工具生成一个密钥对。
  33. 生成证书请求:使用私钥生成一个证书请求
  34. CA 的签发:将证书请求发送给 CA 进行签发
  35. 开发者使用密钥对中的私钥对应用进行签名
  36. 将 CA 签发的数字证书(即公钥)添加到应用的签名区域中。
  37. 如何生成摘要?
  38. MD5、SHA、base64 的加密算法,在打包时配置build.gradle,在构建过程中自动生成摘要文件
  39. 有了解现目前Android签名有几个版本?
  40. 不是很了解,知道v1,v2,v3,v4(Android 11)
  41. v1是基于基于JAR签名规范实现,使用RSA和SHA-1算法组合签名,存在相对较大的安全,META-INF目录下的文件并不在校验范围内
  42. v2全文件签名方案,Android 7引入的,通俗点说就是签名信息不再以文件的形式存储,而是将其转成二进制数据直接写在apk文件中
  43. v3支持 APK 密钥轮替,这使应用能够在 APK 更新过程中更改其签名密钥
  44. v4 Android 11 将签名存储在单独的 .apk.idsig 文件中,也支持ADB 增量 APK 安装
  45. OpenGL ES的渲染流程
  46. 输入阶段(Input Stage):该阶段负责接收场景数据,包括顶点位置、纹理坐标、法向量等。
  47. 顶点着色器阶段:在这个阶段,顶点着色器对输入的顶点进行处理,执行各种变换操作,如模型变换、视图变换和投影变换
  48. 图元组装阶段,几何着色器阶段(可选)
  49. 光栅化阶段,就是给图元放在对应的位置,就是转成片段(fragement),我们手机上的像素
  50. 片段着色器阶段,对每个片段处理
  51. Tcp的可靠性怎么实现
  52. 面向连接传输,三次挥手,四次握手
  53. 序列号和确认应答
  54. 数据包重传
  55. 滑动窗口,拥塞机制
  56. Android虚拟机是什么?
  57. 早期的Dalvik,现在的ART,编译生成DEX文件
  58. JAR包和APK的区别?性能方向?
  59. Dex文件相当于将多个class文件合并在一起之后再进行压缩,加载类时对dex需要一次IO可以加载很多新类,而class需要加载多次IO
  60. Android是基于寄存器式的虚拟机,直接经由CPU运算,运算的速度就会更快,移动设备本身性能就不行,所以用这个更好,但是带来的包的内容会更大

反问,业务方向,技术方向,流程推进等等

#淘天##Android面经##客户端面经##许愿offer##阿里#
全部评论
是哪个部门啊老哥
点赞 回复 分享
发布于 2023-08-24 16:41 北京
我擦,老哥上个淘天没过吗
点赞 回复 分享
发布于 2023-08-24 16:40 北京
我也是牛客上找的,但是最后其实还是要进系统等
点赞 回复 分享
发布于 2023-08-24 08:40 湖北

相关推荐

05-30 17:32
已编辑
四川大学 C++
bg27届双9,投的是引擎开发,但是被天美客户端捞起来面了。开局手撕三道:1、链表指定区间反转2、和等于k的组合3、最长回文串没什么难度,30min不到写完。之后正式面试环节:1、本硕都是学计算机,为什么想学图形做游戏不去做现在很火的ai。2、你觉得应聘引擎开发需要什么样的能力,你觉得你哪一种能力比较突出。3、讲一下多态。4、构造函数可不可以调用虚函数。5、你说只能调用到当前层级的虚函数实现,为什么?(有点不懂了,扯了些虚函数表)6、你提到虚指针和虚函数表,具体讲一下。7、派生类重写了虚函数,虚函数表是什么样的。(到这里面试官还笑着引导说可不可以回答刚才的问题了,但是还是没太理清)8、new分配的内存可不可以free释放。9、说到内存,静态全局变量和只读的全局变量分别在内存空间的那一部分?10、他们的初始化顺序?11、四种cast。12、线程间通信方式,分别什么场景用。13、平时多线程有接触吗(没有)14、介绍一下简历上的项目。后面几个项目相关的问题。15、设计模式了解多少(说了单例和工厂)16、你写代码题时用了很多vector,为什么(说用习惯了。。)17、你知道清除一个vector最快的方法是什么吗?(还真不太了解,说平时都是调用clear,面完马上上网了解了一下)18、实习时间。19、反问(哪个项目组,天美j1宝可梦)总体来说面试体验非常好,面试官很友善,会由浅入深引导,开局会闲聊一会非技术问题放松很多
查看18道真题和解析
点赞 评论 收藏
分享
评论
5
18
分享

创作者周榜

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