今天本着愉快的心情,面试了两家还不错的互联网公司,一家某未科技,某扑体育两家公司的环境和规模都是相当不错的,都是我想要去的公司,然而事与愿违,由于自己能力原因,和这两家公司说拜拜了。
从哪跌倒就从哪爬起来,不让失败再一次发生,是时候做出改变了。加油,奥利给!!!那我就来简单的想一想今天都问了一些什么东西吧。
某未科技:
1.笔试题一套(挺基础的,但是题很多,三页,我做了接近50分钟)
选择:几个简单的string引用的题,多线程,IO流,看程序输出结果
简答题:结合java内存模型分析高并发问题,排序算法,linux的几个命令,session如何和浏览器联系的,单例,设计一个RBAC权限模型等
2.技术面:(背景:因为这个项目组是公司刚成立的,做一个类似大众点评的功能的APP,刚好我简历上有类似的项目经历,他们就不看我别的项目了,就疯狂的问我关于这方面的业务和解决方案)
1.讲讲你xxx公司的某一块的业务,用到的memcache缓存的使用
2.直接问:你们公司评论模块的模型是怎样设计的,这个评论可以是别人评论,自己评论,别人回答你的评论,自己也可以删除评论等功能的模型(可以借助Redis实现)
3.mysql的隔离级别,索引,mysql存储数据的格式,mysql的锁(他们问的可不是这个概念,真的往死里面问,哭了。。。。)
4.JVM的堆栈信息,如何模拟堆内存溢出,栈内存溢出,GC的几个算法,都有啥缺点
5.java的线程池的核心参数(拒绝策略详细问)
6.springcloud的组件讲一下
7.springboot升级遇到的问题(我简历有些项目的升级)
8.java的锁
9.DNS域名解析相关的问题(还问了一些别的计算机组成原理和网络的问题,我说我不会,就没问了)
10.为啥一个请求过来,服务器会知道???
11.rabbitmq的模型有了解吗?
12.说下rabbitMQ如何解决消息丢失和重复消费的问题
13.springMvc的执行流程,详细问了Handler,dispatchServlet相关的东西
14.工作中高并发和线程安全有用过吗(问分布式事务)
好像大概就这么多了,大概面了一个小时多吧
某扑体育的面试:
1.笔试题:不想说了,题不是很难,但是要是不懂计算机网络和java8的同学可能有点吃力
2.技术面试(背景:由于笔试题有一道算法题,我写的不对,其实我是不咋会,面试官先和我讲一讲这道题我的解决方案)
1.让我讲一讲我现在工作的业务,用到的技术,和遇到的问题(不瞒大家说,我在这家公司主要是写的是前端,后端写的不是恨多,一些核心业务我是不知道的,我压根说不很清楚,也不敢大事渲染一些业务,我就简单的说了一下,被面试官怼了,就这业务????)
2.讲一下我简历用到kafak做的一个日志统计(也被面试官怼了,说设计不行)
3.java的锁(主要说了自旋锁),valitate,syn和lock等
4.springCloud的一系列组件讲一下(zuul,eureka,ribbon,feign,hys,config,apolo等)
5.分布式事务讲一下
6.线程池
7.redis的分布式锁有了解吧,说下setNx可以设置的参数,都有啥区别
8.怎样保证高并发和线程安全呢(我说可以用缓存和加锁,他来一句你们用syn还是lock,讲下区别,顺便又说起了分布式锁)
9.java的map,linkHashMap,hashmap和concurrentHashMap,hashTable(问了hashMap的put和扩容的源码,还有他的index的生成规则,concurrentHashMap安全的原理,如何把map变为有序的)
10.mysql的索引
好像就这么多,大概聊了一个小时
从哪跌倒就从哪爬起来,失败并不可怕,加油好好学习,未来可期!!!
一条科技的面试总结:(这家的面试题其实好好背背面试题,应该妥妥的,因为没有算法和计算机网络等。可惜当时基本是裸面的)
1.redis的缓存的击穿和穿透,解决方案(问我之前项目有一个用到的缓存的地方,我自己嘴贱,说我的缓存时间是2h,他就让我说下,在缓存失效的同时,大量请求过来咋处理,这其实就是缓存穿透),我这边普及下这几个概念吧
https://www.cnblogs.com/xichji/p/11286443.html
- 缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
- 缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。
- 缓存雪崩:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力。
2.问下memcache和redis已经本地缓存map的区别
3.mq的那几个常见的问题:消息的丢失,顺序,重复消费问题
4.ConcurrentHashMap的源码
5.AQS
6.LOCK和Sync
7.mysql事务的特性,隔离级别,spring的事务传播行为
8.mysql的索引,聚簇与非聚簇
9.想不起来了。。。。