人都傻了!看完这份字节跳动师兄给我的程序员面试笔记,只能说一句牛啊!(2)

文章概述了Android面试中常见问题,包括ViewGroup环形布局实现、事件传递机制、内存管理、性能优化、线程同步、算法应用、工作相关项目经验以及内存泄露分析。同时强调了算法在面试中的重要性,以及提供了一些面试策略和资源链接。
摘要由CSDN通过智能技术生成

2.如何实现一个环形布局的ViewGroup,类似一个菊花的形状。又问了在onMeasure中传递的参数是什么?这道题主要就是想了解对View的measure、layout和draw流程是否熟悉。

3.android的事件传递机制

4.内存泄露问题,常见的导致内存泄露的原因

5.页面很卡顿,分析一下原因是什么,然后从哪些方面入手解决

6.java的线程同步问题。new了很多A对象,一个线程池的线程不断去操作A对象被synchronized修饰的方法,会同步操作吗?如果该方法是static的,又会怎么样?

7.遇见过的项目难点的地方

8.强化android优化方面

二面

1.工作相关,强化工作相关项目

2.android性能调优


今日头条

今日头条问的都是网上能找到的。好几个问题都是网上面经的原题,所以刷面经很重要。

一面:

一面主要是问了Android基础、Java基础和数据结构算法

1、软引用和弱引用的区别

2、1亿个数中找出最大的100个数。回答了可以建一个小顶堆,然后问如何建小顶堆以及如何维护小顶堆

3、Bitmap加载过程中OOM了怎么办?回答了可以压缩图片,然后问具体怎么压缩?如果有一张很大size的图片需要加载到手机里怎么办?回答可以局部加载。

4、有了解什么是IntentService么?

5、Activity的几种启动模式有了解么?各自的含义是什么?

6、TCP和UDP的区别,以及简单说了一下TCP三次握手协议

7、手写单例模式

8、除了Lru缓存算法,你还知道哪些缓存算法?

二面

二面面试官是百度t6,主要问了项目相关的问题,也问了一些Android基础和算法数据结构

1、1亿个url存在文件中,里面有重复的url,请问怎么去重?题外:这道题给人的感觉就是这个面试官只会抄网上的题目来“考”面试者,而不是真的用心去了解面试者的Android能力水平,网上这样的“海量数据”处理问题已经被问烂了,而且平时android开发中间几乎很少用到,面试者能答上来无非两者:1、刷过面经;2、真的会“海量数据”处理的大牛,但是Android中是后者的几乎没有,所以这道题没有任何意义,完全就是面试官照抄面试题的应付而已。

2、2*8的最快运算是什么?考察点是位运算,但平时工作中几乎很少“2<<3”这样写,原因是没有必要,因为编译器早就做过这方面的优化。

3、讨论了一下热修复相关的问题

3、一个listview很卡顿,让分析一下其中可能的原因和你碰见这个问题如何动手解决。算是相对比较发散思维的问题,应该能从一定角度反应求职者水平。


高德:

一面

1、cpu的唤醒,cpu休眠会停止线程xxx

2、线程同步synchronized,volatile关键字的用法

3、怎么停止一个线程,waitxxx有用吗?

4、静态内部类引用外部类怎么解决引用问题

5、for循环…的线程同步问题

6、c里面static关键字的用法

7、include头文件两种方式的区别

8、弱引用和软应用的区别

9、Dalvik和ART虚拟机的区别

10、Java虚拟机什么时候进行GC,Android虚拟机呢?

11、弱引用和软引用的区别?各自的使用场景是什么

二面

1、n个元素的集合一共多少个子集

2、view的事件传递机制

3、我们的应用的架构

4、静态内部类访问外部类的做法

5、RxJava和EventBus的区别?好奇怪

6、okhttp访问线程池的问题


小米

小米hr要求每轮面试都必须有一到两个算法题,所以算法和数据结构也是不能放。

一面

一面主要就围绕着我的项目里的展开的讨论,也问了很多Android基础问题。

1、handler的机制

2、RxJava的好处

3、EventBus的内部实现原理是什么?

4、什么是内存泄露,如何分析?MAT和LeakCanary。MAT和LeakCanary的各自优缺点是什么?

5、有哪些常见的内存泄露的原因

6、算法:1)求最大连续子序列之和。2)遍历输出一个文件夹中的所有文件(递归)

7、手写单例模式,单例的使用场景有哪些?

二面

1、算法:非递减序列求个数,例如 1、1、2、2、3、3、3、3、4、7、8、9、9、9,input:3,output:4


网易

笔试:

1、一个类中声明private static Bitmap会引起什么问题,主要考察的是内存泄露

2、Activity的生命周期,主要考虑异常情况

3、ScrollView和Listview的区别?好奇怪的问题

4、两个有序数组a[n]和b[m],合并成一个有序数组并放入a中,a数组开的存储空间保证能放下a和b中所有元素,如何实现效率最高?

面试:

1、listview的卡顿分析和优化

2、listview加载图片会有什么问题,如果引起图片错位是什么原因导致的?怎么解决?

3、自己设计一个Picasso应该考虑哪些方面。图片缓存(DiskLruCache,LruCache)、压缩、listview导致的错位、线程池的数量等

其他的一些小tips

1.尽量避免主观表述,少一点语义模糊的形容词,尽量要简洁明了,逻辑结构清晰。

2.如果自己有博客或者个人技术栈点的话,写上去会为你加分很多。

3.如果自己的 Github 比较活跃的话,写上去也会为你加分很多。

4.注意简历真实性,一定不要写自己不会的东西,或者带有欺骗性的内容

5.项目经历建议以时间倒序排序,另外项目经历不在于多,而在于有亮点。

如果你进阶的路上缺乏方向,可以加入我们的圈子和安卓开发者们一起学习交流!

  • Android进阶学习全套手册

    img

  • Android对标阿里P7学习视频

    img

  • BATJ大厂Android高频面试题

    img

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:

人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
ATJ大厂Android高频面试题

[外链图片转存中…(img-OIrsXb2O-1714998344041)]

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:

人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 19
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值