【搬迁】N久之前,安卓开发的百度一面,二面,三面和CVTE一面(2016年秋招)

CVTE一面

  • 图片缓存你如何去设计
  • LRU算法原理
  • 了解过View的绘制
  • 了解过事件分发
  • 多线程有使用吗
  • 线程池有使用吗
  • java虚拟机内存管理有哪些?
  • 堆跟栈的区别
  • hashmap和hashtable的区别?hashmap中如何解决冲突?hashmap只有链表去解决冲突?hashmap如何计算hash值?
  • 线程有几种状态,怎么去停止一个线程
  • sleep和wait的区别
  • 设计模式有哪些,还有呢还有呢?说下你了解的单例模式,双重判定哪双重?工厂模式有哪些?
  • MVP和MVC的区别
  • 快速排序解释原理
  • 数组和链表的区别
  • 树和图的区别
  • 讲一下四大组件
  • Service的使用方式
  • Service和Activity如何通信

百度一面

  • 实习项目所做了哪些任务?

  • 你对Volley的理解

  • volley是如何取消请求

  • 一个图片请求,下载到一半,接下来是开启一个新的请求还是在原有的基础上继续请求。说下你的解决方案。(非断点续传,非类似volley的请求缓存)

  • 图片缓存你如何去设计

  • 那我们来问下基础,抽象类和接口的区别?或者你在什么时候去选用?

  • 被static 关键字修饰的类能够被继承吗?

  • 了解Jvm的内存管理方案

  • 强引用、弱引用的概念,JVM怎样去判定

  • 循环引用计数解决方案(非可达性分析)

  • 不知道数据形式不知道数据量的数据(可大可小),也不能利用策略去分析,项目时间紧迫,采用怎样的排序去实现?

这个秋招,我的第一次面试就是百度,可能会止步于一面,首先是自己由于生病在家休息的这段时间,比较浮躁,没有准备面试的原因,所以基础这一块是薄弱的。很多问题面试官其实问得很简单,我却没有回答上来,再想深入下去就很困难,觉得很羞愧。再来则是,思路比较混乱,语言组织不够清晰,思维比较跳跃。

但是百度的面试官真心给我一种很大气的感觉,比较我的其他面试经历。面试的过程中,注重循循善诱,引导你回答问题的方向,会根据你谈到的点深入下去,也会给你启发,纠错。是会让你有收获的过程。起初问我实习做了哪些事情,我讲述了我重构项目代码的过程。利用MVP模式进行重构,然后就开始我混乱的面试过程,最后考察数据结构与算法时候,问的排序的问题,我有很久的时间浪费在去分析问题上面,首先面试官问我有哪几种排序,我告诉他O(n²)冒泡、插入、选择和O(nlog(n))的快速、堆、希尔、归并,然后分析了时间复杂度和空间复杂度,最后选择归并排序作为答案。

但是面试官问我,为什么选择归并排序不是其他?我的问答,在数据量很大的情况下,采用大文件分割成小文件的形式,是从时间复杂度上去选择,性能层面去考虑。但是面试官问我,有没有可能从排序的稳定性去考虑。这里我就回答得非常不好,因为我没有清晰的语言去分析稳定性,最后我告诉他,其他三种排序都是不稳定的,归并排序是稳定。面试官就问,那么稳定性是什么?稳定性对结果有影响吗?我思考了半天,终于回答了,是有影响的,混乱地举出了一个例子也就是在已经对年龄排好序的情况下,去对姓名进行排序,不稳定的排序会打乱原有年龄排序的结果。面试官总结了下,无论是在设计中还是选择排序方案时,我们都是在不改变原有基础上去进行。

此时写下这篇博客的我才醒悟,面试官又将问题带回到了我最开始所讲的重构(在不改变原来的功能基础上去改善代码),以及网络请求的问题,排序方案的选择。

临走的时候,提醒我出门左拐右拐是电梯方向,很绅士,很有气度,非常棒的面试经历,可惜我准备不足,这让我沉浸在失落中很多天,但我更加坚定了我内心的想法,扎实我的基础,要写优质的代码,要做更加充足的考量。

~~~

本来以为狗带了,却没有想到又打来了电话。约我后天去面试。挺开心的,面试官是做安卓的。人也很和善,仍然会引导你回答问题的方向。 由于是早上9点吧,人很少,开头并没有做自我介绍,拿到我的简历,仍然是从简历问起。

  • 过度绘制你了解多少(项目中写到了减少过度绘制)
  • 线程管理你会怎么去使用?
  • Handler在主线程和子线程的通信?子线程与子线程如何通信?对于Handler持有Context,如何避免内存泄漏?
  • 四种引用的概念
  • support material 库了解多少?
  • RecycleView与ListView的区别?
  • ToolBar与ActionBar的区别?
  • 类似微信滑动的界面,当条目很多的情况下,切入另一个Fragment如何在当前fragment上保存条目可能存在的状态?
  • 算法题:一个有序的数组(12345),旋转一次(51234),旋转两次(45123),在不知道旋转几次之后的情况下,如何去求最大值?(没做出来)

百度三面(总监面):

  • 讲一下你项目的优点,说了重构天气用到了MVP,MVP与MVC的区别。
  • 抽象与接口的区别,一个接口和一个抽象类有相同的方法,子类继承并且实现这个接口,编译器会报错吗?如果报错,怎么去分开这两个函数?(事实上,并不会报错,可以去试试)
  • 算法:斐波那契的优化(注意用非递归的形式,变量名的规范被面试官吐槽了,当时写的太急了,好尴尬变量名居然被吐槽了,所以随时都要注意)
  • 购物软件上,选择商品到支付完成经历了什么流程?
  • 平时喜欢做什么?有什么爱好?最近一次旅游是什么时候?最近一次休闲是什么时候?手上还有什么offer?平时读什么书?职业规划是什么?(讲了一下自己希望就是坚持技术,并且进入一个好的团队,可以邀请大家去共同开源,封装框架等等)?那么这样一个团队你觉得应该具有怎样的素质?(感觉这里答得不好)平时去的技术论坛?
  • 有什么问题要问的?(问了下百度文化:简单可依赖)

~~~

2016年我还是过了百度,也拿了顺丰,小米,顺丰是在一天完成所有面试,记不清题了

这篇发在自己搭建一个网站上,还租了个域名,www.merryzoe.com,后面没搞了,做了两年自由插画师和作者,现在回看这段,只觉得终面其实就是走个过场,如果运气好,跟你同水平的对比各种原因,就进了

运气不好,就拜拜了

看本仙女日后有没有空再把我的merryzoe搞起来,发点自己的文学作品和千万级别的画作~~哈哈哈,just kidding!

猜你喜欢

转载自blog.csdn.net/u012451520/article/details/89024968