安卓程序员记欢聚时代的一次面试

昨天去欢聚时代面试了,总的来说回答的很不完美,基本上没戏了,在这里记录一下吧,想的起多少就写多少。

28楼前台签到

本人已经辞职了,但是公司不让马上走,要等30天,然后我在BOSS直聘APP上登录了一下,更新了一下简历,本想着等离开了公司就开始投简历,没想到当天就收到一大堆的求简历。第二天也是一大堆,然后看到了欢聚时代,有点惊讶,我以为像欢聚时代这样的大公司是不会主动这样求简历的,但事实就是这样,然后就把简历发过去了。这里不是打广告,是真心的觉得BOSS直聘挺好的。

过了几天,接到欢聚时代HR的电话预约面试,还是很惊喜的。昨天下午面试,虽然准备的不是很充分,但是去看看也是好的,请个假大大好几百,肉疼。

没有提前到公司,是踩点的,不幸的真的找不到公司,万达广场太大了,问了半天终于找到B1栋在哪里了,然后等电梯,28楼,也是等了很久,足足迟到了20分钟。所以以后面试不要踩点了,尽量早半个钟到吧,撒个尿也是好的。

到了前台,扫二维码签到,然后到旁边的大厅填写资料,是在手机上填的。大厅上很多人,应该都是在面试的吧,瞬间觉得没希望了,就是这么负能量哈哈,但是来之安之吧。填资料也是很坑,面试我一般不会填身份证的,但YY要求必填。。。然后我就填了18个X。然后是学习经历,随便填了一下。然后是工作经历,也随便填了一下,有一项是直接上司和手机号码,必填。。。我们平时都是钉钉沟通了,实在不知道号码。。。乱填了一番。最后是项目经验,这个这个。。。不可能现场写的了,这辈子都不可能的,抄的话也不可能,太多了,也罢,不写了,直接跳过。

这么多人我以为要等很久,结果就几分钟,一个胖纸叫我去面试了,明显感觉到大家羡慕的目光哈哈,他们等了辣么久,我刚来啊哈哈。胖纸带我转了一圈,想找个房间,结果都有人了。这里得赞一下YY的这种接待室,应该有十几个吧,半透明的小房间,圆的方的什么造型都有,里面就一张桌子和几张凳子沙发什么的。再等了几分钟,可以开房了。

没有笔试。
居然没有笔试。
没有想到没有笔试。

自我介绍,随便说了一下,自己都觉得语无伦次,渣的一批,可是胖纸挺好,适度插嘴,我就喜欢他插嘴,因为我也不知道往下还有什么说的哈哈。然后胖纸看着我的简历,一边问问题,一边记笔记,还是很认真的,虽然我回答的很表面,他有时候也会深入一点问原理什么的,我大多都答不上来,但是胖纸很和蔼,气氛依然很好,我答不上来的我偶尔还会反问他,他也跟我说了。

输出什么
String s = "hello";

public void test(String s) {
  s = "world";
}

test(s);
System.out.println(s);

胖纸手写的代码,我一看这个就说输入hello了,然后胖纸说为什么,我一下子居然答不上来,如果传入的是一个普通对象的话,那传入的就是引用了,值是会变的,但是这个是String,这个东西我一直有点怕。最后胖纸跟我说这个String保存的是值,传入方法中的是值,而不是引用,所以不会改变外面那个s的值。

multiDex的原理是什么

一脸懵逼,我只知道这是分包用的,只会用不知道原理。

简历上说封装了某某View,你是怎么封装的

怎么封装的,不知道从哪里开始说起啊

你是怎么自定义View的

我也不知道怎么说啊,就叫胖纸举个具体的例子。然后胖纸说如果自定义一个闹钟界面,我大概说了一下继承View,在onMeasure中测量大小,在onDraw中绘画闹钟。然后胖纸说就这么简单?在onMeasure中是怎么测量大小的?

Android的事件传递机制什么什么样的

这些问题我感觉我是说不清楚的,用笔画图还可以说清楚,当时又没带笔,然后就大概说了一通,事件从根节点的dispatchTouchEvent分发,开始传递,可以用onInterceptTouchEvent拦截,子View也可以反驳拦截,有个反驳的API,忘了叫什么了,如果没有拦截,那就继续传递给子View,在onTouchEvent可以监听,返回true消费掉事件。这个传递机制我自认为是比较了解的了,但是口头描述不清楚。

Handler的机制

Handler负责发送消息,和处理消息,创建Handler的时候需要传入一个Looper,Looper维护着一个消息队列MessageQueue,Looper不断循环从消息队列里拿到消息交给Handler处理。如果需要在子线程维护一个消息队列的话,需要在子线程调用Looper.prepare初始化,然后Looper.loop开始循环读取消息。

然后胖纸问,如果new Handler的时候不传入Looper,那么Looper是怎么来的,我说在哪个线程new的Handler,就拿哪个线程的Looper,如果是子线程的话需要先Looper.prepare初始化一下,胖纸也懵逼了,应该他不是想问这个,然后我只好说没看过源码不清楚了。然后胖纸又问:主线程的Looper怎么拿的,我:Looper.getMainLooper,胖纸:子线程的Looper又是怎么拿的,我:Looper.myLooper,然后胖纸想了半天,有myLooper这个东西么,说到我也不确定有没有了。。。

// Handler的部分源码
public Handler() {
    this(null, false);
}

public Handler(Callback callback, boolean async) {
    // ...
    // 没有传入Looper的时候的确是调用了Looper.myLooper()获取。
    // 而且当前线程必须先调用Looper.prepare()
    mLooper = Looper.myLooper();
    if (mLooper == null) {
        throw new RuntimeException(
            "Can't create handler inside thread that has not called Looper.prepare()");
    }
    // ...
}
public final class ActivityThread extends ClientTransactionHandler {
    // app的启动入口,这是进程孵化器已经创建出app进程了
    // 这是第一个线程,直接作为主线程
    public static void main(String[] args) {
        ...
        // 初始化Looper
        Looper.prepareMainLooper();
        ...
    }
}

public static void prepareMainLooper() {
    prepare(false);
    synchronized (Looper.class) {
        if (sMainLooper != null) {
            throw new IllegalStateException("The main Looper has already been prepared.");
        }
        //  由下面的getMainLooper()方法可以知道,我们去的就是这个sMainLooper
        sMainLooper = myLooper();
    }
}

public static Looper getMainLooper() {
    synchronized (Looper.class) {
        return sMainLooper;
    }
}
Java内存管理
Java垃圾回收机制
Activity的singleTop和singleTask的区别

这个我还是比较清楚的,还有singleInstance我也说了一遍。

Service的两种启动模式有什么区别

startService和bindService的区别我也是比较清楚的,也说了一遍,然后他深入的问。。。

Service的onStartCommand的几种返回值有什么区别

一脸懵逼。我只是隐约记得有个什么STICKY,粘性的,还有什么忘了,有什么区别,也忘了。

没有了,想不起来了

其它的想不起来了,就酱紫了。
差不多走的时候,胖纸突然说面试会有好几轮,叫我慢慢等,不知道他是什么意思,我认为我应该是直接PASS掉的了,那就没有下面的轮了,也没必要跟我说还有好几轮了,我就随便问了一下每轮相隔时间会不会是一个月,胖纸说要排队看情况,走人。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,376评论 25 707
  • “水中人参”芡实是《黄帝内经》中记载的上品药材之一,也是一味常用的药食两用药材。因为它很像鸡头,所以又称“鸡头米”...
    walker小凯阅读 165评论 0 0
  • 我总是很急。 我吃饭很快,你才开始我已经吃完了; 我走路很快,你总是跟不上我的脚步; 我说话很快,你经常听不清楚我...
    叶_XIN阅读 184评论 0 1