- 起手式:自我介绍
- 介绍下简历上的项目
- 线程池的使用,线程池如何实现的,线程池的原理
- Thread 的join 函数的作用
- java 线程间通信的方法有哪些
- Android handler 机制,源代码
- juc atomicInteger 类为什么能保持线程安全,普通的变量为什么不能保证线程安全
- java 内存模型(问了我有没有阅读过JSR 133的官方文档?并没有,很惭愧,感觉学的路子有点野)
- java 内存分区
- concurrentHashMap 的原理
- 100以内,10万以内,10万到无穷个数,三种情况排序,选择排序算法
- 你有什么要问我的?(问了一些技术相关的问题)
一面是在过完年后回实验室第一天就面了,过了年,很多知识都忘记了,回答得比较一般,所以码代码这事儿,真是和医生的手术刀一样,要天天摸着才是好。
3/20 电话二面
一面和二面隔得确实比较久,期间让老同学帮我查了进度,所以喊我再等等。三周后,迎来了阿里二面。二面的面试官是手淘的负责人,面试中给人一种感觉是比较开放,自由的,感觉到了一种高水准技术流派的画风。
- 愿意不愿意来杭州
- 自我介绍
- java的gc(gc工作原理,gc回收机制,gc内存分配)
- http和https区别
- http报文结构
- http 报文头部含有什么
- 你最拿手的项目是什么(回答了和同学做的开源项目,并且介绍了如何做的)
- 手写代码:跳台阶问题
- 你有什么问题要问我吗?
3/29 电话三面(有点忘记了)
三面是淘宝技术部的老大,整个人感觉思维缜密,对细节很注重。
- 自我介绍
- 问项目,问有没有看过项目里面的底层源代码
- Nodejs 到了什么水平,大致说下对Nodejs的理解
- 你有什么问题要问我吗?
4/9 电话交叉面
交叉面是阿里北京部门的,当时接到面试电话的时候,还是有点惊讶,没有做好交叉面的准备,感觉交叉面就面得不那么理想
- 自我介绍
- SS助手是什么项目,大致说下
- 有实习经历吗
- 白盒是个什么概念?白盒的安全性依靠什么保证?白盒可以用于网络流传输吗?
- ImageLoader的框架,淘宝app图片的缓存设计方案(没有回答上来)
- 你有什么问题要问我吗?
4/10 hr面
风景如画的小姐姐,说话很温柔,问了些和生活,个人规划相关的问题。
- 你对阿里面试官的印象如何?你从面试官上学到了哪些东西
- 你每天的生活安排是什么样子的?
- 你为什么选择来阿里?
- 阿里的开源框架用了哪些呢?说说weex?
- 你以后的技术规划是什么样的?
- 你最有成就的项目是哪个?
- 为什么选择android开发?
- 为什么选择nodejs开发作为第二条技术路线?
- 你有什么要问我的吗?(问了面试官入职培训)
hr面10天过后,收到了实习生offer。
总结:阿里的面试战线会比较长,在间隔期间,要好好做好准备工作。阿里面试比较注重基础,项目和实践能力。阿里的面试官们都很nice,有些问题记不起来了会说没有关系,也会主动和你探讨一些问题,很赞。
##腾讯
5/30 视频面
- 起手式:自我介绍
- activity 的生命周期?
- activity 被挡住了之后,要经过哪些生命周期?为什么经过onStart方法呢?
- 如下代码的打印顺序,为什么要这样打印?
public void onCreate(Bundle savedInstance){
Log.i(TAG,“a”);
handler.post(()->{
Log.i(TAG,“b”);
})
Log.i(TAG,“c”);
}
-
多个handler绑定了一个looper,如何区分哪个handler对应哪个message呢?
-
java有哪些同步机制
-
什么是可重入锁
-
object.wait() 可重入吗?
-
什么是公平锁,什么是非公平锁
-
自己基于原生方法实现一个公平锁
-
ssl 验证证书的可信过程
-
tcp 的超时重传有哪些流派的算法
-
tcp 的超时时间怎么设置
-
如下代码的会执行false吗?A a=new A(); System.out.println(a isInstance of A) ;
-
类加载器双亲***模式
-
(git merge 和 git rebase 的区别
-
可以实习多久?
-
你有什么要问我的吗?
视频面试之后,面试官人很好,因为视频面试加了微信,面试官在笔试之前还喊我去做笔试.笔试做的很一般,然后很幸运地收到了腾讯的现场面试通知。
5/11 现场一面
现场面试的面试官就是之前视频面的面试官,人很好,给主动提出一些问题让你思考。现场面试的记录如下:
- 手写代码:计算表达式,验证计算表达的正确性(这个比较难,要考虑很多情况)
- 问如下代码打印哪些?
public class A{
static{
System.out.println(“A”);
}
B b=new b();
public static void main(String args[]){
A a=new A();
}
}
public class B{
static{
System.out.println(“B”);
}
}
public static void main(String args[]){
A a;
- SSL 证书链,证书链是否被中间人攻击
- 操作系统的进程空间和i/o空间是统一编地址(忘记了)
- mov 中的地址值是逻辑地址还是物理地址?逻辑地址如何转换得到物理地址
- so如何确定入口地址?(不会,很难受)
- 你有什么要问我的吗?
一面完成当天晚上收到了二面的短信通知,于是第二天早上又去了二面。
5/12 现场二面 (问了很多,有些记不清了)
- java 哪些内部类?内部类为什么局部变量用final
- java 有哪些语法糖
- for-each 循环的原理
- java 序列化了解多少?
- hashMap put get 原理
- hashMap 如何扩容,原来的Entry如何对应到新的Entry上?
- concurrentHashMap 原理
- 红黑树查找和插入的时间复杂度
- java 泛型方法如何确定类型
- java 泛型中的?通配符
- 深拷贝和浅拷贝
- 父类没有执行深拷贝呢,子类如何让父类深拷贝呢?
- 反转单词(最小的空间复杂度)
- 乐观锁和悲观锁
- 手写单例模式(double-check)
- 乐观锁写单例模式
- treeMap的原理和linkeHashMap的原理
- activtiy 如何被实例化的
- activity是通过反射被初始化的吗?初始化的类加载器是哪个呢?
- anr是什么?如果主线程一定要执行耗时逻辑,如何保证不发生ANR
- app 如何判断在后台?
- 你有什么要问我的吗?
二面问了大概80分钟的样子,面试官很年轻,长得蛮帅的,人也很nice,思维敏捷,反应超快,全程就是一张纸和笔,想到什么问什么。给我一个感觉就是做事干练,技术实力深不可测。
二面回来之后,查了公众号状态,变成hr面环节,开心~
5/13 hr 面
- 介绍你自己
- 你觉得研究生期间比较挫败的一件事是什么?
- 这件事过去多久了?
- 你以后怎么规划和打算的啊?
- 想去北京吗
- 找工作有什么特别想去的公司吗
- 你父母是做什么的啊
- 你是独生子女吗?
- 你有女朋友吗
总结
**其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。
像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
这么重要的事情说三遍啦!点赞+点赞+点赞!
【Android高级架构师系统学习资料】高级架构师进阶必备——设计思想解读开源框架
第一章、热修复设计
第二章、插件化框架设计
第三章、组件化框架设计
第四章、图片加载框架
第五章、网络访问框架设计
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack
架构师系统学习资料】高级架构师进阶必备——设计思想解读开源框架
第一章、热修复设计
第二章、插件化框架设计
第三章、组件化框架设计
第四章、图片加载框架
第五章、网络访问框架设计
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack
[外链图片转存中…(img-ASLnyr62-1643516204294)]