正在参加校招的同学们,此刻可能是最紧张的了:
不妨先来听一听过来人的故事:
来一起看看这位程序员是如何过关斩将,拿到字节跳动offer的吧。
本人情况:双非大二,软件工程专业,在学校实验室里有两个安卓小项目。
有些问题忘记了,记忆中就只有这些内容
DialogFragment
内存泄漏的定位过程Leakcanary
的原理Handler
介绍一下Handler
内存泄漏说一下view
事件分发机制怎样view
处理(根据 return true/ false
)action_move,action_down,action_cancel
,所有的事件都是一层一层往下分发吗(说了不一定,down
被拦截了,后续就收不到其他的事件了,然后提到了 action_cancel
的机制)recyclerView
,那他一般怎么用?adapter
adapter
用来干嘛?adapter
中有哪些是主要方法(说了 bindView
,这块不太记得了,说项目中用到的是 BRVAH
)ListView
Rv
不用 Lv
(说了1.强制实现 viewHolder
(避免 findViewById
) 2.缓存机制)Lv
二级缓存怎么判断这个 View
是他要的?(答了 postion,id
)id
指的是?(这里说忘记了)view
他要的?(说了 itemType
)itemType
怎么处理?(说了直接使用任意一个)xml
中定义的 itemtype
中拿的)xml
怎么关联到 Rv
(加载代码 inflate
的,不太了解)tcp
三次握手说一下equals
和 ==
区别hashmap
实现原理(说了基本结构,put
)get
是怎样实现的智力题:
算法:[82. 删除排序链表中的重复元素 II](javascript:void(0);)
LeakCanary
,线上用 Memory profiler
,然后自己扯到 DialogFragment
内存泄漏)final
作用(说了修饰类,方法,变量,作用)final
关键字吗?(说了应该用 static
,转为静态内部类,防止内存泄漏)IO
密集型和 CPU
密集型,最大线程数的话,看系统支持的并发量)2g
分配的空间)syncronized
内部原理是什么(说了修饰静态方法和非静态方法,代码块)jvm
中的 jstack
)traces.txt
,看堆栈)volatile
修饰变量,通过 while
(变量),手动设置 true false
)volatile
原理是什么?(说了 java
内存模型啥的,修饰特性啥的)tcp
优点(可靠性,面向连接)http
与 udp
区别(说了层数)http
请求流程下面开始聊天了
我说周二就给我反馈了
面了几场,也总结出来一些人生经验
1、简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。
2、简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!
3、做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。
大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
4、选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!
5、面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。
6、另外,描述问题一定要慢!不要一下子讲一大堆,慢显得你沉稳、自信,而且你还有时间反应思路接下来怎么讲更好。
现在开发过多依赖ide,所以会有个弊端,当我们在面试讲解很容易不知道某个方法怎么读,这是一个硬伤......
所以一定要对常见的关键性的类名、方法名、关键字读准,有些面试官不耐烦会说“你到底说的是哪个?”这时我们会容易乱了阵脚。正确的发音+沉稳的描述+好听的嗓音绝对是一个加分项!
7、最重要的是心态!心态!心态!重要事情说三遍!面试时间很短,在短时间内对方要摸清你的底子还是比较不现实的,所以,有时也是看眼缘,这还是个看脸的时代。
希望大家都能找到合适自己满意的工作!fighting!
最近字节开始发起校招活动了,预计接下来会有很多学弟学妹们参加字节的技术面试,我这边以过来人身份分享下字节的技术面试流程和注意事项。
首先, 字节的技术面试一般有三轮,如果通过后会有HR面试。其中前三轮面试中,一面注重考察技术基础,四大组件的原理等等,还会考察操作系统以及网络的基础知识,数据结构算法等等。
二面在一面的基础上进行查漏补缺,如一面没有涉及到地方或者表现不好的地方等等,同时也会注重对技术知识的综合运用,观察软素质,如理解能力,思考能力,沟通能力等等。
三面技术可能更多考察对做过的项目的认识和对未来的规划预期,用来考察候选人的技术发展上限。如果通过了前三轮面试,恭喜你基本Offer就稳了,只要不出现诚信问题和严重的沟通障碍问题,HR面一般不太会卡人。
准备面试的时候注意基本知识的理解和运用,不用花太多时间去研究偏难的钻牛角尖的题,如leetcode上hard难度的题型,手撕红黑树等。
最后,好的简历对于拿到不错的面试机会也至关重要,这边建议简历里边能突出自己的水平的事项需要具体一些,如经历过的项目或者实习做过什么具体的事情达到什么样的成果,最好也能提供一些具体的数据。
如果没有实习经历,可以在简历中写做过的课程设计或者实验,明确自己做过的事情,亮点,成果。此外自己的优势,特长,都可以在简历中注明。但是,如果自己不熟悉的内容,建议不要在简历里面提,其实只是有过相关的经历,并不会有优势,反而会可能在面试的时候给面试官带来不好的印象,挑一两条最擅长,最熟悉的技术点写上并突出即可。
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我针对Android程序员,我这边给大家整理了一套学习宝典!
首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!
除了上面的学习路线,还可以额外的配合以下方式学习,效果翻倍~
①看视频进行系统学习
前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。
②读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
③面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三。
④2020大厂面试高频知识点
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有