一、内存与线程
1、内存结构
内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。JVM的内存结构规定Java程序在执行时内存的申请、划分、使用、回收的管理策略,通说来说JVM的内存管理指运行时数据区这一大块的管理。
拼多多一面
首先自我介绍
参加过哪些项目
并发编程三要素?
实现可见性的方法有哪些?
多线程的价值?
创建线程的三种方式的对比?
画出线程的状态流转图
常用的并发工具类有哪些?
CyclicBarrier 和 CountDownLatch 的区别
CAS 的问题:1、CAS 容易造成 ABA 问题2、不能保证代码块的原子性3、CAS 造成 CPU 利用率增加
ReadWriteLock 是什么
一面面试题答案:
拼多多二面
自我介绍
什么是工厂模式?
如何实现单链表的增删操作?
让我说意思JVM的分为哪几块?
由于提及到了内存溢出,面试官问我内存溢出和内存泄漏的区别?
这里问完我就去问了数据库,4大特性是啥,举个例子?
数据的隔离级别有啥,每个隔离级别举个例子?
分布式锁的实现知道到哪些?
你更推荐哪一种锁?Redis的持久化操作有哪些?
如何利用redis处理热点数据
sleep 方法和 wait 方法有什么区别?
synchronized 和 ReentrantLock 的区别
线程 B 怎么知道线程 A 修改了变量
如果你提交任务时,线程池队列已满,这时会发生什么
线程类的构造方法、静态块是被哪个线程调用的
二面面试题答案:
拼多多三面
照例自我介绍和项目介绍;
上来就让我手撕一个单例模式
让我讲了讲代码是啥啥意思?
由于我的项目中提及到JVM,所以给我出了一个场景题,垃圾会收器中,标记清除多次后,由于采用的是标记清除算法,那么你觉得可能会出现什么问题?
这里提及到了full gc,问我,哪些情况会产生full GC,哪些情况产生minor GC?
除了你项目中的内存溢出问题,你还知道哪些关于内存溢出内存泄漏的?
然后给我出了一个动态规划的手写代码题,说来写个代码吧。
三面面试答案:
拼多多HR面
自我介绍一下吧
你为什么选择拼多多?
你最大的优点和缺点是什么
谈谈你对公司加班的看法
谈谈你的朋友对你的评价是什么
平时怎么去学习的?
你遇到的比较难应付的事情?
你感觉做的比较成功的事情?
想象一下你几十年后是怎样的生活?
觉得最痛苦的一段时间
工作节奏你觉得可以接受吗?
你有什么想问的?
以上就是我拼多多面试的题目 基本上我都清晰的记录了。
最后
ActiveMQ消息中间件面试专题
- 什么是ActiveMQ?
- ActiveMQ服务器宕机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢怎么办?
- 消息的不均匀消费怎么办?
- 死信队列怎么办?
- ActiveMQ中的消息重发时间间隔和重发次数吗?
ActiveMQ消息中间件面试专题解析拓展:
redis面试专题及答案
- 支持一致性哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录