Android程序员:适合有发展的腾讯和高薪的阿里我该怎么选?
前言
二本渣校,非科班生,大学学的专业是电子商务!但是喜欢编程,大一就自学了java,后面转学Android,对我来说,我还慢现实的就想活下去在这个陌生的城市,不想回家回家就没有退路了,只能听从家里安排过着枯燥无味的生活,娶一个老婆,从而困住一生!其实对于大多数刚刚毕业的人来说,还是蛮现实的哦!毕业即是失业,要是很长一段时间没有工作,就只能回老家,都是年轻少年都有不甘。我的目标蛮明确也俗气,我想要钱,但是我在腾讯和阿里的offer里纠结了…
我的腾讯面试
一面:
-
协变
-
线程间通信?有几种同步/加锁方式?
-
进程间通信?答了三个只知道概念的和安卓的AIDL。
-
又问这“三个”中任选一个阐述原理
-
hashCode()方法实现
-
hashCode()方法 equals()方法相互联系?
-
ActivityA启动ActivityB,两者的生命周期分别是怎样的,是顺序执行的吗?
-
用过哪些框架,答曰RxJava,Retrofit,Realm,问哪一个熟悉一点?都不太熟……就随便挑了一个OKHttp来问:http请求中keep-alive保存长连接的实现原理是怎样的?
-
LRUCache原理,如何实现?
-
手撕代码,股票买入买进最佳时机,LeetCode上原题(有6道变形)
-
二分查找,写的递归,要求转成循环方式
二面:
-
内部类和外部类有什么区别?
-
静态内部类和非静态的有什么区别?
-
内部类为什么可以访问外部类的变量?
-
垃圾回收:如果两个变量互相引用是否还会回收它们?为什么?
-
标记整理算法是怎样的?为什么要前挪整理?
-
HashMap不是线程安全的,那么用什么替代?(本来是知道的,结果我多问了一句傻话面试官就跳过这个问题了……
-
(因为项目Realm版本管理?更新表?
-
CoordinatorLayout与通常的FrameLayout和RelativeLayout相比有什么特点
-
View的绘制过程
-
(这次面试电脑麦克风出了问题 在手机面的)草草问了一下跳台阶问题
三面:
-
(因为项目提到)SurfaceView的特点?了解相关的TextureView吗?
-
HashMap的结构是怎样的,怎么存value,遇到相同的hash值的key,其value又怎么存。
-
手撕代码,想第二种解法,想第三种解法;
-
用快排来解决这个问题,优化,再优化。
-
有什么想问的?问建议学习路线,面试官建议就死磕官方源码就好,开源库的源码也多看。看不懂看别人解析也可以。
阿里面试
一面(3-5,一个半小时):
-
介绍一下项目
-
项目中怎么优化网络传输
-
讲一下rxjava实现
-
讲一下app的启动源码
-
服务的两种启动方式
-
讲一下广播
-
广播之间能传送对象吗?
-
讲一下app之间有几种交互方式
二面,(3-7,半个小时):
-
介绍一下自己
-
介绍一下最近的一个项目
-
讲一下内存泄漏怎么优化的
-
android两种虚拟机ART和Dalvik
-
讲一下ipc有几种形式
-
讲一下view的事件*
-
讲下reactnative
-
讲一下热修复
-
讲一下组件化开发
-
讲一下红黑树
三面(3-16,20分钟):
-
先自我介绍一下吧
-
介绍一下做过的项目
-
蓝牙的连接过程
-
wifi怎么处理多连接设备
-
tcp\ip是基于java还是底层调用
-
长连接和短连接的差别
-
tcp\ip七层模型
-
怎么处理LIstView过程中的Item复用,能具体到实现原理方面说嘛?
-
有什么问题想问的吗(我问了他们的具体业务,还有对我的面试做一个评价)
尾声
面试,难还是不难?最终结果好还是不好?取决于面试者的底蕴(气场+技能)、心态和认知以及沟通技巧。而一些主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴)更是需要你在面试时展现出自己的能力,从而获得面试官的欣赏和肯定。
而程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大家更好的应对面试官的问题以及面试中的突发情况。
如何获取免费架构学习资料?
资料获取方式:
点赞+简信关键词 【核心】即可免费获取到!
如果需要PDF版本可以在群文件夹里,自行领取!
-
或者在群文件夹中里,自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
本文地址:https://blog.csdn.net/Android725/article/details/109365709
上一篇: Git别名的使用