一面

第一轮面试上来让我自我介绍,然后着重问了一波项目,问的挺多的,项目还是要多准备一下。因为我说了下有ios和Android的学生管理系统开发经验,就问了一下我ios和Android的区别,估计他是ios的,,,我夸了Android太多了,汗~

1.进程和线程的区别以及java的线程代码

2.http和https的区别

3.https的连接过程

4.劫持证书了解过吗

5.死锁的必要条件和死锁的线程例子

6.dns协议

7.写个sql建表的语句

8.数据库索引及优化

9.写个算法题:

(1)给定长度为n的整形数组,给定小一点的正数k,找到数组中出现次数大于 n/k 的数字。

举几个例子: 1. 假设 n=100,k=10,那么需要找到数组中出现次数大于 10 的数。

(2)假设要求空间复杂度为O(K),时间复杂度尽量低该怎么做?

 

二面

没让我自我介绍,看了看我上轮的面试情况,夸我理论扎实,嘿嘿(●ˇ∀ˇ●),让我解释下mvc,因为我简历有相关项目。

1.三次握手、四次挥手

2.tcp、udp的优缺点和特点

3.滑动窗口

4.拥塞控制

5.设计模式(讲了下单例,工厂,抽象工厂还有建造者,让我写单例模式源码)

6.问了下进程的调度算法,并让我选一个最合适的调度算法,说明理由

7.hashmap源码(数组+链表、红黑树)

8.谈谈jvm、gc机制

9.解释下数据库事务

10.写个算法题

给定一个n位的正数(包括0),调换两个位置的数,使其达到最大值。

eg:7891=>9871.

进阶:不限定正负,使其达到最大值。

 

三面

又让我自我介绍了一遍,然后怼了一下,暗示我项目含金量不高,汗。。。

1.忘了、、、、

2.写个算法题

跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置,如果跳不到,则输出-1.

示例:

输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
     从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

 

结语

面试官问了下我的面试的时间问题,这个时间自然是说得越长越好辣。。。还有一些面试题我忘了,后面想起来再更吧。大家面试的时候被问到了问题,千万别局限于这个问题,多发散,能多说就多说。

最后三个面试官给了我一个评价:

理论基础知识扎实,算法思想很好,编程能力有所不足。

 

ps:一面面试官上来说自己是网易的,hhh,场面一度非常尴尬。

更多相关文章

  1. android 面试题汇总
  2. Android(安卓)获取当前地理位置信息
  3. android Spinner控件详解
  4. 3月份工作回顾
  5. 历年阿里巴巴面试题集,蚂蚁金服Android面经!
  6. Android(安卓)中 View移动总结:ViewDragHelper学习及用法详解
  7. Android屏幕切换左右滑动
  8. Android学习笔记进阶14之像素操作
  9. Android有那些好的进阶书籍呢

随机推荐

  1. 仿ios沉浸式头部
  2. Android 官方文档:(一)动画和图像 —— 1.5
  3. 如何将一个Activity设置成窗口的样式
  4. Android关于Bitmap内存溢出的一点想法
  5. android顶部栏属性ActionBar Options
  6. Android中对TextView中的部分内容的字体
  7. android文件系统制作教程
  8. android viewpage的使用
  9. Android检查网络状态步骤
  10. Android模拟点击的四种方式