记录一下自己的面试过程,好记性不如烂笔头。
一、迈思(面试了30分钟)
1.自我介绍
2.左连接(a表左连接b表,a表全部数据出来,b表没有的数据为空)
3.a表左连接b表,b表左连接c表,c表左连接a表,这样的数据是什么数据(博主当时有点懵,回答全连接,全部数据会出来。。。)
4.sql:一个班的学生有两个字段,一个字段叫分数,另外一个字段叫组名,有4个组,查出每个组的第一名,sql怎么写
select group_name,max(score) from table group by group_name order by group_name
5.数据库引擎有哪些(myIsam,InnoDB等等)
6.myIsam和InnoDB的区别(InnoDB支持事务,外键,奔溃后恢复,InnoDB行级锁,myIsam表级锁)
7.myIsam的优点(博主当时只记住了InnoDB的优点,没想到面试官问到了myIsam的优点,速度快,磁盘空间占用少)
8.Spring的两个特性(IOC和aop,这两个特性用到了哪些设计模式)
9.java的容器,集合(老生常谈了,list, set, map等等,另外说一下有哪些实现类)
10.hashmap的实现(数组+链表+红黑树)
11.put一个key和value,怎么确定数组的下标,如果有两个key put到同个位置,怎么做?(根据key计算hash值,根据hash确定下标等等)
12.是线程安全的吗?有哪些实现?(不是,线程安全的可以用hashtable,concurrentHashMap等等)
13.concurrentHashMap是怎么实现线程安全的?具体的实现?两个线程同时put 两个key是怎么做的?
(1.7数组+链表,分段锁,1.8数组+链表+红黑树,cas+synchronized)
14.java集合的排序(stream中的sort),内部是怎么实现的?原理是什么?了解过哪些排序?
(Comparable和Comparator 参考链接)
15.java集合的分组(groupingby (对象::属性))
16.函数式方法(接口),什么条件下才能用?这种适用于所有的吗?还是说有一定的限制?
17.后台的请求比较慢,一般是什么原因造成的?后台请求直接卡了,怎么排查,日志没报错呢?(查一下慢sql,需要大量运算)
18.怎么查锁日志,线程日志?(这个不知道)
19.常见线程池,这些都是什么样的线程池?(newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor,现在有6种线程池了,没记那么多)
20.java锁,并简单说一下锁,类名,关键字,锁的实现等等(ReentrantLock,迷迷糊糊说了一些,毕竟记得不多)
21.谷歌guava缓存用过吗?(没用过)
22.项目有哪些难的实现,你是怎么做的?(根据自己的情况去回答)
二、亲邻科技(甲方)
过去面试的时候,是星期五晚上8点多了
一面:hr(不到10分钟)
简单自我介绍,对技术,薪资有要求什么的,跳槽原因,评价自己,公司加班挺多的,问能不能接受
二面:技术(不到20分钟,答的有点差)
1.对称加密和非对称加密的区别
2.跨域脚本攻击(还有好几个没听过)
3.数据库隔离级别(读未提交,读已提交,可重复读,串行化)
4.不可重复读和幻读是什么?(a重复读同个数据,b修改数据,a再次读,就是不可重复读;a修改某些数据,b从中插入一条数据,a会发现还有一条数据没修改,那么就是幻读)
5.死锁是什么?产生原因?怎么解决(竞争同一资源,四个条件,破坏四个条件,这一块没答好)
6.服务器cpu百分百,怎么排查(ps查看进程,答的不是很好,毕竟这方面没研究。虽然公司也遇到了cpu百分百的情况,但是解决办法是把需要大量运算的mrp功能给禁掉,后面加内存,加服务器。这一块我可不敢实话实说)
7.nginx可以用来做什么(负载均衡,反向代理,面试官还继续问还有呢,我不知道什么了,我说可以拦截ip等等)
8.cas是什么?(乐观锁的一种实现,会造成aba问题,加版本号或者时间戳)
9.redis持久化机制,rdb和aof的优缺点(全量数据备份,安全性低,备份间隔时间长;增量数据备份,数据安全,文件大)
10.spring异步注解(没用过)
11.讲一讲类加载机制
12.内存泄露和内存溢出的区别
13.还问了其他一些题目,不太记得了
14.讲一讲项目,你是怎么做的
三、奥萨医药(甲方,面试了35分钟左右)
看到一个小姐姐,问路,好漂亮
进去之后,填资料,填完资料,就问问题
1.mysql的常用引擎,区别(InnoDB:支持事务,外键,行锁,支持奔溃后恢复,面试官还问为什么能恢复。Myisam: 表锁,全文索引)
2.sql有哪些优化,常用索引(查询哪些字段,不要用*, null, like后面的"% 等等)
3.sql语句执行的过程是怎么样的?怎么分析explain
4.假如有100w数据,我想要第60万行之后的数据,怎么优化(用limit,加索引,面试官太变态了,问加了这些还很慢,怎么办)
5.redis是什么,为什么比mongodb热门?(非关系型数据库,基于内存等等,为什么热门,这个我就说不知道了,因为不知道mongodb)
6.什么是非关系型数据库,与关系型数据库的区别?(没回答好)
7.除了基于内存,读取速度快,还有哪些原因让redis快?(没回答好)
8.常用的数据类型,应用场景(String,List,Set,Zset,Hash,面试官还问为什么,额,简直是抽丝剥茧呢)
9.持久化机制,rdb和aof的区别,你会怎么选择哪种机制(全量和增量,备份时间长短,数据安全等等,现在有混合机制)
10.淘汰策略有哪些(答到过期策略那里去了,面试官提醒了)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ee76e7778b759fad045d2154e7c20f9e.gif)