赞
踩
2020年过去了,对很多人来说,这一年经历了太多太多,可能是十年来记忆里比较浓墨重彩的一笔。过去的一年里,“熬”算是这个阶段我的关键字,确实太多时候就要放弃,好在自己“熬”过去了,在新的2021年里,也有个一个非常好的开端,我收获了心仪的offer。
简单来说,就如标题一样,我今天也想要凡尔赛一次,原来大厂的面试也没有想象中的那么难,字节跳动3面+腾讯6面,就这么一次性过了,下面就细细聊聊我的大厂面经吧,希望能够给金三银四要面试的朋友提供一些经验。
=============================================================================
——字节跳动第一面:
第一面相对来说肯定要简单一些的,所以整个过程中心态是放得比较平稳的,没有太多紧张感,这一轮主要是考察基础,然后会问一些项目相关的问题。
一面(面试官很nice,问的问题基本上宽而浅):
(1)基础知识
onStart:可见/但是不能获取到焦点
onResume:前台,能获取到焦点(焦点:就是点击的意思)
onPause:失去焦点
onStop:不可见
onNewIntent
SingleTask,SingleTop的情况
在里面调用setIntent(intent),更新Activity的Intent
(2)考点
ActivityA切换到ActivityB生命周期
B的onResume会在A的onStop之前:只有第二个Activty切换到前台可点击的时候A才不可见
Acitiviy跳转的时候一定会onStop么:不一定,从onStop理解,onStop是不可见,那么透明Acitivity或者Dialog的话,那么该Activity仍然可见,只是没有焦点,因此不会只会触发onPause,不会触发onStop
切换到Home的时候,Activity的生命周期变化
onPasue->onStop
onNewIntent的调用时机
onSaveInstance的调用时机
View的事件分发的过程
View绘制的过程
picasso的实现原理
5.EventBus的实现原理
6.binder的实现原理
HTTP协议
常见的加密协议
非对称加密算法:RSA, DSA/DSS
对称加密算法: AES, 3DES
HASH算法:MD5, SHA1, SHA256
单例模式(很重要)
多线程
如何让一个线程执行完执行另一个线程t.join
如何让一个线程的某条语句执行完执行另一个线程:lock.await,lock.notify
JAVA的内存模型
synchronize和volite关键字和原理
HashMap和LinkedHashMap的实现原理,LRUCache的实现原理
key匹配的过程:中间他设计了一个场景让我实现Double类型的存储,但是Double在key的匹配过程中,只需要比较整数部分。:实现的原理就是通过覆盖类的hashcode和equals方法,实现key的匹配相同。
第二个是或的关系
双向链表的实现的过程
picasso LRUCache实现的过程
if
(e.hash == hash &&((k = e.key) == key || (key !=
null
&& key.equals(k))))
数组中超过一半出现的数字
其他都是场景题,不具有代表性,临场发挥的
——字节跳动第二面:
二面的面试官,问的比较广。但是似乎不是很注重细节。我在这儿吃亏了,感觉他 不注重细节,就没讲。导致他问了我一堆问题。**重点还是对于知识点
1)你要一点不懂,就直接跟他说不懂;
2)要懂一点可以告诉他你不太了解,但是可以猜怎么实现的;
3)对于他题给你的场景题,你一定不能轻易放弃,不会要赶紧与他交换思路,根据他的提示尽力去解决问题,这个很重要,因为这考的就是你临场反应能力和对知识点的应用能力还有学习能力**
——字节跳动第三面:
三面的面试官一般会让你讲项目,我就将论文里面的东西。这个你最好是,讲一下项目的背景,还有项目中遇到的困难,以及自己如何去克服的。然后就是专业知识了。重点还是,不会想想之后让他提示,顺着他的思路去解决问题。
=========================================================================
——腾讯一面:
上来就讲项目,问我最近在做哪一个项目
我就说简输了。
他问 项目难点
我说 报文解析
你知道cookie是什么吗.
有考虑过安全问题吗,没有
KMP算法讲讲
线程池优化,怎么优化 (哦,设个参数咯就是,我说 对的)
线程怎么运行,线程池原理(他问的是线程是怎么跑起来的,系统什么调度,我说操作系统做的吧,我懵逼,IOS感觉跟ANDROID差好多)
线程能访问主线程的变量吗, 主线程能访问其他线程变量吗? 能,一般不会, 这点追着问
线程变量放哪里,别人怎么用,知道线程私有变量吗?(Ios跟Android貌似不太一样)
——腾讯二面(笔试):
考察具体岗位的技术栈语言的基础知识,题目不难,要求基础扎实和广度,文中不过多赘述,大致题目整理到pdf文档里。
——腾讯三面+四面(技术组长面):
腾讯的三面和四面都是技术组长来面的,这个阶段相对来说还是比较紧张的,面试内容则主要是聊解题的思路以及项目经验,考察个人对于技术掌握的一个广度,涉及到比较多的架构设计。
OkHttp有什么好处
Retrofit怎么实现的
Retrofit有什么好处
OkHttp设计模式
你还知道什么设计模式
Handler机制,你知道有什么坑点吗(内存泄露)
内存泄露有什么场景
Binder讲一下
你知道Binder有什么坑点吗
KMP
线程池优化怎么优化服务器性能
三范式讲讲你设计的三范式
三范式定义
数据链路层用什么协议,解决什么问题
协程
Flutter,RN有了解过吗
你写MVP那MVVM你造吗
你还知道什么设计的框架(MVC)
——腾讯五面+六面(技术总监面):
这两面的面试官应该是技术总监,面试难度应该是这一套流程里最大的,主要考察面试者的两个方面,包括讲优化,和高级UI,需要面试者对于技术知识有比较深度的理解和认识。
①针对系统设计提问:
MVP讲讲,什么优点
MVC用了什么设计模式???
View的生命周期!!!
IPC机制(Socket优点?)
线程状态
activity生命周期
draw和onDraw区别
启动模式
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
以下是资料目录和内容部分截图
里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。
lCoPEF.jpg" />
以下是资料目录和内容部分截图
[外链图片转存中…(img-99boHJj2-1712219431078)]
[外链图片转存中…(img-fLFySfcn-1712219431078)]
里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。
[外链图片转存中…(img-hedZuSU6-1712219431078)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。