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事务?日志?统计?权限?路由?安全?怎么做?

如何实现一个秒杀系统?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值