19年BAT常问面试题汇总:JVM+微服务+多线程+锁+高并发性能

2019-12-20 10:46:18 浏览数 (1)

1.Redis 面试题

1、什么是 Redis?.

2、Redis 的数据类型?

3、使用 Redis 有哪些好处?

4、Redis 相比 Memcached 有哪些优势?

5、Memcache 与 Redis 的区别都有哪些?

6、Redis 是单进程单线程的?

7、一个字符串类型的值能存储最大容量是多少?

8、Redis 的持久化机制是什么?各自的优缺点?

9、Redis 常见性能问题和解决方案:

10、redis 过期键的删除策略?

11、Redis 的回收策略(淘汰策略)?

12、为什么 edis 需要把所有数据放到内存中?

13、Redis 的同步机制了解么?

14、Pipeline 有什么好处,为什么要用 pipeline?

15、是否使用过 Redis 集群,集群的原理是什么?

16、Redis 集群方案什么情况下会导致整个集群不可用?

17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

18、Jedis 与 Redisson 对比有什么优缺点?

19、Redis 如何设置密码及验证密码?

20、说说 Redis 哈希槽的概念?

21、Redis 集群的主从复制模型是怎样的?

22、Redis 集群会有写操作丢失吗?为什么?

23、Redis 集群之间是如何复制的?

24、Redis 集群最大节点个数是多少?

25、Redis 集群如何选择数据库?

26、怎么测试 Redis 的连通性?

27、怎么理解 Redis 事务?

28、Redis 事务相关的命令有哪几个?

29、Redis key 的过期时间和永久有效分别怎么设置?

30、Redis 如何做内存优化?

31、Redis 回收进程如何工作的?

32、都有哪些办法可以降低 Redis 的内存使用情况呢?

33、Redis 的内存用完了会发生什么?

34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set他们最多能存放多少元素?

35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证redis 中的数据都是热点数据?

36、Redis 最适合的场景?

37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?

38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

39、使用过 Redis 做异步队列么,你是怎么用的?

40、使用过 Redis 分布式锁么,它是什么回事?

2.Dubbo 面试题

1、Dubbo是什么?

2、为什么要用Dubbo?

3、Dubbo 和 Spring Cloud 有什么区别?

4、dubbo都支持什么协议,推荐用哪种?

5、Dubbo需要 Web 容器吗?

6、Dubbo内置了哪几种服务容器?

7、Dubbo里面有哪几种节点角色?

8、画一画服务注册与发现的流程图

9、Dubbo默认使用什么注册中心,还有别的选择吗?

10、Dubbo有哪几种配置方式?

11、Dubbo 核心的配置有哪些?

12、在 Provider 上可以配置的 Consumer 端的属性有哪些?

13、Dubbo启动时如果依赖的服务不可用会怎样?

14、Dubbo推荐使用什么序列化框架,你知道的还有哪些?

15、Dubbo默认使用的是什么通信框架,还有别的选择吗?

16、Dubbo有哪几种集群容错方案,默认是哪种?

17、Dubbo有哪几种负载均衡策略,默认是哪种?

18、注册了多个同一样的服务,如果测试指定的某一个服务呢?

19、Dubbo支持服务多协议吗?

20、当一个服务接口有多种实现时怎么做?

21、服务上线怎么兼容旧版本?

22、Dubbo可以对结果进行缓存吗?

23、Dubbo服务之间的调用是阻塞的吗?

24、Dubbo支持分布式事务吗?

25、Dubbo telnet 命令能做什么?

26、Dubbo支持服务降级吗?

27、Dubbo如何优雅停机?

28、服务提供者能实现失效踢出是什么原理?

29、如何解决服务调用链过长的问题?

30、服务读写推荐的容错策略是怎样的?

31、Dubbo必须依赖的包有哪些?

32、Dubbo的管理控制台能做什么?

33、说说 Dubbo 服务暴露的过程。

34、Dubbo 停止维护了吗?

35、Dubbo 和 Dubbox 有什么区别?

36、你还了解别的分布式框架吗?

37、Dubbo 能集成 Spring Boot 吗?

38、在使用过程中都遇到了些什么问题?

39、你读过 Dubbo 的源码吗?

40、你觉得用 Dubbo 好还是 Spring Cloud 好?

3.Spring Boot 面试题

1、什么是 Spring Boot?

2、Spring Boot 有哪些优点?

3、什么是 JavaConfig?

4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

5、Spring Boot 中的监视器是什么?

6、如何在 Spring Boot 中禁用 Actuator 端点安全性?

7、如何在自定义端口上运行 Spring Boot 应用程序?

8、什么是 YAML?

9、如何实现 Spring Boot 应用程序的安全性?

10、如何集成 Spring Boot 和 ActiveMQ?

11、如何使用 Spring Boot 实现分页和排序?

12、什么是 Swagger?你用 Spring Boot 实现了它吗?

13、什么是 Spring Profiles?

14、什么是 Spring Batch?

15、什么是 FreeMarker 模板?

16、如何使用 Spring Boot 实现异常处理?

17、您使用了哪些 starter maven 依赖项?

18、什么是 CSRF 攻击?

19、什么是 WebSockets?

20、什么是 AOP?

21、什么是 Apache Kafka?

22、我们如何监视所有 Spring Boot 微服务?

4.Spring Cloud 面试题

1、什么是Spring Cloud?

2、使用Spring Cloud有什么优势?

3、服务注册和发现是什么意思?Spring Cloud如何实现?

4、负载平衡的意义什么?

5、什么是Hystrix?它如何实现容错?

6、什么是Hystrix断路器?我们需要它吗?

7、什么是Netflix Feign?它的优点是什么?

8、什么是Spring Cloud Bus?我们需要它吗?

5.JVM面试题

1、JVM三大性能调优参数,JVM 几个重要的参数

2、JVM调优

3、JVM内存管理,JVM的常见的垃圾收集器,G1垃圾收集器。GC调优,Minor GC ,Full GC 触发条件

4、java内存模型

5、Java垃圾回收机制

6、jvm怎样 判断一个对象是否可回收,怎样的对象才能作为GC root

7、OOM说一下?怎么排查?哪些会导致OOM? OOM出现在什么时候

8、什么是Full GC?GC? major GC? stop the world

9、描述JVM中一次full gc过程。

10、JVM中类加载机制,类加载过程,什么是双亲委派模型?,类加载器有哪些

11、如何判断是否有内存泄露?定位 Full GC 发生的原因,有哪些方式?

12、Java 中都有哪些引用类型?

6.Java 并发编程

1、在 java 中守护线程和本地线程区别?

2、线程与进程的区别?

3、什么是多线程中的上下文切换?

4、死锁与活锁的区别,死锁与饥饿的区别?

5、Java 中用到的线程调度算法是什么?

6、什么是线程组,为什么在 Java 中不推荐使用?

7、为什么使用 Executor 框架?

8、在 Java 中 Executor 和 Executors 的区别?

9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?

10、什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

11、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?

12、什么是 Executors 框架?

13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

14、什么是 Callable 和 Future?

15、什么是 FutureTask?使用 ExecutorService 启动任务。

16、什么是并发容器的实现?

17、多线程同步和互斥有几种实现方法,都是什么?

18、什么是竞争条件?你怎样发现和解决竞争?

19、你将如何使用 thread dump?你将如何分析 Thread dump?165

20、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

21、Java 中你怎样唤醒一个阻塞的线程?

22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

23、什么是不可变对象,它对写并发应用有什么帮助?

24、什么是多线程中的上下文切换?

25、Java 中用到的线程调度算法是什么?

26、什么是线程组,为什么在 Java 中不推荐使用?

27、为什么使用 Executor 框架比使用应用创建和管理线程好?

28、java 中有几种方法可以实现一个线程?

29、如何停止一个正在运行的线程?

30、notify()和 notifyAll()有什么区别?

31、什么是 Daemon 线程?它有什么意义?

32、java 如何实现多线程之间的通讯和协作?

0 人点赞