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

如何实现一个秒杀系统?

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java面试pdf是一种面试准备资料,用于帮助面试者理解Java编程语言和相关技术。这些pdf通常包含了面试所需的基础知识、常见问题和答案,以及一些具体场景下的实际代码示例。 Java作为一种广泛使用的编程语言,在互联网行业和软件开发领域有很高的需求。因此,很多求职者和招聘者都使用Java面试pdf作为准备和参考资料。 Java面试pdf的好处是它提供了系统的知识框架,能够帮助面试者更好地理解Java编程语言的特点、语法和最佳实践。通过研读这些pdf,面试者可以了解常见的Java面试问题和答案,并提前准备相应的回答,增加面试的成功率。 同时,Java面试pdf还提供了一些实际的问题和答案,例如Java的字符串处理、多线程编程、异常处理等,通过这些实际场景的示例,面试者可以更好地理解Java编程的应用。 然而,Java面试pdf也有一些局限性。它只提供了一种学习和准备的方法,可能无法覆盖所有的面试题目和场景。面试者还需要自己进行更多的练习和深入学习,才能在面试中展现出自己的能力。 总的来说,Java面试pdf是一种辅助学习和准备的工具,它可以帮助面试者更好地理解Java编程语言和相关技术,提高面试的成功率。但面试者还需要自己进行更多的学习和实践,才能在实际面试中获得好的表现。 ### 回答2: Java 面试PDF是指一份电子文档,其中包含了关于Java面试的相关内容。这种PDF常常会被求职者或面试者用于备考和准备面试。它可能包含了面试题目、答案解析、常见问题、技术知识点以及面试技巧等内容。 Java面试PDF对于求职者来说非常重要。它可以帮助求职者了解常见的面试问题,并为他们提供了合适的答案。这样,求职者可以在面试过程中更加自信地回答问题,并展现出对Java编程语言和相关知识的掌握程度。此外,面试官通常也会提问一些深入的技术问题,Java面试PDF可以作为一个良好的学习资源,帮助求职者提前掌握并理解这些技术问题的答案。 然而,Java面试PDF只是备考面试的一种参考工具。它并不能覆盖所有可能出现的问题,也不能保证面试成功。在准备面试时,求职者仍然需要深入研究Java编程语言,并对常见的面试题目和技术问题有所了解。在面试中,除了技术知识外,面试官还会考察求职者的思维能力、解决问题的能力以及团队合作等软技能。 总之,Java面试PDF是一种方便的学习工具,但求职者必须用自己的努力和研究来真正掌握Java编程语言和相关知识,并在面试中展现出自己的能力和潜力。 ### 回答3: Java 面试PDF是一种面试准备材料,通常包含了针对Java开发岗位面试的常见问题和答案。这种PDF可以作为面试者的参考资料,帮助他们更好地了解面试过程和准备面试答案。 Java面试PDF一般会涵盖以下几个方面的问题:Java基础知识、面向对象编程、集合框架、多线程、异常处理、IO流、数据库操作、网络编程、设计模式等等。通过研读这些问题和答案,面试者可以更好地掌握Java开发的核心概念和技术,从而在面试中做出更好的回答。 对于想要准备Java面试的人来说,Java面试PDF是一个非常有用的资源。它不仅可以帮助他们了解常见的面试问题,还可以帮助他们在面试过程中更好地组织自己的回答。此外,通过学习和研究这些问题和答案,他们也可以加深对Java开发的理解和思考。 总之,Java面试PDF是一种有助于面试者准备面试并提升技能的资源。通过利用这些资源,面试者可以更好地应对Java开发岗位的面试并增加自己的竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值