盘点一下20家互联网公司的面试总结
Posted Java-桃子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了盘点一下20家互联网公司的面试总结相关的知识,希望对你有一定的参考价值。
前言
从五月份开始面试,断断续续面试了有将近二十家(并不是没有面试机会,是因为很多自己的事情需要处理哈),首先我目前做java做了六年,总结出这么多家问的问题都大同小异,也是看面试官的水平。有些面试官技术确实是很厉害的,就问你简历上的东西,从浅至深。也有些非常水的面试官,从他问的第一个问题,你就能看出这个面试官一个真实的水平。所以如果遇到了很水的面试官,就大胆说就行了。有可能面试官自己都不知道答案是什么。
最近都面试的公司具体都有哪些我就不说了,他们都有个共同点,就是java基础和并发这块都非常重视。
以下我是根据功能模块进行划分的,但是面试官肯定不是这样问的,大多数还是一问到底,会设计到多个模块
下面的面试题会持续更新,因为时间都比较久了,很多问题一时半会想不起了,等想到的时候再进行补充~本篇文章的所有Java面试题及答案我已经整理成了PDF文档,需要的【点击此处】获取
一:jvm内存模型以及调优篇
1.jvm内存模型这块有了解吗?讲讲你的理解
2.堆外内存是存放在哪的,受不受jvm堆内存大小的限制
3.cms和g1的区别
4.gc的触发机制是什么
5.新生代使用什么收集器
6.直接内存主要是存放什么的
7.各个收集算法的优缺点
8.jvm是怎么确定一个对象是否可达
9.java对象有哪几种引用?每种引用的生命周期是什么样的
10.如果线上出现了oom,你是怎么进行排查的(主要考察jps、jstack、jstat、jmap)
11.栈溢出(StackOverflowError)在什么情况下会出现,如果解决
12.使用什么命令调整栈内存的大小
二:java基础篇
1.HashMap的底层原理(1.8与1.7的区别必须要说出来)
2.HashMap是线程不安全的,并发场景下会出现什么问题
3.遍历HashMap的几种方式,那种更快
4.HashMap的扩容是如何实现的
5.CounrrentHashmap的底层实现原理,是如果实现安全的
6.计算CounrrentHashmap的size底层是什么样的
7.HashTable与CounrrentHashmap的区别
8.HashSet与Treeset的区别
9.List如果实现排序
10.String为什么是final的
11.String在内存中是如何存放的
12.设计模式相关(重要,单例就算了…烂大街了)
13.静态变量、静态代码块、代码块、构造函数。在类加载时,他们的执行顺序
14.volatile 变量是什么?volatile 变量和 atomic 变量有什么不同
15.switch能作用在string和long上吗
17.hashmap、treemap的区别
18.set的元素是不能重复的,那么是怎么判断一个元素是否重复呢?
19.io与nio的区别是什么
20.简述hash的一致性
三:多线程并发篇
1.java中都有什么锁
2.synchronize与Lock的区别
3.synchronize与Lock谁更快?
4.讲讲ReentrantLock这块你的理解
5.什么是可重入锁?有什么前提条件
6.Lock的锁是怎么实现的
7.Lock的公平和非公平
8.多线程有几种创建方式
9.java的线程池有几种
10.线程池的execute和submit的区别
11.线程池有哪几个参数,每个参数代表什么意思
12.线程池的拒绝策略有哪些,分别是什么
13.线程池可以设置哪几个阻塞队列
14.线程池底层是如何实现的,线程执行完毕是如何唤醒等待线程的
15.AQS是如何保证线程安全的
16.谈谈你对Threadlocal的理解
17.Threadlocal使用完之后需要清理吗?为什么
18.多线程之间如果保证数据的共享以及一致性
19.CAS是什么、会出现ABA的问题,如何解决
20.shutdown和shutdown的区别
21.多线程中,run和start的区别
22.Semaphore信号量的原理
23.countlatchdown使用过没,在什么情况下使用
四:mysql以及nosql相关
1.mysql中都有什么锁
2.什么时候会使用到行锁、什么时候使用到表锁
3.mysql索引的数据结构是什么样的?
4.如果让你设计一个表,你会怎么设计?注重哪几个点
5.myisam和innodb的区别
6.聚合索引与非聚合索引的区别
7.都做过什么sql优化
8.mysql可以不设置索引吗?为什么
9.mysql的特性都有哪些
10.mysql的隔离级别都有哪些、默认是哪个
11.ACID是什么
12.可重复读会导致幻读吗
13.redis都支持什么数据类型
14.redis有哪几种持久化方式,都有什么优缺点
15.redis的哨兵与集群模式你来讲讲
16.用过分布式锁吗?他是怎么实现的
17.什么是缓存穿透、缓存雪崩、如何避免
18.redis有哪几种淘汰策略
19.reids过期数据,是如何删除的
20.redis是单线程的,为什么还那么快
21.redis是如何存储数据的、说说你对哈希槽的理解
22.redis和mongodb的区别
23.mongodb也有索引,他的底层数据结构是什么样的
24.mongodb为何那么快
25.mongo的分片是如何实现的
五:消息队列篇
1.rabbitmq如果保证了消息的可靠性
2.如何保证生产者把消息发送到rabbitmq
3.如果保证消费者消费了消息
4.如何避免消息重新投递或重复消费
5.使用mq的好处
6.rabbitmq消息是如何进行分发的
7.rabbitmq如果做失败重试的
8.rabbitmq死信的理解
9.探探你对kafka的理解
10.kafka如果保证了消息的可靠性
11.kafka数据传输的事物定义有哪几种
12.kafka的消息是有序的吗
13.kafka是如何消费消息的
14.如果kafka中一个broker崩掉了,内部都做了什么是事
15.kafka如何保证了消息的不丢失
六:场景篇
1.有一个高并发抢购活动,你如何对这个进行系统设计
2.有个100G的ip登陆信息,现在只有十台台服务器4G的,需找出ip访问最多前十名的ip
3.现在生产出现了oom,你是如果进行排查的
4.经分析,线上有线程出现了死锁,请问你如何进行排查
5.现mysql经常报错死锁超时异常,问你如何进行解决
6.现有一条sql,每次执行耗时500ms,我需要将这个耗时保证在100ms以下,你会从哪几个纬度去分析
总结
确定了目标之后你成功了10%,但是剩下的90%之中,多数是坚持不懈的努力,你会遇到迷茫、遇到挫折,此时不要放弃,回忆你立定目标的决心,成功就在你眼前!习惯很容易养成,一件事情,只要你能咬牙坚持10天,它自然就成了习惯! 现代人变得越来越浮躁,不妨静下心来用音乐洗礼你的心灵!
Java学习笔记+Java面试真题
以上是关于盘点一下20家互联网公司的面试总结的主要内容,如果未能解决你的问题,请参考以下文章
一位面试了20+家公司的测试工程师,发现了面试“绝杀四重技”!
自动驾驶是一门怎样的生意?盘点5家创业公司商业落地的3条逻辑