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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 一面:HashMap实现原理,ConcurrentHashMap实现原理红黑树,为什么允许局部不平衡TCP,UDP区别,为什么可靠和不可靠一次HTTP请求的全过程,包括域名解析、定位主机等TCP三次握手MySQL事务是什么?四大特性,四大隔离级别Concurr...

img_46380676dc9c826af2606ca36a7c6d73.jpe

一面:

HashMap实现原理,ConcurrentHashMap实现原理

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

TCP,UDP区别,为什么可靠和不可靠

一次HTTP请求的全过程,包括域名解析、定位主机等

TCP三次握手

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

ConcurrentHashMap和Hashtable区别

spring IOC和AOP,以及各有什么优点

有哪几种常用的线程池

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

线程方法中的异常如何处理,副线程可以捕获到吗

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

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

二面:

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

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

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

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

快速排序说一下过程

AOP实现原理:动态代理

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

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

Redis,持久化框架

栈和队列

垃圾回收算法

MySQL的索引

Tomcat 类加载器

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

三面:

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

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

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

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

缓存框架,例如Redis、Memcached之间的区别,优劣势比较

请描述一致hash算法

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

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

面试总结

img_c41e1d0a7ddb19f7c39387777696749f.jpe


最新架构师谈架构设计系列详解资料

img_72469a212960182b200be1b604d2b52a.png

资料领取方法


目录
相关文章
|
17天前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
56 6
面试官:项目中如何实现分布式锁?
|
27天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
28天前
|
消息中间件 前端开发 NoSQL
面试官:线程池遇到未处理的异常会崩溃吗?
面试官:线程池遇到未处理的异常会崩溃吗?
62 3
面试官:线程池遇到未处理的异常会崩溃吗?
|
29天前
|
消息中间件 存储 前端开发
面试官:说说停止线程池的执行流程?
面试官:说说停止线程池的执行流程?
38 2
面试官:说说停止线程池的执行流程?
|
1月前
|
消息中间件 前端开发 NoSQL
面试官:如何实现线程池任务编排?
面试官:如何实现线程池任务编排?
27 1
面试官:如何实现线程池任务编排?
|
2月前
|
Java
【多线程面试题二十五】、说说你对AQS的理解
这篇文章阐述了对Java中的AbstractQueuedSynchronizer(AQS)的理解,AQS是一个用于构建锁和其他同步组件的框架,它通过维护同步状态和FIFO等待队列,以及线程的阻塞与唤醒机制,来实现同步器的高效管理,并且可以通过实现特定的方法来自定义同步组件的行为。
【多线程面试题二十五】、说说你对AQS的理解
|
2月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
2月前
|
消息中间件 缓存 算法
Java多线程面试题总结(上)
进程和线程是操作系统管理程序执行的基本单位,二者有明显区别: 1. **定义与基本单位**:进程是资源分配的基本单位,拥有独立的内存空间;线程是调度和执行的基本单位,共享所属进程的资源。 2. **独立性与资源共享**:进程间相互独立,通信需显式机制;线程共享进程资源,通信更直接快捷。 3. **管理与调度**:进程管理复杂,线程管理更灵活。 4. **并发与并行**:进程并发执行,提高资源利用率;线程不仅并发还能并行执行,提升执行效率。 5. **健壮性**:进程更健壮,一个进程崩溃不影响其他进程;线程崩溃可能导致整个进程崩溃。
38 2
|
2月前
|
存储 安全 容器
【多线程面试题二十一】、 分段锁是怎么实现的?
这篇文章解释了分段锁的概念和实现方式,通过将数据分成多个段并在每段数据上使用独立锁,从而降低锁竞争,提高并发访问效率,举例说明了`ConcurrentHashMap`如何使用分段锁技术来实现高并发和线程安全。
【多线程面试题二十一】、 分段锁是怎么实现的?
|
2月前
|
存储 缓存 安全
Java多线程面试题总结(中)
Java内存模型(JMM)定义了程序中所有变量的访问规则与范围,确保多线程环境下的数据一致性。JMM包含主内存与工作内存的概念,通过8种操作管理两者间的交互,确保原子性、可见性和有序性。`synchronized`和`volatile`关键字提供同步机制,前者确保互斥访问,后者保证变量更新的可见性。多线程操作涉及不同状态,如新建(NEW)、可运行(RUNNABLE)等,并可通过中断、等待和通知等机制协调线程活动。`volatile`虽不确保线程安全,但能确保变量更新对所有线程可见。
18 0