天天看点

2018.07.19 面头条安卓实习

先来个自我介绍

Blablabla

下面是正式问的问题,总体来说比较基础。面试官大佬是沿着问题来深入继续问的

1.  对线程同步/互斥理解
2.  锁的概念
    a)  包括在wait时要怎么唤醒
    b)  Wait 和 sleep的区别
3.  Synchronized 和 Lock 区别
4.  死锁的原因
5.  进程和线程的区别
6.  进程之间的数据共享
    a)  顺便问了下安卓四大组件
7.  进程最大能占用多少内存空间
8.  设计模式(我说了个生产者消费者模式
9.  用synchronized编程生产者消费者模式
10. Activity的启动模式有哪些
           

下面因为知道我不是科班出身(大概),然后问了些比较基础的算法题(忘了顺序

1.  红黑树(不过我不会
2.  哈夫曼编码原理
3.  二叉树知道吧(了解了解),那写个二叉树的广度遍历呗
于是我没听清广度,不小心写了个深度遍历。然后面试官开始引导应该咋写。然后我ummmmm强行按照理解写了下,然后他再提示了下……最后没写出来
4.  堆的概念。堆排序的概念(懂概念
5.  编程堆排序(不会again
           

算法的大概是这些了,这部分扯了有半个多小时的样子

然后大致说了说

1.  JVM的内存模型
2.  方法栈的概念,存放的东西
3.  假如从方法A跳到方法B,B 里的return机制是一个怎么样的过程
结果我说JAVA里的我不大清楚,但是可以扯一下做C/C++里的原理(我想大致是差不多的
4.  JVM的垃圾处理的时间(这个是因为扯了点C++方面的东西,然后我提到了一下用delete清内存,于是问这个)
5.  网络模型(http  TCP/IP 之类的,不过我不大会
6.  Hashmap & 是否线程安全
7.  怎么优化数据库
           

好了大概是这些,总时长是1小时11分钟。

应该还有一些内容忘记了,下次可以录个音

说起来面试前准备的东西用到了60%,还远远不够

2018.07.19 面头条安卓实习

继续阅读