某电话面试技术点记录

 
重新加入到求职大军,感觉时代变了,有点被碾压过去的错觉
之前随便问问就offer的日子没有了
以前:面试造汽车,入职造航母
现在:面试造航母,入职柠螺丝
网上也充斥着各种大厂面试题,大同小异,
有跳槽想法的建议提前看下再做选择,(大佬可以无视)
 
下面是对一次电话面试知识点记录,答案后续添加
 也算对自己的监督
 
本来约的上周,有事耽误了,再约,下午4点开始,大概一个多小时
首先:面试官人不错,好沟通,自我介绍,开始问答
 
0x01.Java基础      
  • 说一说如何理解面向对象的
  • 对多态的理解
  • 说说你知道的设计模式,用过哪些
    • 简单工厂、工厂方法、抽象工厂、 Builder 模式的区别
    • 装饰模式和代理模式有哪些区别
    • 是否能从 Android 中举几个例子说说用到了什么设计模式
  • HashMap,HashTable,HashSet的区别
  • equals 与 hashCode 的区别与联系
    • 如果了两个对象hashCode相等,equals需要相等么
    • 如何处理hashcode相同的情况
    • HashMap存储时候key为什么不建议使用Integer
  • synchronized了解么,可以在什么位置使用
    • synchronized用在静态函数和非静态有什么区别
    • 说下java中有几种加锁方法,介绍下ReentrantLock
    • 说一下乐观锁,悲观锁
    • volatile用过么,简单介绍下
  • 创建线程有哪几种方式,有什么区别
    • 多线程的使用场景
    • 线程的生命周期
    • run()和 和 start() 方法区别
  • 说说对接口设计的理解
  • 说说对泛型的理解
  • 说说对反射的理解
  • java中是值传递还是引用传递
  • java中软引用,弱引用接触过么,介绍下
  • GC机制了解么,介绍原理,新生代和老年代

0x02:网络相关

  • 简单介绍下Tcp/IP
  • 介绍下TCP/UDP
  • 介绍下Http和Https的区别
  • 在浏览器中输入一个 URL 至页面呈现的过程是什么

0x03:结构/算法 (面完后聊了几句)

  • 常用的数据结构
    • lru算法使用的是哪种
    • HashMap使用的是哪种
  • 算法基础
    • 快排/冒泡/二分/
    • 广度优先/深度优先优缺点

0x04:Android相关  

  • 介绍下Android架构
  • 桌面点击一个图标,到App显示的过程
    • 说出中间用到了几个关键类,过程是如何通信的
  • 说对AMS的了解
  • 说对PMS的了解
  • Actiivty的四种启动模式了解么
    • 四种模式的使用场景
    • A跳B,B跳C 再返回,生命周期或者栈情况之类的
    • affinity属性的作用
  • 谈谈对intent-filter的理解
    • intent-filter的匹配优先级规则
  • 说说对Context的理解
    • 一个App中存在几个Context
    • 他们之间的区别
  • 介绍下Android中的广播
    • 几种方式,区别
  • 介绍下Service 和 IntentService
    • 说出使用的重要函数
  • 对进程间通信的理解
    • Android有几种跨进程通信的方式
    • Linux已经存在很多跨进程通信的方式,为什么要使用binder
  • 介绍下Handler
    • 介绍下Handler同步屏障机制(sync barrier)
    • Handler中有Looper死循环,为什么没有阻塞主线程,原理是什么
    • 子线程能否创建Handler,
    • Handler和Looper对应关系,如何保证Looper唯一
    • Handler、Thread 和 HandlerThread 、ThreadLocal 
  • 介绍下ClassLoader,机制
  • 介绍下RecyclerView ,缓冲原理
    •  ListView与RecyclerView对比
    • 使用过程做过哪些性能优化
  • 项目开发做过哪些优化
    • APK大小
    • 内存优化
    • 布局优化
  • 如何发现项目存在内存泄露
    • 如何定位,修复
  • 项目发布操作步骤,手工还是自动
  • App版本更新如何实现,之前项目如何处理
  • Bug如何收集,App如何测试,Bug修复,熟悉的单元测试框架
  • 团队之间如何协作,有用过哪些平台
  • 介绍一个你比较熟悉的开源框架
    • 有看过源码了解过原理么
    • 使用哪种数据结构
  • 你觉得你擅长哪方面?
  • 说说你的优点和缺点?
  • 你还要什么了解和要问的吗?

大体就是这些

 

另外补充一些其他面遇到的问题:

  • 如何保证进程保活
  • 如何做系统加速,结束后台进程
  • 反编译的流程,功能点定位,动态调试,Https抓包
  • 如何提高App安全性,市面上加固的几种方式
  • 广告SDK开发相关
  • Android事件传递机制
  • 自定义View流程
  • 如何打开一个没有在Manifest注册的Activity
  • Apk打包流程
  • Apk安装流程
  • Jni使用,NDK开发流程
  • 介绍下三方开源库,原理,设计模式,数据结构,策略,关键类等  
    • 基本从里面挑(okhttp/retrofit/RxJava/eventbus/glide/leakcanary)
  • 热修复、插件化、模块化、组件化、 Gradle
  • 谈谈对架构设计的理解

 

以上手打面试遇到的些问题点,有很多不清楚的地方,立刻查漏补缺

这只是部分,看到很多总结里,头部大厂面试难度还会上升一个数量级,能不能过,自行斟酌。

博客,Git,开源,新技术都可以加分,

关于知识点,很多博客和git有知识点总结,进阶等文章,可以参考

 

至于面试开头提到的:“面试造航母,入职柠螺丝”的普遍现象,今天和面试官里聊了下

答:“因为现在做android实在太多了…所以大家的面试难度都水涨船高了”

 

理论上知识多多益善,越多越好,越扎实越好,

至于求职者,自己不足,重新回炉。

 

祝大家能找到理想工作

 

一切重头开始

愿我爱的人一切安好

    

 

posted @ 2020-09-15 23:46  wang_xiaohao  阅读(183)  评论(0编辑  收藏  举报