总结
- 如果面试官没问什么技术问题,基本就挂了。
- 问题问清楚了、想清楚了再回答,不然容易考虑不全。
- 把算法、数据结构与JAVA自带的类、集合联系起来,能直接用就不要自己实现。
- 自我介绍好好准备,不要随口说。
- 不要悲观,不要觉得回答的不好就肯定挂了。只要回答到面试官想要的点即可,没有标准答案。
- 反问要好好准备,不要瞎问。
美团点评 2019-08-22 星期四 25分钟 电话面-当场挂
(说没有我的简历)
- 自我介绍
- 在校成绩
- 英语6级
- 愿意来北京实习吗
- 接口与抽象类的区别,业务场景
- 抽象类有构造方法,接口没有
- 抽象类可以有变量,接口只能有静态常量
- 抽象类可以有实现了的方法,JDK1.8后接口可以有default关键字修饰的实现了的方法
- 抽象类和接口都无法实例化
- 一个类可以继承一个抽象类,可以实现多个接口
- 一个字节的寻址范围
- 0~2^8-1
- final关键字的用法
- 修饰类:类不能被继承
- 修饰方法:方法不能被重写
- 修饰变量:变量初始化后不能被修改(不能修改值类型的值,不能修改引用类型的引用)
- 修饰形参:形参只能被赋值一次,确保匿名内部类对象可以安全访问
- 作用
- 禁止类被继承、禁止方法被重写、禁止多次赋值。
- 效率更高:被final修饰的方法在编译器即可绑定。
- HTTP
- 工作在哪一层、get与post的区别
- get把数据追加在url后面;post把数据放在HTTP请求实体中
- get提交数据有大小限制(因为URL有长度限制);post提交数据没有大小限制
- get可以使用实体传送数据吗?
- 从HTTP协议来看,get可以使用实体传送数据,但是因为get被设计通过URI识别资源,所以一般实现上get不使用实体传送数据
- 工作在哪一层、get与post的区别
- TCP与UDP区别
- TCP面向连接;UDP面向无连接
- TCP提供可靠服务;UDP尽最大努力交付
- TCP保证数据有序;UDP不保证
- TCP面向数据流;UDP面向数据报
- TCP支持一对一通信;UDP支持一对一、一对多、多对一、多对多通信
- IP分类,我们常用的是哪一类?
- 创建线程的方式
- 线程池的参数
- maximumPoolSize-corePoolSize的含义
- 默认一定空闲时间后会被销毁的线程数。
- 等待队列的长度
- 一般设定为<=超时时间 * 单位时间内可处理的任务数
- maximumPoolSize-corePoolSize的含义
- 线程池的参数
- 编译原理会吗?
拼多多学霸批 2019-08-10 星期六 南京现场面-8月28日-挂
1、技术面 50分钟
- 自我介绍
- 看项目用的SpringBoot,问使用的什么配置方式,如何配置路由;如果有.../a/b、.../a/b/c,对于URL为.../a/b会映射到哪一个。
- 实习相关。
- 如何拿到IP地址,提到了网络地址转换。
- tcp三次握手过程、假设A向B发起连接请求,B发送的seq和A发送的seq有什么关系。
- tcp四次挥手过程、FIN-wait-1、FIN-wait-2的目的是什么。
- hashmap什么时候扩容,以及扩容过程。
- ConcurrentHashMap为什么是线程安全的,它的最大并发量是多少?
- 代码题
- 一个长度为N的数组,相邻数字不相等,假设左右边界为负无穷;如果一个数比左右两个数都大,称为极大值,求任意一个极大值的坐标。
- 先给出了O(N)的解法,然后问有没有更快的?给了提示“这个数组是否一定有极大值?”,最后想出了二分法。
- 加大难度:如果是一个二维数组,边界默认负无穷;如果一个数比上下左右都大,称为极大值,求任意一个极大值坐标。有没有小于O(N^2)的方法?没想出来,然后带着我分析,最后告诉我时间复杂度O(N),让我回去好好看看。。。
- 反问
2、HR面 10分钟
- 常规问题+反问
3、技术面 20分钟
- 实习相关
- 登录状态的token被篡改了,怎么办?
- 秒杀系统中用Redis实现异步话,并发量高的时候会有很多线程处于等待状态是不是,为什么?
- 笔试题思路
- 反问
虾皮 2019-08-30 星期五
1、技术面 牛客视频面试 1h 凉
- 实习相关
- 为什么要在代码中设置Cookie超时时间?面试官说SpringBoot本身通过配置就可以管理Cookie,看出你对框架不熟。
- Redis中的一致性哈希算法了解吗?
- 介绍一下
- 为什么要有虚拟结点?
- TCP粘包、拆包
- 原因
- 数据长度大于TCP发送缓冲区剩余空间大小时,拆包
- 数据大于MSS(最大报文长度)时,拆包
- 数据小于TCP发送缓冲区大小时,TCP将多次写入缓冲区的数据一次发送出去,粘包
- 接收端缓冲区中的数据没有及时读取时,粘包
- 解决方法
- 设置数据边界分隔符
- 原因
- 场景题
- 你和你同学约定明天什么时间打篮球,假设使用短信方式通信,但是这个短信对方不一定能收到,你会怎么做?
- 参考了TCP三次握手
- 为什么需要三次?如果只发2次会有什么后果?
- 有2个接口:一个负责不停地接收数据、一个负责不停地返回这些数据中最小的10个数字;你怎么实现?
- 说了数据缓冲池+堆排序
- 堆的大小是多少?
- 说了数据缓冲池+堆排序
- 你和你同学约定明天什么时间打篮球,假设使用短信方式通信,但是这个短信对方不一定能收到,你会怎么做?
- 手撕代码
- 二叉树的广度优先遍历
- 自己构建二叉树
- 遍历使用非递归方式
- 单链表的反转
- 自己构建单链表
- 非递归方式
- 二叉树的广度优先遍历
- 反问
- 我感觉除了代码题其他回答的不好,您有什么建议?
- 我们对于应届生要求其实不高,建议你多敲敲代码,尽量去大公司实习,或者平时接一些外包工作,在实践中学习。
- 如果你不明确自己未来想从事什么方向的话,工作的前几年就是在碰运气。如果你明确自己未来想从事的方向就会有明确的目标,这前提是你对各个方向有一个了解,知道未来的发展前景。
- 我感觉除了代码题其他回答的不好,您有什么建议?
美团点评(安卓)2019-09-04 星期四 视频一面(看不到面试官的脸) 凉
- 自我介绍
- 实习和项目介绍
- 为啥投安卓?
- HashMap
- 数据结构
- 如何解决冲突
- 进程和线程的理解
- GC的了解
- TopK编程题
- 要求K个数有序
- 手撕:堆排序
- 借助API:使用TreeSet维护K个数,遍历数组保留当前Top K。
- 不要求K个数有序
- 手撕:快速排序
- 要求K个数有序
- 反问
拼多多 2019-09-10 星期二 微信视频一面 50分钟 凉
- 自我介绍
- 实习相关
- Cookie与Session
- 区别
- Session共享问题
- ConcurrentHashMap为什么是线程安全的
- HashMap为什么是非线程安全的
- final和volatile的作用
- 锁
- 可重入锁的原理
- 直接调用对象的wait、notify与使用锁的区别
- 进程与线程
- 线程池
- 参数
- 执行步骤
- 假设正在执行的核心线程用时比较久,任务队列中的任务就可能一直等待,怎么办?
- @autowired原理
- MySQL数据类型
- int类型的上下界
- time、timestamp区别
- 代码题
- 笔试第一题的思路(感觉像是看是否是自己写的)
一个长度为N的整数数组,数值范围很大,有一个数出现了至少N/2-2次,找到这个数。 - 你觉得你有什么强项是我没有问到的?——凉了
- 反问
- 被感谢了。。。。
2019-09-19、21 中兴 专业面、综合面
专业面
- 检查证书等
- 自我介绍
- 问实习
- Java基础
- 你对GC的认识
- 什么是多态
- 接口和抽象类的区别
- 什么是线程安全
- 你对锁的认识
- synchronized与ReentrantLock区别
- C++(有C++编程比赛经历)
- 给看了两道题,看结果是啥
- 期望薪资
- 工作城市
- 有没有女朋友
- 有啥想问的?
综合面
- 检查证书
- 自我介绍
- GC
- 面向对象特点及你的理解
- MySQL默认端口号是多少?
- 你的优势
- 对加班的看法
- 了解中兴的加班情况吗?
- 对中兴的认识
- 创新能力怎么样、如何体现的?
- 实习中和别人合作有么有遇到过矛盾,如何解决的?
- 有啥想问的?