前言
马上又到一年一度的金九银十跳槽季,很多张三肯定在准备面试了,作为一个暖男,我就利用这周时间先去随便面了几家收集点面试题,不过因为我是去年才毕业的,只能去面一些2-3年左右的岗位,更高级的岗位还没办去面。而且因为目前还是比较菜,没有去面一些互联网公司,面的只是一些传统的公司。
我把面试所收集的问题和公司的base和城市(虽然都是在西安)都写在了前面,希望可以给各位张三们一个参考。
公司1:10-15k 西安
笔试: JVM分代 新生代调优参数、synchronized和voliate、设计模式、mysql内联 左连 右连、UDP和TCP区别、四次挥手详细过程、分布式事务、spring注入方式、BIO NIO AIO区别、mybatis hibernate JPA区别
面试:
1.项目为什么要用分布式微服务
2.ES用在哪个场景,怎么把数据存入ES的
3.spring和springboot区别
4.MQ应用场景
5.详细说一下策略模式
6.K8S和docker
7.数据分析了解吗(目前不了解,计划下一步去学习)
8.物联网了解吗(不会)
公司2:9-13k 西安
1.网关的作用?zuul和gateway的区别?在zuul中实现了那些功能?(登录)?JWT了解吗?实现了哪几种登录方式?
2.Nacos和Eureka区别?为什么要用配置中心?配置中心更改配置后项目会热部署吗?
3.springboot和springMVC区别?
4.mysql左连右连?子查询和in有什么不同?in查询中加""和不加""的区别?mybatis和JPA各自优缺点?JPA中我要写一个复杂的查询sql怎么写?${}和#{}区别?
5.oracle用过吗?mysql事务隔离级别?我要解决脏读怎么办?order by和group by的执行顺序?
6.elk在项目中怎么用的?es中桶是干什么的?ik分词器怎么实现的?查询语句怎么写的?项目中数据量有多大?
7.MQ在项目中的使用场景?
8.linux熟悉吗?docker的几个命令?分布式项目怎么部署的?
9.redis在项目中哪些地方用到了?
10.ngnix用的多吗?
11.秒杀怎么实现的?接口返回速度?
12.jdk1.8新特新?lambda和stream用的多吗?
13.两个list取交集有哪些方法?set和list区别?set怎么遍历?
14.项目中服务治理是怎么做的?
15.遇到过跨域问题吗?怎么解决的?
公司3:9-13k·13 西安
笔试:
1.ASCII的二进制范围?1在ASCII中表示为?
2.中文在byte中占几个字节?gbk中占几个字节?utf-8中占几个字节?
3.system.out.println中system、out、println分别表示什么?
4.int x = 2;float y=x; system.out.println(y);?
5.tcp/ip的四层和七层协议?三次握手和四次挥手?
6.http和https区别?404、502、504分别代表什么?
7.加密中加签解签?加密解密过程?知道哪些加密方式?
8.重载和重写的区别?
9.抽象类和接口的区别?
10.JSONObject与JSONArray常用方法?分别继承了哪个类?
11.linux中,创建一个文件夹和创建一个空文件?查看java的进程状态?如何下载和上传文件?192.123.1.110的8888端口是否可以连接通?怎么验证本机的8888端口是否处于监听状态?
12.linux的top命令中的参数?怎么看服务器负载状态和内存占用状态?
13.给了一个student类,里面有string name,int age,float num三个属性,现有一个装这个类的list为stuList,按num来对这个list排序。
14.mysql一个表有id(主键),name(名字),dept(部门),salary(薪资),查出每个部门中salary>5000的人数?查询出各部门salary>5000且人数大于20的部门。
这家的笔试题一共有4页A4纸那么多,只记住了这些。
至于面试,在笔试完等了将近两个小时后开始面试的面试官对我说一般你这种工作变动比较频繁的就算面过我们也是基本不考虑的(WTF???),然后一气之下我就直接走了,没有进行面试。因为前一天这家公司的hr跟我打过电话,问了我为什么想重新找?现在这家公司的薪资、福利、包括五险一金缴纳比例都问了之后让我去面试,然后面试时跟我谈这个,这不是浪费我的时间么。虽然我只是出来随便面一面收集点面试题,但是面试官那个爱理不理你的样子,加上说的话是真的让我很不舒服,所以算的上是一次很不愉快的面试吧。(吐槽一波)
公司4:10-15k·14 西安
1.对java的理解?
2.hashMap结构?数据插入流程?线程安全吗,为什么?要保证线程安全用什么?concurrentHashMap是怎么保证线程安全的?为什么jdk1.8要用synchronized+cas?
3.并发包下还用过哪些?ReentrantLock加锁过程?
4.volatile怎么保证可见性的?cas的aba问题怎么解决?
5.线程池工作流程?线程池参数?项目中用的话怎么保证一定能拿到返回结果?
6.spring事务?静态代理动态代理区别?什么情况下@transactional会失效?spring循环依赖怎么解决的?
7.dubbo工作流程?(dubbo我确实了解的比较少,只回答了一个工作流程)
8.spring cloud负载均衡是哪个组件?负载均衡算法?eureka怎么保证高可用的?熔断和降级区别?
9.redis集群了解吗,有哪些集群模式?cluster怎么确认数据在哪个节点?和数据库数据一致性怎么保证的?缓存雪崩、穿透、击穿怎么解决?
10.项目分布式锁用的redis还是zk?区别?
10.innodb和myisam区别?innodb支持表锁吗?mysql索引为什么不用hash?索引失效情况??sql优化步骤?
11.mq使用场景?消息丢失怎么办?怎么保证消费消息时的幂等性的?
12.分布式事务有哪些方案?各自优缺点?项目中用的什么?seata at模式怎么做到对业务无入侵的?
13.秒杀怎么实现的?怎么保证不超卖?
14.linux内存100%怎么排查的?
15.jvm类加载机制?知道哪些垃圾收集器?详细说一下cms垃圾收集过程?cms和g1区别?
总结
由于我还在工作,所以也只是面了4家,小伙伴们感觉题还是不够的话可以告诉我,我可以继续去收集。不过还是不推荐这样直接去对照题去一个一个的背题,从java的整个体系来复习比较好,因为不同的公司问的题肯定是不一样的,但是万变不离其宗,按体系去复习的话肯定是要比背题强很多的。
大家可以参考敖丙的这个脑图来整体复习。我最近也是按这个脑图来复习的,有一说一确实总结的比较到位。
地址:https://www.processon.com/view/5e86b713e4b0bf3ebcf4e376#map