• 如何避免线程锁死

  • 手写单例,如果在不使用锁的情况下创建单例并保证单例安全性

  • handler原理,子线程可以创建Handler吗?

  • 内存泄漏与内存溢出的区别

  • 有没有做过安全性能检测的项目

  • 原生与H5如何交互,传参数?

  • 用过哪些算法?

  • 如何在服务中启动一个耗时操作

  • Activity的启动模式

小米面试

  • 介绍一下binder和原理

  • measure layout draw流程,滑动冲突

  • 常用的多线程工具类。blockingqueue ,concurrenthashmap,信号量,countdownlatch,cyclicbarrier,exchanger等,stringbuffer

  • stringbuilder 和stringbuffer区别

  • lock和syncrognized原理区别,适合什么场景。

  • 实现生产者,消费者

  • handler原理,是如何实现延时的。

  • 一个activity启动另外一个activity的生命周期。

算法题:

  • 反转链表

  • 归并排序

  • 快速排序

  • feiboqiena数列

  • 二分查找

  • 两个队列实现栈

  • 两个栈实现队列

  • 判断链表是否成环,找到成环的交点。

顺丰面试

  • 使用过hook技术吗?谈谈理解。

  • 谈谈对android虚拟机的理解。

  • 有做过推送相关吗?原理有去了解过吗?

  • 谈谈startActivity的流程。

  • 谈谈对自定义View的理解。

  • 谈谈binder的理解。

  • 你知道数据库有哪些,android sqlite存储数据的上限大小是多少?

  • 谈谈TCP与UDP的理解。

  • Java的引用。

  • GC算法

  • 谈谈对android应用的理解。

手百3轮面试

一面

  • 为什么工作一年就想换工作?

  • onTouchEvent/onTouchListenr.onTcouchEvent/onClickListenr

  • hashmap的原理?

  • java的hashcode和equals的区别

  • java的gc了解多少?

  • kt的伴生对象是饿汉模式还是懒汉模式?

  • handler.postDelayed的原理

  • ANR怎么产生?怎么捕捉?

  • 智力题:桌子上有101块饼***拿先手,他拿后手,你需要怎么赢

  • tcp 三次握手/四次挥手, 为什么要三次握手,四次挥手?

  • 内存泄漏是什么?怎么找?

  • 算法题:斐波拉契数列,递归的方式怎么优化?

二面

  • 手淘这种大型app是怎么迭代起来的?

  • 你对小程序的原理了解么?

  • v8binding怎么做?

  • 你项目的价值是什么?

  • 图片缓存怎么做?你要设计一个图片缓存框架怎么搞?

  • lrucache怎么实现?为什么是o(1)的时间复杂度?

  • voliate 关键字解释下?

  • voliate 关键字不能实现什么?

  • https解释下

  • 常见的对称加密算法和非对称加密算法有哪些?

  • 让你设计一个打点系统怎么做?

  • 如果进程被杀死或者切换后台,数据如何保存丢失?

  • 你怎么设计埋点系统一个线程模型?

  • 快速排序?快速排序是稳定的么?

  • 如何实现一个快速排序的稳定性?

  • minstack怎么设计?

  • kotlin和java混用有哪些问题?

  • 设计一个数据结构,微博里面有人发了文章怎么实现?关注怎么实现?

  • 微博里面有人发了文章,关注的人如何获取最新的10条?如何获取关注的人的文章的最新1000条?设计一个高效的算法

三面

  • 你为什么选择换工作?

  • 你组里面的人都怎么样?

  • 你怎么解决项目中的难点?

  • 你有工作中遇到过哪些比较麻烦的地方?

  • 你平时怎么学习的啊?

  • 你除去学习之外都看什么书?

网易2轮面试

一面

  • HashMap扩容原理,为什么要2的指数幂容量,如果输入17会是多少容量?

跟HashCode有关系,如果输入17,会向后达到2的指数幂,32。

  • CurrentHashMap 读写锁是如何实现的?

如果没有hash冲突的情况下,使用CAS进行插入,如果有hash冲突,使用synchronized加锁进行插入。当链表长度大于8且数据长度>=64时,会使用红黑树替代链表。

ReentrantReadWriteLock类中有readLock()和writeLock()方法可以分别获取WriteLock和ReadLock对象,调用他们的lock方法,就可以实现读写锁。实现原理就是AQS的acquire和acquireShared方法。

  • List加锁要如何加?

二面

  • app优化 内存优化 cpu使用率优化

  • 如何设计一个类似于微信朋友圈的首页的功能,UI 数据等方面

  • 如何设计一个无限数据的气泡显示聊天内容

  • 5个G数据,如何在500M内存的情况下实现排序

  • 大文件在传输过程中要考虑哪些问题,如何保证大文件的一致性

  • JSbridge 是如何实现js和native联通的

  • 如何做到单个信号源,多个页面响应

一些高频重点问题

  • APP性能优化 内存优化 cpu占用率 流畅性等,考虑一下如何评价一款app的性能,如何监控线上app的性能问题

  • 多线程同步Sync和Lock实现原理

  • HashMap ConcurrentHashMap实现原理 链表转红黑树的条件,扩容原理,ConcurrentHashMap线程安全原理、如何做到性能好

面试总结

讲一下大厂面试一些必备的技能

1. 一般情况下第一轮都是基础面试,需要扎实的基础

  • 最常用的Android 基础知识

  • Java 基础知识

  • 了解一些 常用东西的原理,例如:handler, thread 等

  • 项目中的技术点

2. 第二轮的时候需要了解更深层次的东西

  • Android 事件分发机制原理

  • Android 绘图机制原理

  • WindowManager 的相关知识

  • 进程间传输方式

  • Java 内存管理机制

3. 能进入第三轮基本没什么问题,但是要注意以下问题

  • 该轮一般是 老大或者部门负责人,问的问题一般都看 深度与广度

  • 当问及薪水的时候,要说一个合适的,小公司随意,大公司一定要慎重,当心里没底的时候,可以告诉对方,让对方给一个合理的薪资。一般都是在原工资基础之上增长,听猎头说一般涨幅都在15%-30%,超 NB 的可以要30%及以上,如果感觉自己还不错的,挺厉害的,建议最高20%,一般人就定在15% 左右最靠谱。公司内部一般有一套机制,根据公司情况而定。

  • 我们的面试原则就是拿到合理薪资,得到 offer

  • 个人发展情况,这个问题很难回答,如果和公司方向不符合,极有可能和公司无缘。建议多试探性的问问公司缺少什么,你能否给予公司对应的东西。当然对于有自我追求的人,那可以放心大胆的提。我的方向就是架构师,哈哈哈,挺极端的,别学我哦。我感觉选择都是双向的,因此我知道自己需要的是什么。

  • 你最擅长什么UI 还是其他什么?这个问题更不好回答。你要说你擅长 UI,是不是意味着你其他能力就不行?虽然我不知道面试官的用意,但是我能感觉到,这个问题不是那么好回答,我会回答说自己都行,来什么业务接什么需求。可能回答不太好,总之和公司的职位吻合就行,这样总不至于出错吧。

最后

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

习到了哪个阶段就好。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

3.项目复盘

实际上,面试的一二轮所问到的技术问题,很多都是围绕着你的项目展开,因此在面试前最后要做好的一件事情就是项目复盘。关于项目复盘,我个人的思路如下,可供参考:

  • 你在这个项目中承担了什么样的角色?

  • 这个项目的背景是什么,如果是技术项目,为什么要做?

  • 有哪些技术难点,是怎么解决的,是否还有更好的方案?

  • 你认为项目中是否有可以改进的点?

  • 这个项目解决了什么问题,最好用数据说话,这个数据又是怎么得出来的?

提前把思路捋一捋,上面这些问题好好思考或准备一下,做到心中有谱以后,自然能够面试官聊得融洽,保持一个好的心态,通过的几率就会更大一些。

一个Android开发6年程序员的年终面试总结,2021无畏艰难险阻,迎风潇洒前行相关推荐

  1. 一个七年Java女程序员的年终总结,写给过去一年的自己

    简单先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少), 推荐一个Java学习资料群 ...

  2. 一个5年Java女程序员的年终总结,写给过去一年的自己

    简单先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少),其中成功的有4家,另外两家失 ...

  3. 制作一个“生日快乐”App,来自程序员的生日礼物~

    点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 之前给大家制作了一个来自程序员的表白神器,本期带大家做一个"生日快乐" ...

  4. 一个即将30岁Java程序员的自诉,在内卷的大环境之下迷惘的大龄程序员该如何破局?

    就是想写点什么 不知不觉自己即将步入30岁,到了很多人口中的中年,有时候一直在回想,这些年自己到底做了些什么,留下了些什么? 步入社会 毕业 2015年7月我从一个90%以上的人都不知道的二本院校毕业 ...

  5. 超级好用的开发工具,程序员实用工具整理

    其实本来打算写的是web开发工具合集,但写着写着觉得不太过瘾,所以索性把所有用得到的工具都列出来了. 如果能在一开始就把这些工具利用起来,相信可以大大提高工作效率,所以起码对新手来说是比较有益的.而且 ...

  6. “六成应用开发不需要程序员”喜提热搜背后,RPA 会抢饭碗吗?

    整理 | 伍杏玲 出品 | 程序人生(ID:coder_life) 近日,一则"六成应用开发不需要程序员"喜提热搜,据 Gartner 数据显示,到 2024 年,全球约有 65% ...

  7. 开发的AI程序员“抄”代码,被骂惨的GitHub到底冤不冤?

    荣伟 发自 凹非寺 量子位 报道 | 公众号 QbitAI Copilot"抄袭"风波,大家想必瓜吃得够饱了. 这回我们来聊点严肃的. GitHub在没有版权持有者许可的情况下,用 ...

  8. 为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要1...

    为什么80%的码农都做不了架构师?>>>    为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水?   由于目前国内嵌入 ...

  9. 一个合格的web前端程序员要学会哪些技能?

    想要成为一名合格的web前端程序猿,要学习的东西有很多,那么web前端要学会哪些技能呢?来看看下面的详细介绍就知道了. 一个合格的web前端程序员要学会哪些技能?想从事web前端开发,只会HTML.C ...

  10. 一个工作了两三年程序员的学习计划

    本人已经工作两年多了,尴尬的是待过的两家公司都是外包,大部分外包公司技术性都很一般,这也是很多人看不起外包公司的一点.可是已经在外包 公司了怎么办,我也很绝望啊.....而且我做过的项目都是很老的项目 ...

最新文章

  1. python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
  2. Pyhton为什么这么厉害?无意中从一道奥数题发现Python真的爽翻了
  3. 独家:这也许是最具珍藏价值的Oracle DBA生存宝典!
  4. 工业交换机为什么需要进行高低温检测?
  5. 自己常用的PHP方法
  6. 做餐饮服务员有前途吗
  7. Illustrator 教程,如何在 Illustrator 中创建线条?
  8. 【剑指Offer速刷与技巧笔记】剑指Offer重点面试刷题
  9. 51nod-1534 棋子游戏
  10. 2017-2018-2 20155225《网络对抗技术》实验四 恶意代码分析
  11. 微信公众平台开发入门教程(图文详解)
  12. openwrt上透明AP的实现
  13. JVM内存模型与内存溢出异常
  14. 11.网络编程-基础知识 C++/Linux-2022-10-20
  15. 普源精电通过注册:拟募资7.5亿 高瓴与招银是股东
  16. Sqlserver 生僻字
  17. 计算机及处理器温度要求国标,【国家标准】GB 4967-1995电子计算器通用技术条件.pdf...
  18. VR数字政务:多功能一体化,政务服务更便民
  19. 男人35岁前成功的12条黄金法则
  20. 如何下载Oracle.ManagedDataAccess.dll

热门文章

  1. HEAD detached from XXX
  2. 重装系统后计算机无法联网,小编教你重装win10系统后电脑上不了网怎么办
  3. Excel隐身术了解一下,让自己的数据更安全
  4. java 中的todo_详解在TodoController中引用TodoRepository
  5. java 登陆邮箱_java如何登陆163邮箱,获取登陆用户的好友列表(1)
  6. DataV实现大屏滚动含后端代码
  7. 哈尔滨工程大学 Beamer模板(LaTeX幻灯模板)
  8. 精确字符串匹配(Zbox算法)
  9. 7 21 第一次团队赛——————写给队友
  10. msxml3.dll 错误 '800c0005'具体解决办法详解