Java面试提问参考

最近在招Java,前后大概面了70多人。以下是自己想到的一些面试题,可作为面试提问的参考。这些问题偏理论多一些,面试的时候可以让面试人再补充说明具体项目中的实现。比如说,MQ可以用来解耦、异步、削峰,那么具体业务中是怎么用的呢?balabala…然后根据每个点继续深挖。

CS基础

计算机网络

TCP三次握手?流量控制原理?滑动窗口?…

HTTP协议?常用方法?

什么是SSL?

什么是RestFul风格?

数据结构与算法

常见排序算法?海量数据排序?

常见查找算法?海量数据查找?

实现链表、队列、栈、二叉树、红黑树、B树?

OS

操作系统是什么?可以用来做什么?

设计模式

常见的设计模式有哪些?谈谈理解?举例说明?

工厂、代理、单例、责任链、迭代器…

JavaSE

Java基础

常用关键字:static、voilate、final,内部类…

String类是怎么实现的?String的HashCode()算法?

String线程安全吗?为什么?

String Buffer和String Build的区别?

Object有哪些方法?

浅拷贝与深拷贝区别?

Java集合

怎样实现HashMap?

HashMap是线程安全的吗?CurrentHashMap底层实现?

LinkedList 和 ArrayList的区别?底层实现?

JVM

说一说Java内存模型?每个区域放什么内容?

JVM什么情况下会导致栈溢出?堆溢出?内存溢出?

JVM常用的状态查看工具?常用的监控API?

JVM常见的GC回收算法及特点?年轻代老年代算法如何搭配使用?

Java的类加载机制?

new一个对象发生了什么?加载过程?初始化过程?

JVM一个对象包含哪些信息?(对象头?…)

线上故障排除思路?项目实例?

Java并发

线程生命周期?什么情况下会中断?什么情况下会阻塞?

三个线程T1、T2、T3,需要顺序执行,怎么实现?wait/sygnal方式?JUC方式?

五个线程T1、T2、T3、T4、T5,同时开始,全部执行才能走下一步,怎么实现?

如何实现生产者消费者模型?提供两种实现方式?

JUC包主要有哪些内容?AQS怎么实现?

线程安全的Integer怎么实现?

有哪些锁?怎么实现?

线程安全的集合怎么实现?

线程池怎么实现?

RetrentLock和synchronize区别?

I/O

I/O有哪些接口?怎么用?

NIO和IO区别?

什么是多路复用?有哪些方式?

Netty底层?

JavaEE

Servlet

servlet是什么?

JavaEE规范的八大XX、四大作用域?

Tomcat

tomcat是什么?

tomcat主要有哪些组件?底层实现?

tomcat启动时的初始化过程?

一个请求过来tomcat是怎么处理的?

框架SSM

Spring

AOP是什么?底层实现原理?

两种动态代理区别?具体怎么实现?

业务中AOP常用来干啥?

AOP异常怎么处理?

分布式日志怎么搞?路由鉴权怎么做?

IOC是什么?几种注入方式?底层 怎么实现?

事务隔离级别有哪几种?具体讲讲。是怎么实现的?

事务传播性有哪些,具体讲讲?

事务管理如何实现?

SpringMVC

一个请求从前端过来,在SpringMVC底层是怎么走的?

Mybatis

一个查询请求,在MyBatis底层是怎么走的?SQLstatement等的生命周期?初始化时做了什么?

PageHelper的原理?自己实现怎么做?

SQL语法检测怎么做?比如说必须有APPId,必须有delete_state = 1.// 扫描警告,DBA?

Spring boot

SpringBoot原理?

SpringCloud

分布式中间件

RocketMQ

MQ原理?怎么实现一个MQ?

消息有几种订阅模式?

消息在业务中可以用来干嘛?

大流量过来造成消息积压怎么办?

突然停电怎么办?

几种MQ比较,各自特点?

Zookeeper

ZooKeeper是什么?

Zookeeper原理?

集群高可用/高性能怎么做?选举算法?

Zookeeper分布式锁怎么做?有哪些问题?怎么解决?

Nginx

Nginx是什么?怎么做负载均衡?有哪些算法?

除了Nginx还有没有其他方法可以做负载均衡?

RPC

SOA?微服务?k8s?Servcie mesh? devOps?

RPC原理?可以用队列做RPC吗?

系统怎么做服务注册与发现?服务监控?限流?

未响应怎么办?

数据库

MySQL

范式及实际设计?范式与反范式如何取舍?

SQL优化方法?注意哪些?(阿里手册)

索引是啥?为啥走索引就快?

MySQL数据库引擎有哪些?各自特点?

事务隔离级别相关的原理?什么是行级锁表级锁?读锁写锁?

分布式ID怎么生成?

Redis

Redis是什么?解决了什么问题?

Redis原理?怎么实现一个Redis?

什么是缓存雪崩/击穿?

Redis集群怎么做?Redis哨兵是啥?高可用怎么做?

Redis持久化AOF怎么做?

MQ是什么?解决了什么问题?异步/削峰/解耦业务中怎么用?大流量来了吃不完怎么办?挂了怎么办?怎么做高可用?

Redis分布式锁怎么做?有哪些问题?怎么解决?

分片

怎么做读写分离?

分片分库分表?集群?Mycat?除了MyCat还有哪些方式?shadowjdbc?

一致性Hash是啥?

系统设计

架构

高性能、高可用、可扩展,兼顾成本和安全的系统?

一个应用从最小的单机到最终的分布式集群演变过程?

分布式

CAP是什么?

什么是Poxy?

什么是Raft?

最终一致性?

怎么实现分布式锁?

怎么解决分布式事务问题?

运维

Linux常用命令?文件操作?查看进程?查看系统状态?

Shell脚本编程?

CI、CD怎么做的?

Docker说一下?结合service mesh? k8s?

监控报警怎么做?

停电怎么办?怎么做自恢复?系统自愈能力?

项目实战

项目并发量多少?服务器多少?整个项目架构说一下

测试怎么做的?

怎么做限流?

AOP事务?日志?统计?权限?路由?安全?怎么做?

如何实现一个秒杀系统?

你可能感兴趣的:(随笔)