三年Android开发快手、美团、支付宝连挂,怒刷1549页面试题字节上岸

  • 一级缓存和二级缓存的区别

  • LayoutManager原理

  • 绘制

  • onMeasure描述一下

  • onDraw描述一下

  • invalidate一定会调用onDraw么

  • 事件分发

  • 事件是由谁分发的

  • fragment

  • 销毁与恢复

  • 与Activity的通信

  • Activity

  • Activity的生命周期

  • 销毁与恢复

  • 国际化插件

  • hashmap

  • 2^n的原因(有多个原因)

  • 扩容

  • 22反转链表

二面
  • 协程原理

  • rxjava原理

  • leakcanary

  • 如何分析引用链

  • 线程池

  • 给你一堆数据,如何画曲线?

  • 事件分发

  • 责任链模式

  • 汽车加油问题

三面
  • 有序无序时删除链表的重复节点

  • 都删除

  • 保留一个

  • 如何实现快手和抖音的整屏滑动效果

  • 如何让运营能看懂社区文章

  • 项目中的难点(问得很细)比如有没有遇到什呢难点呀

美团


一面
  • 线程池原理,几个参数

  • 线程池里面的阻塞队列是什么类型

  • 设计模式

  • 状态模式和策略模式的区别

  • sleep和wait的区别

  • android序列化

  • Parcelable与Serializable

  • Handler

  • Hashmap

  • 深拷贝与浅拷贝

  • 如何实现深拷贝

  • sync和Reenterlock

  • 遇到异常的区别

  • 可重入锁和不可重入锁

  • funA,funB,funC,funD

  • postInvalidate和Invalidate的区别

  • requestLayout

  • 两个有序链表合并

  • anr 分类及原理

二面
  • 基本都是问的项目

支付宝


一面
  • 项目

  • viewmodel原理

  • 用了哪些jetpack的东西

  • livedata为何具有生命周期感知能力

二面
  • shareperference如何保证线程安全,

  • 为什么不是进程安全的

  • 如何实现进程安全的

  • viewmodel是如何解决内存泄漏问题的?能解决么

  • mmkv共享内存和binder的区别

  • magic ocr项目

  • 有做过多线程开发么

  • room如何实现orm的

  • kotlin和java产物一样么有

  • 各种图片格式的区别

  • 如何保证内存与文件的同步

  • 开一个线程commit,commit不用加锁么?

  • bitmap

  • 怎么确定bitmap被复用了

  • 一张图片占用的内存大小

说来也挺惋惜的,前三家公司都是到了二面甚至是三面才挂掉,如果是一面就挂掉我也不用花那么多时间去煎熬、等待结果,只怪自己自视过高,在一家公司做久了对自己的能力没有一个正确的认知。

之后我开始猛刷大厂的面试题,在朋友的内推下收到了字节的面试题通知,又把字节近几年的面试题都翻出来刷了个遍,终于在四轮技术面+一轮HR面后收到了offer。下面是字节面经:

一面
  • MVC,MMVM,MVP

  • MMVM如何解决MVP中存在的问题

  • 内存泄漏

  • 内存泄漏的几种情况

  • LeakCancary分析内存泄漏的原理

  • 手写单例模式,并分析

  • 算法

  • 找到两个数组中的两个元素的和等于某个值

二面
  • activity

  • onSaveInstance

  • service

  • StartService和BindService的生命周期

  • 求浮点数的平方根

  • Binder的原理

  • 设计模式

  • 工厂模式

  • 抽象工厂模式和普通工厂模式

  • 建造者模式

  • 启动模式有几种

  • 共享内存原理

  • java能实现共享内存么

  • kotlin协程的四个dispatcher及区别

三面
  • window,decorview,ViewRootImpl的关系

面试官 想让你回答如何window和windowManager如何联系的。viewRootImpl是联系window和decorview的纽带

  • 进程间的通信方式

  • AIDL的用法

  • 用法和原理

  • 事件分发

  • onIntercept在哪用

  • 事件分发底层的产生

  • RecycleView的用法

  • 里面的各种Manager作用

  • wake lock:使屏幕常亮

  • Activity是如何被限制到状态栏和导航栏之下的

  • canvas

  • canvas的save和restore的作用

  • canvas的density有什么作用

  • vsync

  • vsync是如何生成的

  • android中异步一般怎么实现

  • android中内存泄漏发生的情况

  • 如何去获取view的宽高

  • 悬浮窗

  • 如何实现一个悬浮窗

  • 一个悬浮窗悬浮在顶层,覆盖了底层的app的启动图标,如果让事件启动图标接收到click事件

  • Android M之前与之后的权限变化

  • ContentProvider

  • 使用

  • 如何找到该contentProvider的

  • RxJava中map和flatmap的区别

  • view的绘制

  • viewgroup是如何刷新的

  • onMeasure,onlayout,onDraw分别起什么作用

  • onLayout的时候可以layout自己么?

  • AndroidManifest

  • 和的区别

一个是系统的权限,一个是自定义的权限

四面
  • 两道算法

  • 洗牌问题

  • 接雨水

  • 两道设计

  • 面向对象原则

  • 用代码描述你觉得最有设计感的项目

后面就是HR面了,我就省略了,相信这些大厂HR面试都不会有太大的差别。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

面试官通常会问一些开放性的问题,对你的思维拓展能力、多方位的思考能力也是一种考验

永远不要打无准备之仗!早做准备,多做准备!

下面分享一下我之前刷过的面试题以及算法资料,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

Java部分

  • 操作系统相关

  • JDK&JVM&JRE

  • 面向过程 & 面向对象

  • 八大基本数据类型&引用类型

  • 数组

  • Java异常

  • 集合(容器)

  • 线程

  • 泛型

  • 反射

  • 注解

  • Socket编程

  • 设计模式

  • JVM相关

Android部分

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

跨平台开发:Flutter.png

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

5%以上Android开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

[外链图片转存中…(img-s0wWcQ04-1713448833041)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程讲了Vue3+Vue2+Uni-app(uniapp)入门基础与实战,其中还重点讲解了ES6、TypeScript这些基础知识,实战由两大价值5000元的真实企业级项目组成,分别是仿京东电商网站和仿美团微信点餐小程序,同时两大项目代码全部赠送,还赠送前后端架构模板,工作中直接使用。VUE和uni-app是目前热门的前端框架,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件和插件,正式上线白屏问题,性能优化、解决iphoneX“刘海”兼容性问题、微信支付、微信授权登录,获取位置在地图上显示,获取用户所在的城市和街道信息,微信小程序发布审核等。对正在工作当中或打算学习VUE和uni-app高薪就业的你来说,那么这门课程便是你手中的葵花宝典。学习技巧:学习当中不要只看,一定要多敲代码,如果碰到某一个知识点不是很明白,不要钻牛角尖,千万不要因为一个点,放弃整个森林,接着往下学,硬着头皮开发项目。只要能亲自开发一个完整的项目,你会发现不明白的地方自然而然就明白了,项目做出来就真正的学会了。此vue和uni-app课程以面试和实战为基础进行讲解,每个知识点都会让你知道在实际项目开发中如何使用,学习后,可以开发大型项目,增强逻辑思维,至少让你拥有3年以上开发经验的实力!代码和ppt均可下载!免费提供《企业级完整实战项目接口文档》,绝对可用
【为什么前端都要学习Vue】 这几年Vue.js成为前端框架中最火的一个。越来越多的网站前端开始采用Vue.js开发。是开源世界华人的骄傲,作者是我国的尤雨溪大神。相对于其他前端框架,Vue 更容易上手!正因为它简单易学,很多前端开发工程师可以很快掌握并且应用到实际开发中。如果说你想用最短的时间来学习一个框架,快速上手项目,Vue是不二之选。 【学员收益】 1)大部分学员想要学习Vue,但是无奈缺少一个好老师,董老师将手把手带领你学习,让你彻底掌握Vue框架。 2)课程将会长期维护,内容更超值,本课程基于最新的版本进行讲解,并且老师会更新升级到3.0稳定版本。 3)学完该课程后不仅能学到Vue的设计和开发技能,还能培养市场思维、用户思维、设计思维,并能够利用掌握的技术开发Vue项目,获取额外的收益。 【课程收获】 1、从基础知识到项目实战,内容涵盖Vue各个层面的知识和技巧2、学习曲线平缓,前端新人也可以看得懂3、贴近企业项目,按照企业级代码标准和工程开发的流程进行讲解4、让你能够独立开发高颜值的项目 5、项目涉及14大功能组件,从基础组件到业务组件,一站式全掌握 【项目效果】 本课程打造的是高颜值的美团外卖项目。不仅界面美观,而且涉及到了众多页面。多说无益,请大家扫码查看课程效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值