最新天猫面试题(含答案):线程池+并发编程+分布式设计+中间件

2019-05-29  本文已影响0人  AKyS佐毅

1、AOP实现原理:动态代理

image.png

2、对象什么情况下进入老年代

https://blog.csdn.net/xdzhouxin/article/details/81218578

image.png

3、双亲委派模型,为什么这样做?

image.png

双亲委派模型的概念

双亲委派模型的优点:

4、Java会出现内存溢出吗?什么情况下会出现

image.png

什么情况下会出现

5、常用的设计模式介绍:单例模式、装饰者模式等

设计模式看了又忘,忘了又看?

6、消息中间件有哪些?他们之间的优劣势

image.png

7、redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

image.png

8、OOM内存泄漏,什么情况下会出现,如何排查

image.png

一次由过量线程引发的OOM排查

一次线上OOM过程的排查

这里强烈推荐阿里出品的Arthas

Arthas 能为你做什么?

1、Arthas官方指南

2、Arthas实战

3、arthas源码分析

4、Arthas源码分析

9、MySQL的索引

图解MySQL索引--B-Tree(B+Tree)

nnoDB一棵B+树可以存放多少行数据?

深入理解MYSQL索引之B+TREE

真的,MySQL 索引优化看这篇文章就够了

10、JVM-垃圾回收详解

JVM-垃圾回收详解

JDK1.7及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。

11、栈和队列

栈和队列

12、线程方法中的异常如何处理

java主线程捕获子线程中的异常
JAVA 线程中的异常捕获

13、什么情况下使用Runnable和Thread创建线程,Runnable和Callable的区别

用Runnable与Callable接口的方式创建多线程的特点:

用Thread类的方式创建多线程的特点:

14、深入剖析Java线程池原理

线程池的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果任务数量超过了最大线程数量,需要进入队列排队等候,等其他线程执行完毕,再从队列中取出任务来执行

主要特点:

带来的好处

深入剖析Java线程池原理

15、Spring IOC和AOP,以及各有什么优点

IOC:Inversion of Control控制反转,也叫(Dependency Injection)依赖注入。

IoC 不是一种技术,只是一种思想。它能指导我们如何设计出松耦合、更优良的程序。比如在程序中,依赖注入就是利用某种工具,将依赖注入到需要的位置。就好比:

药物注入就是利用注射器,将药物注入到需要的人体中,就是药物注入。

依赖注入还有另一层意思:就是依赖第三方工具完成注入的操作。依赖注入的核心原理是注解和反射。
优点是

内存控制:统一管理对象,避免对象乱创建导致额外的内存开销。便于内存的优化。
降低耦合度:便于项目的扩展、易于维护。如果IoC+接口情况下,删除任意实现类都不会导致程序编译出错。虽然运行到特定得代码会报错,但是其他代码在使用时不会有问题-----从侧面也反应出是松耦合。

AOP(Aspect-Oriented Programming): 面向切面编程

AOP的主要原理:动态代理。
代理模式:静态代理和动态代理(JDK动态代理、CGLib动态代理)。
静态代理:针对每个具体类分别编写代理类;针对一个接口编写一个代理类;
动态代理的原理:反射。
AOP优点是:

AOP实现日志管理:方法的开始记录入参,方法结束需要记录返回值和运行时间。
AOP比IoC更简单,直白点说就是实现调用某个方法之前或/和之后,自动执行一系列自定义的语句。
spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。

16、Synchronized和锁的区别,什么情况下使用synchronized和ReentrantLock

由于ReentrantLock是java.util.concurrent包下提供的一套互斥锁,相比Synchronized,ReentrantLock类提供了一些高级功能,主要有以下3项:

推荐阅读:

深入理解Java中的锁

参考阅读:

17、MySQL事务是什么?四大特性,四大隔离级别

事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都执行修改,要么都不执行,这就是事务的目的,也是事务模型区别于文件系统的重要特征之一。

四大特性

隔离性的四种级别

推荐阅读:

Spring事务传播行为详解

18、TCP为什么可靠,UDP如何实现可靠,二者区别?

TCP与UDP区别总结:

TCP为什么可靠,UDP如何实现可靠,二者区别?

19、红黑树,为什么允许局部不平衡

20、HashMap实现原理,ConcurrentHashMap实现原理,ConcurrentHashMap和HashTable区别

21、JVM的对象分配在哪个区,Class对象分配在哪个区

22、算法相关

image.png

https://t.zsxq.com/iIYVb2v

23、Tomcat 类加载器

推荐一篇讲解的很到位的文章吧

图解Tomcat类加载机制(阿里面试题)

24、BIO、NIO(如何实现的)、AIO

image.png

25、介绍你实践的性能优化案例,以及你的优化思路

26、Redis、Memcached之间的区别,优劣势比较

27、请描述一致hash算法

https://www.cnblogs.com/lpfuture/p/5796398.html

https://blog.csdn.net/championhengyi/article/details/80820959

https://blog.csdn.net/suifeng629/article/details/81567777

28、分布式session的共享方案有哪些,有什么优劣势

image.png

分布式Session解决方案

29、MySQL与MongoDB的区别,海量数据的存储

image.png

30、SQL慢查询的优化方案,索引和表的优化方案

真的,MySQL 索引优化看这篇文章就够了

31、高并发情况,系统的优化方案有哪些,以及优先级排序

高并发系统 优化总结

32、微服务和SOA的区别,优劣势

SOA 与 微服务的区别

33、介绍你实践的性能优化案例,以及你的优化思路

性能优化的思路和步骤

上一篇下一篇

猜你喜欢

热点阅读