好文档 - 专业文书写作范文服务资料分享网站

面试二十多家公司总结的java高级面试题

天下 分享 时间: 加入收藏 我要投稿 点赞

面试二十多家公司总结的java高级面试题

一、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)在什么情况下会出现,如果解决使用什么命令调整栈内存的大小

二、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上吗 16.hashmap、treemap的区别

17.set的元素是不能重复的,那么是怎么判断一个元素是否重复呢? 18.io与nio的区别是什么 19.简述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以下,你会从哪几个纬度去分析。

面试二十多家公司总结的java高级面试题

面试二十多家公司总结的java高级面试题一、jvm内存模型以及调优篇1.jvm内存模型这块有了解吗?讲讲你的理解2.堆外内存是存放在哪的,受不受jvm堆内存大小的限制3.cms和g1的区别4.gc的触发机制是什么5.新生代使用什么收集器6.直接内存主要是存放什么的7.各个收集算法的优缺点8.jvm是怎么
推荐度:
点击下载文档文档为doc格式
5j19k4yuxz6h1tx45d7638ccg96n4k006zz
领取福利

微信扫码领取福利

微信扫码分享