java面试题

133 阅读4分钟

1.java基础

基础类型

基础类型有哪些,什么是自动拆装箱?

集合:

Collection

Set

treeset/hashset, 

List

ArrayList是否线程安全?如何线程安全地操作ArrayList?

ArrayList扩容机制

ArrayList/linkedList(数据vs链表), 

集合判空 isEmpty or size == 0

集合转map null抛异常

集合遍历以及并发情况 foreach不能remove/add;

iterator遍历,并发加锁,快速失败(fail-fast)和安全失败(fail-safe)的机制

集合去重 

Map

HashMap/

HashMap数据结构、哈希冲突解决方法

HashMap扩容的原理

HashMap为什么线程不安全?如何线程安全地操作?

LinkedHashMap/

treemap/

IdentityHashMap/

ConcurrentHashMap 1.7  

ConcurrentHashMap原理?

java并发 

java内存模型

线程和进程

线程生命周期,

线程池:ThreadPoolExecutor类,有哪些参数  什么时候触发最大线程条件?  线程池拒绝策略有哪些?默认是哪个?

线程死锁,避免死锁 悲观锁 乐观锁 

volatile 关键字的作用

synchronized 关键字 有什么用 

ReentrantLock是什么 

CAS( compare and swap) AQS 

项目里用了哪些锁?

java的反射机制 

java的异常类

 jvm参数以及调优 

运行时数据区是怎样的?线程安全(即线程私有)的有哪些?

对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?

Java类加载流程?初始化流程?

Java内存泄露什么时候会发生?

垃圾回收

CMS垃圾回收器的流程?

2. spring框架

springboot 

SpringBoot的启动流程?

SpringBoot的动态代理默认用的哪个(cglib还是JDK)

Spring IoC 

Spring循环依赖解决方法及原理  

Spring的循环依赖用的是三级缓存,为什么不是两级?

将一个类声明为 Bean 的注解有哪些? 

@Component 和 @Bean 的区别是什么?

@Autowired 和 @Resource 的区别是什么? 

Bean 的作用域有哪些? 

Bean 是线程安全的吗? 

spring bean的生命周期 

AOP

SpringAOP实际开发过什么功能?

spring cloud微服务架构

3. MyBatis

MyBatis的#与$有什么区别?

4. 数据库 

mysql 事务 事务隔离级别  脏读、幻读是什么意思?

数据库引擎 MyISAM与InnoDB区别

索引:索引优缺点,

索引数据结构选型:hash表,二叉查找树,avl树,红黑树,b树和b+树

创建索引的原则

**索引什么时候会失效
**

**创建了A, B, C联合索引,使用B,C能否索引
**

**LIKE什么时候走索引,什么时候不走索引?
**

**聚集索引是什么?什么是回表?
**

日志:binlog,redo log,undo log 

sql优化 ,查询缓存读写分离 分库分表 

5. redis 

什么情况下会考虑使用redis 

特点:速度快,持久化,自动操作,快速主从复制,sharding技术 
缺点:物理内存限制,难支持在线扩容 

Redis 常用的数据结构有哪些? 

 5 种基础数据结构:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。

3 种特殊数据结构:HyperLogLogs(基数统计)、Bitmap (位存储)、Geospatial (地理位置)。 

Redis为什么很快?

redis持久化:RDB(默认) 和AOF 

Redis 有哪些架构模式?讲讲各自的特点:主从复制,哨兵,集群 

使用过Redis分布式锁么,它是怎么实现的? 

使用过Redis做异步队列么,你是怎么用的?有什么缺点?

和mysql缓存一致性 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免? 

Redis与数据库如何同步?各个方式的缺点是什么?

内存回收机制是怎样的?(或者说:淘汰策略)

6.设计模式

项目里用到了哪些设计模式,怎么用的?

单例模式的写法?

静态代理与动态代理区别?

7. 网络 

http/https sokect http中间件 

8. 高性能 

负衡均衡常见的算法有哪些? 

rebbitmq 

RabbitMQ的消息异常(丢失、重复、顺序、堆积)如何处理?

rocketmq 

消息队列kafka

kafka 的多副本机制了解吗?带来了什么好处? 

kafka消息消费顺序,如何保证不发生消息丢失,如何保证不重复消费

kafka发布订阅模式 

Kafka不支持延迟队列,如果用到延迟队列,该如何实现?

9. 分布式

CAP理论是什么?Zookeeper和Eureka分别放弃了什么?

分布式锁实现方式

分布式session共享解决方案

10. 高可用 

熔断机制 

异地灾备 

异步调用

使用缓存 

服务限流:常见的限流算法,单机限流,分布式限流 

11. 项目

有没有遇到过什么比较复杂的问题,如何排查的?

从用户请求到数据返回的整个流程

oauth2是干什么用的,流程是怎样的?

12 . 数据结构

数组字符串 回文串

链表 链表反转

经典排序算法 

动态规划