【面试题】面试题 问题之书

这篇博客涵盖了Java面试的多个方面,包括基础的JDK集合、多线程、JVM,到Servlet、SSM框架、设计模式,再到MySQL、Redis、Nginx、Dubbo、分布式和Zookeeper等。深入讲解了Dubbo的RPC调用流程,分布式锁的实现,并介绍了Zookeeper的一致性协议和选举机制。此外,还涉及了消息队列Kafka、Linux命令和场景设计问题,如短URL生成的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

带着问题看源码,可以查看JavaGuide找答案~

1.Java基础

1.1 JDK集合|容器

类别常见问题
  • 说说List,Set,Map三者的区别?
List
  • ArrayList 与 LinkedList 区别?
  • ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?
  • 说一说 ArrayList 的扩容机制吧
Set
  • HashSet如何检查重复
Map
  • HashMap的底层实现  源码阅读jdk1.8
  • HashMap 的长度为什么是2的幂次方
  • HashMap 和 Hashtable 的区别
  • HashMap 1.7和1.8的区别   
  • HashMap 多线程操作导致死循环问题
  • ConcurrentHashMap线程安全的实现原理以及1.7和1.8的区别
  • ConcurrentHashMap 和 Hashtable 的区别
comparable&Comparator
  • comparable 和 Comparator的区别
  • Comparator定制排序
Collections工具类
  • Java提供的排序算法是怎么实现的?

答案

1.2  Object 面向对象

 常见问题
创建
通用方法
  • 重写equals方法可能会出现什么问题?
  • 为什么重写了eqauls一定要重写hashCode?
  • toString()
  • clone
  • Comparable

1.3 类与接口

   
特殊接口Serializable
  • 序列化和反序列化底层的实现原理等相关问题
   

1.4 JAVA优势特性

1.5 IO

java NIO / IO

2.多线程

功能JDK实现常见问题
并发创建线程
  • 多线程的实现方式有哪些?
  • 多线程异步调用之Future模式等相关技术问题
线程池
  • 线程池的原理是什么样子?底层方法的参数分别是什么意思?
  • 为什么阿里手册不允许使用 Executors 去创建线程池?

  • ThreadPoolExecutor的构造参数使用?

  • 使用线程池实现线程的复用和一些坑的避免

  • Executor框架相关面试知识点

线程安全

&同步

Synchronized
  • 线程安全和锁Synchronized概念相关面试题
  • 可重入锁以及Synchronized的其他基本特性
  • 从volatile和Synchronized线程间通信机制的介绍与使用
  • 使用Lock对象实现同步以及线程间通信
  • Java中的队列同步器AQS和ReentrantLock锁原理简要分析
  • 关于锁优化的几点建议
  • 无锁CAS操作以及Java中Atomic并发包的“18罗汉”(十多个原子类)
  • 读写锁ReentrantReadWriteLock深入分析
  • 等待/通知模式接口Condition接口深入分析
ThreadLocal 
  • 线程本地ThreadLocal的介绍与使用,如何自己实现一个ThreadLocal,多图深入分析ThreadLocal原理

  • ThreadLocal造成OOM内存溢出案例演示与原理分析
  • 借ThreadLocal出现OOM内存溢出问题再谈弱引用WeakReference
utils
  • 两种常用的线程计数器 CountDownLatch和循环屏障CyclicBarrier  
活性死锁
  • 描述一些线程死锁的情况?

3.JVM相关

 常见问题
体系
  • JVM跟JDK的关系
  • 体系结构

类加载

双亲委托 类加载 详情
内存管理
  • 介绍下 Java 内存区域(运行时数据区)
  • Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)
  • 对象的访问定位的两种方式(句柄和直接指针两种方式)
  • 8 种基本类型的包装类和常量池
  • 方法区和永久代的关系
  • 常用参数

  • JDK8做了什么改动?

  • 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?

垃圾回收机制 

4. Servlet相关

  • Tomcat

6. SSM框架

框架常见问题
Spring
  • 为什么要有Spring 或者为什么要有Spring IoC?  IOC原理
  • Spring AOP中JDK 和 CGLib动态代理哪个效率更高?JDK动态代理
Spring MVC 
Mybatis
  • mybatis 的 $ 与 # 的区别?使用场景
  • mybatis 的 dao 接口跟 xml 文件里面的sql 是如何建立关系的?

11. 设计模式

  • 单例模式几种写法的错与对以及常见的面试题

5. MySQL

 常见问题
基础
存储引擎
索引
事务
隔离级别
  • 各个级别依次解决的问题(脏读、不可重复读、幻读)
  • 默认级别,存在怎样的问题,这样的问题如何解决(锁)
  • 分类:行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁,
  • 加锁的select sql方式和场景(为什么需要加锁)
  • 加锁后果:死锁
大表优化
  • 垂直分表
  • 分库分表策略

7.Redis相关

 常见问题
简介
使用
实现

8. Nginx

 常见问题
简介
  • Nginx基础概念相关面试题,
功能
  • 什么是正向代理和反向代理?
使用
  • Nginx+Tomcat搭建负载均衡
实现
  • 请求的执行流程
  • C10K相关以及什么是C10M!

9.Dubbo

8.1、Dubbo框架的RPC调用流程图(PS:重点内容)dubbo原理

8.2、 RPC框架的实现原理,及RPC架构组件相关面试题,

8.3、基于TCP和HTTP协议的RPC简单实现,可以在面试官面前吹牛了,自己也实现过简单的RPC!

10.分布式

  • 分布式之数据库和缓存双写一致性方案解析!
  • 大型网站应用之海量数据和高并发解决方案总结一二,
  • 为什么CAP理论只能同时满足两个?BASE理论
  • 分布式锁简单入门以及三种实现方式介绍及其优缺点对比!

基于Redis、数据库和Zookeeper实现分布式锁

  • 基于Redis实现分布式锁setnx和set的实现以及setnx造成死锁的问题,加分题!

11. Zookeeper相关

  • ZooKeeper基本原理等相关面试题

zookeeper入门

  • ZooKeeper一致性协议 ZAB 原理、原子广播协议、崩溃恢复协议等
  • 面试必备Zookeeper选举机制深入理解
  • 为什么在Zookeeper中Server 数目一般为奇数

13. 消息队列

  • kafka相关概念 kafka入门
  • kafka 的架构,包含了哪些角色?
  •  

14. Linux相关面试题

16. 场景设计

  • 如何将一个长URL转换为一个短URL?(PS:这个是高频面试题)
  • 原理是什么以及如何实现,如何使用雪花算法将长地址转换为短地址?

 

面试题积累不断更新.......

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值