2017年08月31日Android面试总结

2017年08月31日Android面试总结:

1.View相关问题

照着我简历上问(LoadingView 网络自动请求自动Loading,成功显示数据,失败显示错误信息)是怎么实现的,回答在baseActivity 里面重写setContentView 方法,然后解释了相关的做法

面试官这时候问,如果重写setContentView的代价比较大,可不可以使用其他的办法来实现?

提示有没有看过activity的setContentView方法源码?

当时其实是懵的.因为我知道要考window,decorview等知识点,但是我对相关知识并未深入研究过,看来要深入学习一下.

然后回答不上,问我自己编写的activity.xml 上面一级是什么,我回答的decorview,回来一看居然蒙对了然后又问我,如何把一个View加上去,需要些什么条件?我当时回答的是必须是一个ViewGroup且必须要有layoutParams属性,也不知道回答正确没有现在来大概的总结一下window、Activity、DecorView、ViewRoot关系,具体的详解看来以后需要花一些时间来写一遍比较长的来分析一下

大概分析一下:Activity并不负责视图控制,它只是控制生命周期和处理事件,真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口,Window 中持有一个DecorView,而这个DecorView才是 view 的根布局


Alt text

分析一下考点关键字:Window、Activity、DecorView、ViewRoot关系/activity的启动流程,Activity的setContentView 方法里面做了些什么

2.生产者消费者模式问题

当时面试官是这样说的,在一个餐馆里面,有厨师在生产东西,有一个食客在消费东西,那生产出来的东西用什么东西来存储?

我当时回答说是生产者消费者模式嘛.我当时回答的时候考虑到线程同步问题,把关注点放在了线程同步上面,所以很Sb的回答了HashTable和Vector,后来想想这个也是可以的,但是绝对不是最佳的方案

后来又问我,如果消费者和生产者都在对这个容器做操作的时候,需要做什么操作?

我当时就蒙了,因为之前在学习生产者消费者的时候,使用的都是没有同步的容器,比如(LinkedList),那在读取的时候肯定是要对这个进行加锁的操作的.当时也是蒙了

现在回想起来,其实面试官的考察点就是无非是队列,加锁,同步,其实使用队列是最好的容器,因为生产的时候,肯定有先后顺序的,这样一来,队列就完全可以,其次,要分析到一个问题就是阻塞问题,假设我们使用的是LinkedList,首先多个线程来读写这个仓库,肯定是加锁的,除了加锁之外,在仓库满了或者仓库空了,没有东西可以消费的时候,这时候需要wait(阻塞嘛),这点当时完全没考虑到,所以又要队列,又要同步,又要阻塞,在这种情况下使用LinkedBlockingQueue 是最佳的一种方案,因为什么呢?

如果是LinkedList,我们需要手动进行加锁,手动wait和notify,这样就很麻烦,LinkedBlockingQueue提供了take和put两个阻塞方法

延伸出来可不可以使用ConcurrentLinkedQueue呢?这个和LinkedBlockingQueue有什么区别? 首先两者都是同步的,这就保证了在写代码的时候不用对两者进行加锁操作,LinkedBlockingQueue提供了阻塞方法,当不可以取,或者队列满的时候会阻塞,但是ConcurrentLinkedQueue虽然是线程安全,但是并未提供相关阻塞方法,所以在写代码的时候,一样需要手动wait和notify.

分析一下考点关键字:生产者消费者模式/同步/加锁/阻塞

3.线程怎么使用的?

当时回答的是继承Thread或者实现runnable接口,当时有点装逼了,说不会手动去启动线程,一般使用RxJava框架,然后面试官问RxJava 是什么?比手动启用线程有些好处?.......后来越说越绕...没有表达好.....现在回想起来,无非是介绍RxJava框架的优点,链式和异步.

4.TCP和UDP的区别

当时回答的是TCP稳定可靠,需要进行三次握手,UDP不进行握手,只管发送,不管对方有没有接收到,但是局域网内传递效率高.现在回想起来解释的不是很到位,很多关键点也没描述清楚,应该分点来描述

  1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
  2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
  3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
    UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  5. TCP首部开销20字节;UDP的首部开销小,只有8个字节
  6. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

5.Http 协议是基于TCP 还是UDP 的....

6.总结

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,303评论 25 707
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 2,147评论 0 14
  • 一、多线程 说明下线程的状态 java中的线程一共有 5 种状态。 NEW:这种情况指的是,通过 New 关键字创...
    Java旅行者阅读 4,685评论 0 44
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,277评论 11 349
  • 橄榄油在地中海沿岸国家有几千年的历史,在西方被誉为“液体黄金”,“植物油皇后”,“地中海甘露”, 原因就在于其极佳...
    AromaAngel阅读 940评论 0 1