记录一次美团+小米+VIPKId+CVTE的Java后台开发面试经历
本人秃顶程序员
有些我记不清了,大概记得的就这些
一面:
- 给了一道编程题,从方格中的某一点怎么去到另外的点,有多少种走法
- 数据库联合索引,比如用的是A_B_C,给出几种场景,问在搜索的时候会什么时候会用到索引,讲讲一般怎么对数据库进行优化和explain的用法
- Integer t = null; int m=t; System.out.println(t) 其实考的是拆箱和装箱,再编译阶段是把字节码加进去,真正进行拆装箱的对坐还是再运行上
- error和Exception区别 列举几个常见的错误
二面:
- 死怼虚拟机,新生代和老年代的区别究竟是什么?垃圾回收器的算法有哪些?垃圾回收期的名字有哪些?stop-the-world究竟干嘛啦
- 数据库的索引为什么用树,对数据库有没有什么了解
- 说说集合有哪几种?hashSet的底层是什么?它不安全再哪里?hashmap为什么不安全?(一定要把那2中情况说清楚,环出现了会有什么后果)?如果让你来做,怎么在不加锁的前提下保证它的安全??
- JMQ是怎么保证我一定会收到别人发的消息
- nio和aio的区别,一定要知道的很清楚,所有的细节
- new一个线程池的参数
- 2个同步shopId让我来做同步怎么同步
- 1000000个数,找K个最大
- 快速排序
- spring涉及到的设计模式
三面:
- 了解分布式锁吗,知道怎么用吗
- 知道项目中用到的远程框架它是怎么报警的,比如它怎么能在web页面进行监控,数据怎么上去的,,worker的底层吗,zooker是个什么东西,elastic是个啥
- 平常怎么进行mysql的优化
- 还出了一个概率题,比较简单,我就不说了
- string是在新生代还是老年代还是永久代,用的虚拟机是什么版本的
- 2个同步shopId让我来做同步怎么同步
- ibatis和mybatis的不同
- redis的2中持久化方式
- 除了jsf还了解什么远程框架,说说对比
记小米面试(感觉小米面的很宏观):
一面:
- 怎么学习redis的(学习一门技术的方法)
- redis是什么
- 为什么要用redis,使用场景
- redis相对于其他类似产品的亮点
- mysql中varchar和char的区别,如果把一个int类型的数据存储中一个varchar,有什么影响
- arraylist和linkedlist的区别,各自的优缺点
- 单线程和多线程的优缺点
- mysql加索引和不加索引的优缺点
- 说一下redis的持久化过程
- 如何用一个数组模拟一个栈
- 有几种锁
- mysql主从复制
记VIPKId
一面:
- 讲项目,有没有想过数据库中存的数据量有多大,一个接口的承受力有多大,调用接口时传的数据量有多大
- StringBuilder和StringBuffer有什么区别
- String s = "a"+"b",一共有多少个字符串
- 讲讲arrayList和linkedList区别
- 讲讲cas,乐观所操作
- threadLocal变量
- 有几种方式减少Hash冲突
1.链表---》红黑树 2.数组扩容 3.K取大一点
二面
(问的很基础,答得很混乱,很多东西让自己写写不出来,看能看的明白,还是自己理解不到位!!!)
- 围绕内部类,父类子类静态代码快,无参函数的加载顺序 ,还有内部类和外部类之间成员变量的访问问题
- java的几个限制访问范围的字段
- 围绕单利模式 这个就对自己很无语了,明明特意看过,还是写的错东错西,没有理解static new
- 给了一个手撕代码,着重考临界值的处理问题,面试官多次强调代码要些规范,他要的是可以直接运行的!!!
记CVTE面试经历:
一面:
- 手撕了一个很简单的代码,求一个字符串中出现次数
- 对jvm有什么了解,吧啦吧啦的说了一堆
- 对多线程有什么了解,又吧啦吧啦的说了一堆
- 对数据库有什么了解,吧啦吧啦的说了一堆,给了一个题:表A 有ID字段 值为1 2 4 表B有ID字段 1 2 3求A相对于B的差集
- 讲了一下项目,又巴拉巴拉巴
二面:
- 首先吧啦吧啦的讲了一通项目,说道校验的问题,面士官问想实现自动配置,要怎么做,先说可以放在配置文件,然后说可以放数据库,又说逻辑代码还是会写死,让继续想
- 单利模式构造函数是Private的,如果用反射把他设置成public,是不是会有危险
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。