2017 秋招 百度二轮面试—血淋淋的经历写实

 一名自信向上的良好青年,参加百度面试被面试官按在地板来回摩擦~(不知是哪位好汉说的,借用一下)

简单回顾一下,下午的经历吧

下午百度二面对话大概是这样的。

面:这个知道吗?

我:不知道。

面:这个呢?

我:不知道。

面:那我问你这个吧。

我:知道。

面:看过源码吗,底层是怎么实现的?

我:。。。。。。

面:好吧,下一个问题

场面巨尴尬

下面是具体的问题,可能有忘记的题.没有自我介绍..

1,安卓源码看过多少

有时候看到某个函数,心血来潮可能会点进去看看是如何实现的,但是没有集体性看过.

2,RecyclerView怎么实现的?不知道啊,那你说说是怎么用的?

怎么实现的,我是真的没有一个大体的认识,之前没去集体看过RecyclerView的源码,最多只是知道几个方法是怎么实现的.怎么用的我就不说了,大家都比我清楚.

源码分析可以看看大神的文章搭配起看看源码吧:

RecyclerView源码分析(一)–整体设计
RecyclerView源码分析(二)–测量流程
RecyclerView源码分析(三)–布局流程
RecyclerView源码分析(四)–动画流程

3,线程池,用过吗?

我:听说过,没用过.

看看大神的文章吧

Android开发——Android中常见的4种线程池(保证你能看懂并理解)

4,Service和IntentService区别

推荐文章:

Android中IntentService与Service的区别

4.1,service的启动方式有几种,分别是什么?生命周期有什么区别?多次调用startService()会启动多个Service吗?bindServive呢?

如果一个 Service 已经被启动,其他代码再试图调用 startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStartCommand()

看我的Github笔记了解具体详情:

笔记链接

5,TreeMap干什么的,怎么用

说实话,我平时确实没怎么用过这个,除了当时在学习时.就是一个排序的?

马克-to-win:TreeSet是按升序顺序输出的。TreeMap也是按升序输出,但是和它的区别就是TreeSet存储的是单个元素,而TreeMap存储的是一个一个的键值对。

详情

6,实现单链表倒置,手写

/*-----------------将链式表就地倒置-------------------*/
//将链式表就地倒置  一
Status Convert1(LinkList &L)
{/*为了反转这个单链表,我们先让头结点的next域指向结点2,再让结点1的next域指向结点3,最后将结点2的next域指向结点1,就完成了第一次交换,顺序就变成了Header-结点2-结点1-结点3-结点4-NULL,然后进行相同的交换将结点3移动到结点2的前面,然后再将结点4移动到结点3的前面就完成了反转,思路有了,就该写代码了:*/LNODE *tmp = NULL;LNODE *p = NULL;if(L==NULL){return ERROR; }tmp = L->next;   //指向第二个while(tmp->next!=NULL)   //当需要换到第一个的元素不为空{p = tmp->next;    //p为tmp的下一个,也就是需要切换到第一个的元素tmp->next = p->next;  //让tmp指向需要需要切换到第一个的元素的下一个元素p->next = L->next;   //让p指向刚才的第一个元素L->next = p;         //p变成第一个}return OK;
}//将链式表就地倒置  二  (易懂)
Status Convert2(LinkList &L)
{//从链表首元素开始一直往后遍历,将遍历到的元素指向前一个元素LinkList p,r,q;p = NULL;q = L->next;while(q)    //让下一个元素指向上一个元素{r = q->next;  //r是q的下一个q->next = p;  //(第一次时,下一个指向新的头指针),以后每次都是下一个指向上一个元素p = q;        //新的链表向后移q = r;        //旧的链表向前移}L->next = p;return OK;
}

7,二叉树后序遍历,手写

/*-------------后序遍历----------*/void preorder3(BiTree T){if(T)         //如果还能往下{preorder3(T->lchild);     //从该节点往左孩子方向探索指针  preorder3(T->rchild);cout<<T->data<<endl;      //后续遍历}}

8,新开一个线程和开一个IntentService有什么区别。假如系统内存不足,谁先被干掉?

(1)前台进程

是用户操作所必须的,任一时间下,仅有少数进程会处于前台,这样的进程拥有一个在屏幕上显示并和用户交互的 activity 或者它的一个IntentReciver 正在运行。仅当内存实在无法供给它们维持同时运行时才会被杀死。一般来说,在这种情况下,设备依然处于使用虚拟内存的状态,必须要杀死一些前台进程以用户界面保持响应。

(2)可视进程

没有前台组件,但仍可被用户在屏幕上所见。当满足如下任一条件时,进程被认为是可视的:

●它包含着一个不在前台,但仍然为用户可见的activity(它的onPause()方法被调用)。这种情况可能出现在以下情况:比如说,前台activity是一个对话框,而之前的Activity位于其下并可以看到。

●它包含了一个绑定至一个可视的activity的服务。

可视进程依然被视为是很重要的,非到不杀死它们便无法维持前台进程运行时,才会被杀死。

(3)服务进程

是由startService() 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。

(4)背景进程

包含目前不为用户所见的activity(Activity对象的onStop() 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程运行,所以它们一般存放于一个LRU(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。

(5)空进程

不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。

9,List和Set集合存放对象时的区别

10,说说你最擅长的领域,比如安卓中的某个东西,或者算法,数据结构,网络。

11,说出你的优点和缺点。说说最值得你骄傲的事情。

12,关注最新的技术?说说学过Kotlin哪些东西?我:学过一些语法和写过几个demo。面:什么,就只是语法层?好吧,下一个问题

13,二分查找的时间复杂度

总共有n个元素,每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。
由于n/2^k取整后>=1,即令n/2^k=1,
可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O()=O(logn)

14,Activity.OnNewIntent()解释一下是什么?

Activity的四种启动模式和onNewIntent()

15,怎么利用handler实现主线程和子线程通信?MessageQueue是什么?子线程实现hander应该注意什么?

这个刚好知道.哈哈

16,ThreadLocal用过吗?

彻底理解ThreadLocal

17,HandlerThread用过吗?

Android HandlerThread 完全解析

18,Java中是怎么实现线程同步的?假如我定义一个类,里面有一个方法fa()被synchronized修饰了,另一个fb()没有被修饰。现在声明2个对象a1,a2,现在2个线程同时分别调用a1.fa(),a2.fb(),fb()方法中的代码会被执行到吗?

19,会反编译吗?我:用过,拿来反编译其他的app。

20,你觉得你的安卓达到一个什么样的水平了?

21,面:好了,还有什么想问的吗?

22,回去等消息吧,待会儿HR小姐姐会联系你。过了的话还有三面,大概在这周三。

总结

很多问题不会,场面蜜汁尴尬.好吧,本人菜鸟一枚….

下面是一个朋友(也是这场百度,二面)的问题

计算机网络:http协议概述,特点,运用,http为什么底层是tcp不是udp ?tcp是基于流式传输的,怎么设计协议,进行协议的解析?抓包工具的原理是啥? socket异常断开时,设计一个合理的重连机制。 数据结构:叫我写二叉树的前序遍历非递归,跟递归方式比较时间复杂度,快排的原理。项目:检测内存泄漏的工具,它为什么能检测?做过的项目有什么技术难点(我说的难点在面试官看来都是简单问题)?思维题:在很多的数据中如何快速找到最大的100个数? 你有什么创新能力?你还有什么问题问我?

2018 秋招 百度二轮面试---血淋淋的经历写实相关推荐

  1. 秋招 百度二轮面试---血淋淋的经历写实

    一名自信向上的良好青年,参加百度面试被面试官按在地板来回摩擦~ 简单回顾一下,面试的经历吧 百度二面对话大概是这样的. 面:这个知道吗? 我:不知道. 面:这个呢? 我:不知道. 面:那我问你这个吧. ...

  2. 百度java面试应届,秋招 百度二轮面试---血淋淋的经历写实

    一名自信向上的良好青年,参加百度面试被面试官按在地板来回摩擦~ 简单回顾一下,面试的经历吧 百度二面对话大概是这样的. 面:这个知道吗? 我:不知道. 面:这个呢? 我:不知道. 面:那我问你这个吧. ...

  3. 中科大软件学院硕士:实习秋招百多轮面试总结(上)

    大家好,我是对白. 今天给大家介绍一位我的朋友,他是中科大软件学院的硕士,在去年秋招中斩获了多个互联网大厂的offer,后来他将自己从实习到秋招参加的一百多轮面试进行了总结,希望对即将找工作的大家有所 ...

  4. 2018秋招百度Java后台开发面经

    9月17日百度公司的一面,百度公司的面试官还是很厉害的,我跟另外一个同学是同一个面试官,面的同一个岗位,面试官的问题居然没有一个重样的.虽然没有进入二面,但是体验还是不错的,小哥哥不仅技术能力很强,人 ...

  5. 2018 秋招 百度一面

    百度一面 面试地点很豪华,星级酒店包了很多层楼.先集体到5楼等待,再单独分配到不同的楼层不同的房间去面试.每个面试官单独在一个房间,很安静,可以专心思考问题.面试官说话超级和气,交流很随心,不用半点约 ...

  6. 2018秋招面试经验(测试开发、产品)

    2018年的最后一天,我决定完成我的承诺. 写这篇文章的时候,作者已经坐在了未来工作的岗位上.想说的话有很多很多,却又不知道从何处说起.这篇文章与其说面经,倒不如说作者更想告诉你的是如何去准备.作者不 ...

  7. 【转】2018秋招面经

    京东广告数据部-机器学习面经 源:2018.8.2苍蝇哥分享资料 <笔试+面经>-><2018最新面经合集>->京东-> <机器学习算法面经-2018秋 ...

  8. 【求职】小米 2018 秋招测试开发工程师笔试题

    小米 2018 秋招测试开发工程师笔试题 一.单选题 1.静态变量static 在不同的实例中地址是否一样?他们储存在什么区域?( ) A. 地址一样,在堆栈区. B. 地址不一样,在堆栈区. C. ...

  9. 今日头条2018秋招编程题

    今日头条 2018秋招 Android方向 编程题 1.手串 作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串–每个串珠要么无色,要么涂了若干种颜色.为了使手串的色彩看起来不那么单调,金主 ...

最新文章

  1. String、StringBuffer、StringBuilder的理解
  2. 人工智能正在激活互联网类脑系统,2018年,云脑将成为新热点
  3. shell 获取ora报错信息_频发:故障排除之又见 ORA-4031丨云和恩墨技术通讯
  4. Ajax的beforeSend 和 complete
  5. 浅析C#发送短信的原理
  6. Ubuntu18.04挂载exfat格式移动硬盘
  7. 阿里云部署Docker(5)----管理和公布您的镜像
  8. Python Pytest调用fixture之@pytest.mark.usefixtures()、叠加usefixtures、@pytest.fixture(autouse=True)用法详解
  9. 智能会议系统(23)---移动端视频通话开源软件比较
  10. 1.Echarts的坑:切换tab时,echart显示默认的100px
  11. python和json转换_python和json之间转化
  12. SQL2005的SSMS连接SQL2012会有问题
  13. Host 'admin-PC' is not allowed to connect to this MySQL server
  14. Robocopy用法
  15. 大工19春计算机文化基础在线测试3,大工19春《计算机文化基础》在线测试3.doc...
  16. 如何有效去除博客上的广告
  17. 听课记录高中计算机,中学信息技术听课记录
  18. 真实性能大揭秘 热门移动显卡横向测试
  19. 使用Portia时docker-compose失败 /bin/sh: 1: /app/provision.sh: Permission denied
  20. MySQL、PostgreSQL、NoSQL、CynosDB,究竟谁是数据库王者?

热门文章

  1. SE 例题recap
  2. 阿里服务器配置随笔记 centos 服务器 Linux 部分命令合集
  3. [渝粤教育] 西南科技大学 英语(A)1 在线考试复习资料
  4. Makefile中echo和@echo、和的区别
  5. python12306抢票_Python 版 12306 抢票神器
  6. java编程实现;猜单词游戏
  7. 【安装库】WARNING: A newer version of conda exists.
  8. vba oracle 乱码,【VBA研究】用VBA实现excel与Oracle数据库交互
  9. docker部署jpress详细版本
  10. 教你从0开始部署华为云服务器_华为云服务器搭建