当前位置:网站首页 > Java基础 > 正文

java基础面试问题大全及答案大全(java基础面试问题大全及答案大全解析)



说明

        本文展示Java后端面试题,有详细答案。本文题目都是我近两年面试中遇到的真实题目,包含初级、中级、高级的题目。

        题目来自于我在几十场大中小公司面试被问到的问题,涵盖了大中小公司的题目。

        文中的题目都是常见的面试题,很偏或极少被问到的问题我没有写进来。

为什么写这篇博客?

        之前我在面试前在网上搜了很多面试题,但是发现面试时很少问到那些题目,苦苦准备了好几周的题目根本没啥作用。于是,我就开始记录自己遇到的真实的面试题,都总结到本文中来了。

        看过我博客的几个朋友和同事参加了面试后跟我说,他们被问到的问题大部分(80%)都在本文里

        以我自己的面试经历而言,有一次面试95%的题目在本文中,我对答如流,不知道面试官是否会怀疑泄题了????。当然,这次面试也是很稳的拿到了offer。

面试题说明

        本文按类别划分面试题,包括:Java基础,集合,JVM,多线程,数据库,设计模式,Redis,MQ(RabbitMQ、Kafka),Shiro,Spring,SpringBoot,SpringMVC,MyBatis,分布式,SpringCloud,ElasticSearch,综合性问题。

难度与频率

        面试题采用五角星来评判题目的难度和被问到的频率,最高为五颗星。难度对应岗位等级,从初级到高级;频率代表被问到的次数。

String

String的replace与replaceall区别?(难度:★  频率:★)


  • replace:替换字符串
  • replaceAll:根据正则表达式替换字符串

String, StringBuffer, StringBuilder区别(难度:★  频率:★★★)

​​Java--String,StringBuffer,StringBuilder区别_IT利刃出鞘的博客​​

intern方法及String对象数目(难度:★★★  频率:★★★)

​​Java--String--原理--创建对象的个数/intern方法/字面量_IT利刃出鞘的博客​​

如何修改String对象的数据?(难度:★★★  频率:★★)

​​Java--String--原理--为什么不可变/StringBuffer原理_IT利刃出鞘的博客​​

static

static的5种用法(难度:★★  频率:★★★★)​​​​

​​Java--static--用法/使用位置/实例_IT利刃出鞘的博客-​​

为什么静态方法不能调用非静态方法和变量?(难度:★★★  频率:★★★★)

与类加载顺序有关,加载静态方法时,非静态的未初始化。见:​

​​JVM--类加载过程--原理/实例_IT利刃出鞘的博客​​

synchronized用于静态方法与普通方法有区别吗?(难度:★★★  频率:★★★)

​​Java多线程--synchronized--使用/原理/中断/锁的升级_IT利刃出鞘的博客​​

异常

异常类型(难度:★★  频率:★★★★)

​​Java--异常/Exception--类型/原理_IT利刃出鞘的博客​​

catch里return了,finally是否执行?(难度:★★  频率:★★)

​​Java--异常/Exception--类型/原理_IT利刃出鞘的博客​​

IO

字节流与字符流区别?(难度:★★  频率:★★)

​​Java--IO--字节流与字符流的区别_IT利刃出鞘的博客​​

BIO, NIO, AIO 区别?(难度:★★★  频率:★★)

​​Java--BIO、NIO、AIO--区别/使用/实例_IT利刃出鞘的博客​​

JDK8

jdk8接口的default和static(难度:★★  频率:★)

​​Java--接口--JDK8新特性/匿名内部类--使用/教程/实例_IT利刃出鞘的博客​​

jdk8新特性(难度:★★  频率:★★)

​​接口允许default和static​​​;​​lambda​​​;​​stream​​​;​​时间新API​​(LocalDateTime等);CompletableFuture;等

Java8 Stream API 流操作包括哪些部分?项目中怎么用的Stream?(难度:★★  频率:★)

​​Java--Stream(流)--使用/实例/流操作_IT利刃出鞘的博客​​

语法

项目中对泛型的使用(难度:★★  频率:★★)

​​Java--泛型--使用/教程/应用/实例_IT利刃出鞘的博客​​

抽象类与接口的区别?(难度:★★  频率:★)

​​Java--接口与抽象类的区别_IT利刃出鞘的博客​​

类库

SimpleDate线程安全吗?怎么解决?(难度:★★★  频率:★★★)

​​SingleDateFormat--线程安全的操作方法--使用/实例_IT利刃出鞘的博客​​

反射

Java反射:forName和classLoader的区别(难度:★★★  频率:★)

​​Java--反射--使用/应用/教程/实例_IT利刃出鞘的博客​​

反射机制中可以获取private成员的值吗?(难度:★★★  频率:★)

可以。法1.通过setter和getter获得 法2:通过Field类提供的set()和get()方法

另见《Java开发实战经典 第2版》=> 15.4 Java反射机制的深入应用

其他

拆箱与装箱(难度:★  频率:★)

​​Java--自动拆箱/装箱/实例化顺序/缓存--使用/原理/实例_IT利刃出鞘的博客​​

List

List与Set的区别(难度:★  频率:★★)

​​Java--List--区别--ArrayList与LinkedList--List与Array、Set_IT利刃出鞘的博客​​

ArrayList与LinkedList异同点?(难度:★  频率:★★)

​​Java--List--区别--ArrayList与LinkedList--List与Array、Set_IT利刃出鞘的博客​​

ArrayList是否线程安全?如何线程安全地操作ArrayList?(难度:★★★  频率:★★★★★)

​​ArrayList--线程不安全的原因/保证线程安全的方法--方案/实例_IT利刃出鞘的博客​​

ArrayList扩容机制(难度:★★★  频率:★★★★)

​​ArrayList--扩容的原理_IT利刃出鞘的博客​​

List.subList的坑?(难度:★★  频率:★)

​​Java--List--注意问题/坑_IT利刃出鞘的博客​​

List如何安全删除(难度:★★  频率:★)

​​Java--List--创建/遍历/去重/排序/删除--方法/实例_IT利刃出鞘的博客​​

List如何去重?(难度:★  频率:★★★)

stream,或:​​Java--List--创建/遍历/去重/排序/删除--方法/实例_IT利刃出鞘的博客​​

List如何实现排序(难度:★  频率:★★★)

stream,或:​​Java--List--创建/遍历/去重/排序/删除--方法/实例_IT利刃出鞘的博客​​

为什么引入迭代器?(难度:★★  频率:★★)

​​Java类集--综合_IT利刃出鞘的博客​​

List哪种遍历性能好,为什么?(难度:★★  频率:★)

​​Java--List--创建/遍历/去重/排序/删除--方法/实例_IT利刃出鞘的博客​​

Map

HashMap、TreeMap、LinkedHashMap和区别?(难度:★★  频率:★★★★★)

​​HashMap、TreeMap、LinkedHashMap的区别_IT利刃出鞘的博客​​

jdk8的HashMap和ConcurrentHashMap的改变?(难度:★★  频率:★★★★)

​​Java--JDK7与JDK8的HashMap的区别_IT利刃出鞘的博客​​

​​Java--ConcurrentHashMap原理_IT利刃出鞘的博客​​

HashMap数据结构、哈希冲突解决方法(难度:★★★  频率:★★★★)

​​Java--HashMap原理--数据结构/存取机制_IT利刃出鞘的博客​​

​​hash冲突的4种解决方案_IT利刃出鞘的博客-​​

HashMap扩容的原理(难度:★★★  频率:★★★★)

​​Java--HashMap扩容的原理_IT利刃出鞘的博客​​

HashMap为什么线程不安全?如何线程安全地操作?(难度:★★★  频率:★★★★★)

​​Java--HashMap--线程不安全的原因/保证线程安全的方法--方案/实例_IT利刃出鞘的博客​​

ConcurrentHashMap原理?(难度:★★★  频率:★★★★★)

​​Java--ConcurrentHashMap原理_IT利刃出鞘的博客​​

String的hashCode怎么实现的?(难度:★★  频率:★)

hash:s[0] * 31^(n-1) + s[1] * 31^(n-2) + ... + s[n-1]

见:​​Java--HashMap原理--数据结构/存取机制_IT利刃出鞘的博客​​

HashMap和HashSet的区别及其实现原理?(难度:★★  频率:★)


  • HashMap:将key.hashCode()作为hash值存放,将value直接作为value。
  • HashSet:调用HashMap的put方法;将key.hashCode()作为hash值存放,将HashSet类的final变量PRESENT作为value。

HashMap如果使用对象最为key,要注意什么?(难度:★★  频率:★)

  • 重写hashCode和equals。

对象比较为什么重写hashCode和equals?(难度:★★  频率:★)

  • 重写equals方法时需要重写hashCode方法,主要是针对Map、Set等集合类型的使用;

  • a: Map、Set等集合类型存放的对象必须是唯一的;
  • b: 集合类判断两个对象是否相等,是先判断HashCode是否相等,如果HashCode返回TRUE,还要再判断equals返回值是否ture,只有两者都返回ture,才认为该两个对象是相等的。

运行时数据区(难度:★★  频率:★★★★)

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

​​JVM--运行时数据区域_IT利刃出鞘的博客​​

对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?(难度:★★  频率:★★)

​​JVM--运行时数据区域_IT利刃出鞘的博客​​

类加载

java类加载流程?初始化流程?(难度:★★  频率:★★★★★)

​​JVM--类加载过程--原理/实例_IT利刃出鞘的博客​​

JVM双亲委派模型(难度:★★★  频率:★)

​​JVM--双亲委派模型_IT利刃出鞘的博客​​

内存泄露

Java内存泄露什么时候会发生?(难度:★★  频率:★★)

​​JVM--Java内存泄露--原因/解决方案_IT利刃出鞘的博客​​

为什么内部类持有外部类可能内存泄露?如何解决?(难度:★★  频率:★)

​​JVM--Java内存泄露--内部类持有外部类--原因/解决方案_IT利刃出鞘的博客​​

为什么ThreadLocal会导致内存泄露?如何解决?(难度:★★★  频率:★★)

​​JVM--Java内存泄露--ThreadLocal--原因/解决方案_IT利刃出鞘的博客​​

垃圾回收

引用类型及其含义(难度:★★  频率:★★★)

​​Java--引用类型--强引用、软引用、弱引用、虚引用--区别/使用/实例_IT利刃出鞘的博客-CSDN博客​​

finalize方法做什么用的?(难度:★  频率:★)

  • 垃圾回收时会调用此方法

可以作为GC.Roots的对象有哪些?(难度:★★★  频率:★)

​​JVM--可作为GC Roots的对象_IT利刃出鞘的博客-CSDN博客​​

调用System.gc()会立刻垃圾回收吗?(难度:★★  频率:★)

​​JVM--Java垃圾回收--原理/触发时机_IT利刃出鞘的博客-CSDN博客​​

Minor GC和Full GC的触发时机。(难度:★★★  频率:★★)

​​JVM--Java垃圾回收--原理/触发时机_IT利刃出鞘的博客-CSDN博客​​

频繁Full GC如何排查(难度:★★★★  频率:★)

​​Java--线上问题排查--方法/步骤_IT利刃出鞘的博客-CSDN博客​​

JDK默认的垃圾回收器是什么?(难度:★★  频率:★)

​​JVM--Java垃圾回收器--详解/对比_IT利刃出鞘的博客-CSDN博客​​

CMS垃圾回收器的流程?(难度:★★★  频率:★★★★)


  • ​​JVM--Java垃圾收集--内存模型及垃圾收集流程_IT利刃出鞘的博客-CSDN博客​​
  • ​​JVM--Java垃圾收集器--CMS和G1--区别和执行流程_IT利刃出鞘的博客-CSDN博客​​

CMS和G1区别(难度:★★★  频率:★★★)

​​JVM--Java垃圾收集器--CMS和G1--区别和执行流程_IT利刃出鞘的博客-CSDN博客​​

CMS与其他老年代垃圾回收器的区别?(难度:★★★  频率:★)

​​JVM--Java垃圾回收器--详解/对比_IT利刃出鞘的博客-CSDN博客​​

JVM调优

JVM通常设置哪些参数来调优?(难度:★★  频率:★★★★)

​​JVM--调优--实例/常用配置/方法_IT利刃出鞘的博客-CSDN博客​​

其他

JMM内存结构(难度:★★★  频率:★★)

​​JMM--介绍_IT利刃出鞘的博客-CSDN博客​​

怎么分配堆外内存(难度:★★  频率:★)

​​JVM--Java堆外内存--使用/作用_IT利刃出鞘的博客-CSDN博客​​

综合

线程的安全性问题体现在哪些方面?(难度:★★  频率:★)

​​Java--内存模型(JMM)--详解_IT利刃出鞘的博客-CSDN博客​​

死锁产生的条件?(难度:★★  频率:★)

​​Java多线程--基础知识_IT利刃出鞘的博客-CSDN博客​​

i++是否线程安全?(难度:★  频率:★)

  • 不是线程安全的。要线程安全可以用java.util.concurrent.atomic

线程池

线程池缺点(难度:★★  频率:★★)

​​Java线程池--为什么使用线程池?优缺点是什么?_IT利刃出鞘的博客-CSDN博客​​

ThreadPoolExecutor有哪些参数?(难度:★★  频率:★★★★★)

​​Java线程池--核心参数/大小设置/使用示例_IT利刃出鞘的博客-CSDN博客​​

CPU密集与IO密集的场景如何设置线程池参数?(难度:★★★  频率:★★★)

​​Java线程池--核心参数/大小设置/使用示例_IT利刃出鞘的博客-CSDN博客​​

什么时候触发最大线程条件。(难度:★★  频率:★★★★★)

​​Java线程池--原理(执行流程/结构/状态转换)_IT利刃出鞘的博客-CSDN博客​​

线程池拒绝策略有哪些?默认是哪个?(难度:★★  频率:★★★★)

​​Java线程池--饱和策略(拒绝策略)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

线程池里的异常时如何处理的?(难度:★★  频率:★)

​​Java线程池--全局异常处理--方法/实例_IT利刃出鞘的博客-CSDN博客​​

BlockingQueue:线程池fixed, single, scheduled, cached对应的队列(难度:★★  频率:★★★)

​​Java线程池--种类--Executors--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

​​Java多线程--阻塞队列(BlockingQueue)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

synchronized

synchronized的锁升级是怎样的?(难度:★★★★  频率:★)

​​Java多线程--synchronized--使用/原理/中断/锁的升级_IT利刃出鞘的博客-CSDN博客​​

JUC

ReentrantLock显著缺点?(难度:★★★  频率:★★)

​​Java多线程--ReentrantLock--使用/实例/原理_IT利刃出鞘的博客-CSDN博客​​

CAS和AQS了解吗?原理是什么(难度:★★★  频率:★★)

​​Java多线程--CAS--原理/优缺点_IT利刃出鞘的博客-CSDN博客​​

​​Java多线程--AQS--原理_IT利刃出鞘的博客-CSDN博客​​

synchronized与ReentrantLock区别?(难度:★★  频率:★★)

​​Java多线程--synchronized与volatile、ReentrantLock的区别_IT利刃出鞘的博客-CSDN博客​​

有哪些原子类?用过哪个?(难度:★★★  频率:★)

​​Java多线程--原子类(atomic)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

项目里用了哪些锁?(难度:★★★  频率:★★★)


  • 单体项目里用到了ReentrantLock、synchronized;
  • 单例模式里用到了synchronized

项目中哪些地方用到了多线程?(难度:★★★  频率:★★★★★)


  • 处理定时的任务。    比如:定时器定时处理数据进行统计等
  • 异步处理。               比如:发邮件, 记录日志, 发短信等。比如注册成功后发激活邮件
  • 多线程计算,充分利用cpu。比如:1个线程,占用10%的cpu,需要10分钟,创建10个线程,占100%的cpu,需要1分钟。

JDK8新增的异步编程了解吗?(难度:★★★  频率:★)

​​Java--异步--CompletableFuture--实例_IT利刃出鞘的博客-CSDN博客​​

多线程顺序交替执行的方法(有三个线程A,B,C,依次打印出A,B,C)(难度:★★★  频率:★)


  • 方案1:​​Java多线程--阻塞队列(BlockingQueue)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​
  • 方案2:模拟阻塞队列
  • 使用Object的wait(), notify(),使用一个互斥锁。

综合问题

MyISAM与InnoDB区别(难度:★  频率:★★★★)

​​MySQL--存储引擎--MyISAM和InnoDB--对比/区别_IT利刃出鞘的博客-CSDN博客​​

隔离级别是怎样的?脏读、幻读是什么意思?(难度:★★★  频率:★★★★★)

​​MySQL--隔离级别--脏读/不可重复读/幻读--详解/实例_IT利刃出鞘的博客-CSDN博客​​

隔离级别如何选用?(难度:★★  频率:★★)

​​MySQL--隔离级别--脏读/不可重复读/幻读--详解/实例_IT利刃出鞘的博客-CSDN博客​​

ACID(难度:★★  频率:★)

​​数据库--事务的ACID--介绍/详解_IT利刃出鞘的博客-CSDN博客​​

sql注入怎么解决?(难度:★★★  频率:★★)

​​数据库--防止SQL注入的方案_IT利刃出鞘的博客-CSDN博客​​

三大范式(难度:★★  频率:★)

​​数据库(SQL)--三大范式--介绍/使用/实例_IT利刃出鞘的博客-CSDN博客​​

怎么样幂等(难度:★★★  频率:★★)

​​数据库--幂等--方案_IT利刃出鞘的博客-CSDN博客​​

一条SQL查询语句的执行流程(难度:★★  频率:★★)

​​MySQL--一条SQL查询语句的执行流程_IT利刃出鞘的博客-CSDN博客​​

隔离级别是如何实现的?(MVCC)(难度:★★★★  频率:★★)

​​MySQL原理--隔离级别的实现方式--MVCC_IT利刃出鞘的博客-CSDN博客​​

快照读与当前读 是怎样的?(难度:★★★★  频率:★★)

​​MySQL原理--隔离级别的实现方式--MVCC_IT利刃出鞘的博客-CSDN博客​​

为什么不要用外键?(难度:★★★  频率:★)

​​数据库--外键--用法/缺点_IT利刃出鞘的博客-CSDN博客​​

批量往数据库导入1000万条数据方法?(难度:★★  频率:★)

  • 存储过程

数据库优化方式(难度:★★★  频率:★)

  • 建立索引、冗余(减少联表)、使用缓存、读写分离、分库分表、存储过程

怎么调试存储过程(难度:★★  频率:★)

​​MySQL工具--dbForge Studio for MySQL_IT利刃出鞘的博客-CSDN博客​​

MySQL的三种驱动类型 难度:★★  频率:★)

​​MySQL--时区/连接器/驱动类型_IT利刃出鞘的博客-CSDN博客​​

索引

索引的种类(难度:★★  频率:★★★)

​​MySQL--索引--类型/分类/类别_IT利刃出鞘的博客-CSDN博客​​

数据库使用索引的缺点?(难度:★★  频率:★★★)

​​MySQL--索引的优点/缺点/创建索引的原则_IT利刃出鞘的博客-CSDN博客​​

创建索引的原则(难度:★★  频率:★★★★)

​​MySQL--索引的优点/缺点/创建索引的原则_IT利刃出鞘的博客-CSDN博客​​

索引什么时候会失效(难度:★★  频率:★★★★★)

​​MySQL--索引失效--原因/解决方案_IT利刃出鞘的博客-CSDN博客​​

创建了A,B,C联合索引,使用B,C能否索引(难度:★★★  频率:★★★★★)

​​MySQL--联合索引--使用/原理/优化_IT利刃出鞘的博客-CSDN博客​​

LIKE什么时候走索引,什么时候不走索引?(难度:★★★  频率:★★★★★)

​​MySQL--索引的优化--LIKE模糊查询_IT利刃出鞘的博客-CSDN博客​​

ORDER BY是否走索引?(难度:★★★  频率:★★★)

​​MySQL--索引的优化--ORDER BY_IT利刃出鞘的博客-CSDN博客​​

聚集索引是什么?什么是回表?(难度:★★★★  频率:★★★★)

​​MySQL--聚集索引/辅助索引/回表查询/覆盖索引--原理/优化_IT利刃出鞘的博客-CSDN博客​​

索引原理;为什么采用B+树?(难度:★★★★  频率:★)

​​MySQL--索引的原理_IT利刃出鞘的博客-CSDN博客​​

分库分表

什么时候考虑分库分表?分库分表要考虑什么问题?(难度:★★★  频率:★)

​​数据库--分库分表--方案/切分方式/注意的问题_IT利刃出鞘的博客-CSDN博客​​

原来没分库分表,后期如何分库分表?(难度:★★★★  频率:★★)

​​数据库--单表转分库分表_IT利刃出鞘的博客-CSDN博客​​

分库分表的中间件(难度:★★  频率:★★)

  • Sharding-JDBC、Mycat

水平分表,有哪些规则?(难度:★★★  频率:★★★★★)

​​数据库--分库分表--垂直分表与水平分表_IT利刃出鞘的博客-CSDN博客​​

如何维护全局的id(难度:★★★  频率:★★★★★)

​​分布式--生成数据库全局唯一ID--方法/方案_IT利刃出鞘的博客-CSDN博客​​

语句

语句类笔试题(难度:★★★  频率:★)

​​MySQL--常见业务/笔试题_IT利刃出鞘的博客-CSDN博客​​

or与in的效率?(难度:★★★  频率:★)

​​MySQL--SQL语句优化--大全_IT利刃出鞘的博客-CSDN博客​​

内联结,左联结,右联结,全(外)联结的含义?(难度:★★  频率:★)

交集、并集、差集?(难度:★★★  频率:★)

设计模式的原则(难度:★★  频率:★)

​​Java设计模式--原则_IT利刃出鞘的博客-CSDN博客​​

单例模式的写法?(难度:★★  频率:★★★★)

​​Java设计模式--单例模式--使用/详解/实例_IT利刃出鞘的博客-CSDN博客​​

手写双重检验单例(为什么用volatile,为什么两次if判断)(难度:★★★  频率:★★★)

​​Java设计模式--单例模式--使用/详解/实例_IT利刃出鞘的博客-CSDN博客​​

静态代理与动态代理区别?(难度:★★★  频率:★★★★★)

​​Java设计模式--代理模式--静态代理/动态代理--使用/详解/实例_IT利刃出鞘的博客-CSDN博客​​

字符流与字节流转化涉及的设计模式(难度:★★★  频率:★★)

​​Java设计模式--实例_IT利刃出鞘的博客-CSDN博客​​

项目里用到了哪些设计模式,怎么用的?(难度:★★★  频率:★★★★★)

​​单例模式​​​,​​责任链模式​​​,​​工厂模式​​​,​​抽象工厂​​​,​​代理模式​​​,​​适配器模式​​​,​​策略模式​​​,​​建造者模式​​​,​​观察者模式​​

基础

Redis数据类型及其使用场景(难度:★★★  频率:★★★★★)

​​Redis--数据类型及其使用场景_IT利刃出鞘的博客-CSDN博客​​

Redis为什么很快?(难度:★★  频率:★★★★★)

​​Redis--原理--为什么性能高,速度快?_IT利刃出鞘的博客-CSDN博客​​

Redis是单线程为什么速度依然快?(难度:★★  频率:★★)

​​Redis--原理--为什么性能高,速度快?_IT利刃出鞘的博客-CSDN博客​​

Redis持久化AOF,RDB区别(难度:★★  频率:★★★★)

​​Redis--持久化_IT利刃出鞘的博客-CSDN博客​​

持久化:长久下来aof文件会很大怎么办?(难度:★★★  频率:★★)

使用重写机制。见:​​Redis--重写机制(减小AOF文件大小)_IT利刃出鞘的博客-CSDN博客​​

Redis有哪些原子命令?(难度:★★★  频率:★)

  • Redis所有单个命令都是原子性的。

穿透、无底洞、雪崩 解决方案?(难度:★★★  频率:★★★★★)


  • ​​Redis--缓存穿透--含义/原因/解决方案_IT利刃出鞘的博客-CSDN博客​​
  • ​​Redis--无底洞--含义/原因/解决方案_IT利刃出鞘的博客-CSDN博客​​
  • ​​Redis--缓存雪崩--含义/原因/解决方案_IT利刃出鞘的博客-CSDN博客​​

Redis的发布订阅机制及其使用场景(难度:★★★★  频率:★★)

​​Redis--发布订阅--原理/使用场景_IT利刃出鞘的博客-CSDN博客​​

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

​​Redis--内存回收机制(淘汰策略)_IT利刃出鞘的博客-CSDN博客​​

给一个key怎么知道是用的哪种数据类型?(难度:★  频率:★)

  • 用type命令。例如:type key1

综合

为什么使用Redis,不用Memcache和MongoDB?(难度:★★  频率:★★)

​​Redis,Memcache,MongoDB三者的区别_IT利刃出鞘的博客-CSDN博客​​

Redis与数据库如何同步?各个方式的缺点是什么?(难度:★★★  频率:★★★)

​​Redis--保证缓存与数据库的一致性--解决方案_IT利刃出鞘的博客-CSDN博客​​

Redis很慢,如何排查及解决?(难度:★★★★  频率:★★)

​​Redis--变慢原因及排查方法_IT利刃出鞘的博客-CSDN博客​​

多线程操作同一个Key如何保证一致性?(微服务部署多个实例时如何保证一致性?)(难度:★★★★  频率:★)

​​Redis--多线程竞争同一key--解决方案_IT利刃出鞘的博客-CSDN博客​​

秒杀的时候怎么使用Redis?(难度:★★★★  频率:★★★)

​​Redis--秒杀的解决方案_IT利刃出鞘的博客-CSDN博客​​

分布式锁

Redis做分布式锁如何处理超时时间?比如:超时时间是5秒,但要执行20秒,相当于没锁住;超时时间是20秒,但只需执行5秒(浪费)(难度:★★★★  频率:★★★)

  • 设置中等长度的时间,线程执行完删除这个值;另起线程,定期去刷新这个值。Redisson的分布式锁就是这个方案,见:​​Redisson原理--分布式锁--续期/释放/互斥/可重入_IT利刃出鞘的博客-CSDN博客​​

Redis实现分布式锁集群中,如何处理主节点宕机这种情况?(难度:★★★★★  频率:★)

  • 使用RedLock红锁算法:若过半的Redis节点能够setnx成功则表示获取锁成功,类似于zk实现分布式锁方式。见:​​Redisson原理--红锁/Redlock_IT利刃出鞘的博客-CSDN博客​​

集群

集群种类有哪些?(难度:★★  频率:★)

  • 主从、哨兵、Cluster

集群如何进行扩展?(难度:★★★  频率:★)

​​Redis--集群--介绍/使用/注意事项_IT利刃出鞘的博客-CSDN博客​​

集群不支持事务,如何解决?(难度:★★★★  频率:★)

​​Redis--集群--介绍/使用/注意事项_IT利刃出鞘的博客-CSDN博客​​

主从集群中主节点死了以后,是否还能使用?如何解决?(难度:★★★  频率:★)

读写分离时读写分别在哪个节点(难度:★★  频率:★)

布隆过滤器原理?什么时候会误判?(难度:★★★★  频率:★★★)

​​Redis--布隆过滤器--使用/原理/实例_IT利刃出鞘的博客-CSDN博客​​

Redis的数据类型对应的底层结构是怎样的?(难度:★★★★  频率:★★★)

​​Redis--原理--数据类型的底层实现_IT利刃出鞘的博客-CSDN博客​​

用Redis如何实现延迟队列?(难度:★★★★  频率:★)

​​Redis--延迟队列_IT利刃出鞘的博客-CSDN博客​​

综合

RabbitMQ,RocketMQ和Kafka区别(难度:★★  频率:★★★★★)

​​RabbitMQ,RocketMQ,Kafka--区别/对比/选型_IT利刃出鞘的博客-CSDN博客​​

为什么将两阶段提交改为本地事务表+MQ?(难度:★★  频率:★)

​​分布式事务--消息表+MQ--使用/方案_IT利刃出鞘的博客-CSDN博客​​

Redis失败重试为什么用RabbitMQ而不是直接重试?(难度:★★★  频率:★)


  1. RabbitMQ自带重试操作。Redis需要手动实现重试次数等逻辑,耦合度大。
  2. RabbitMQ有监控:消息的消费状态、消息的消费速率等。Redis直接重试没有这些功能。

RabbitMQ

RabbitMQ有哪些交换器?RabbitMQ的交换器与队列的关系?(难度:★★  频率:★★★)

​​RabbitMQ--交换器类型/队列模式--使用/教程/详解_IT利刃出鞘的博客-CSDN博客​​

RabbitMQ的消息异常(丢失、重复、顺序、堆积)如何处理?(难度:★★★  频率:★★★★★)


  • ​​RabbitMQ--消息丢失--原因/解决方案_IT利刃出鞘的博客-CSDN博客​​
  • ​​RabbitMQ--消息重复/重复消费--原因/解决方案_IT利刃出鞘的博客-CSDN博客​​
  • ​​RabbitMQ--保证消息消费的顺序性--方案_IT利刃出鞘的博客-CSDN博客​​
  • ​​RabbitMQ--消息堆积/消息积压--解决方案_IT利刃出鞘的博客-CSDN博客​​

RabbitMQ消息是否会过期?(难度:★★★  频率:★★)


  • 默认不会过期,但是可以设置让其一段时间后过期。
  • 详见:​​RabbitMQ--消息的过期时间(TTL)--使用/原理_IT利刃出鞘的博客-CSDN博客​​

RabbitMQ的消息什么时候会放到死信队列?(难度:★★★  频率:★)

​​RabbitMQ--死信队列/延迟队列--使用/原理_IT利刃出鞘的博客-CSDN博客​​

RabbitMQ的延迟队列是怎样的?(难度:★★★  频率:★★)

​​RabbitMQ--死信队列/延迟队列--使用/原理_IT利刃出鞘的博客-CSDN博客​​

RabbitMQ的集群有哪几种部署方式?(难度:★★  频率:★)

  • 多机多节点,单机多节点

Kafka

为什么Kafka性能很高(难度:★★★  频率:★★★)

​​Kafka--原理--为什么吞吐量大、速度快?_IT利刃出鞘的博客-CSDN博客​​

Kafka的消息异常(丢失、重复)如何处理?(难度:★★★  频率:★★★★)


  • ​​Kafka--消息丢失--原因/解决方案/零丢失的配置_IT利刃出鞘的博客-CSDN博客​​
  • ​​Kafka--消息重复--原因/解决方案_IT利刃出鞘的博客-CSDN博客​​

Kafka不支持延迟队列,如果用到延迟队列,该如何实现?(难度:★★★★★  频率:★★★)

​​Kafka--延迟队列--使用/实现/原理_IT利刃出鞘的博客-CSDN博客​​

Shiro怎么根据url对应权限,流程是什么?(难度:★★★  频率:★★★)

​​Shiro--整合jwt--通过url路径控制权限--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

session存放在哪里?(难度:★★  频率:★)

一般放在Redis。见:​​Shiro--整合shiro-redis--使用/教程/实例_IT利刃出鞘的博客-CSDN博客​​

IOC

Spring循环依赖解决方法及原理(难度:★★★★  频率:★★★★)


  • ​​Spring(SpringBoot)--循环依赖--解决方案--实例_IT利刃出鞘的博客-CSDN博客​​
  • ​​Spring(SpringBoot)--循环依赖的原理--@Autowired_IT利刃出鞘的博客-CSDN博客​​

FactoryBean和BeanFactory区别(难度:★★★★  频率:★★)


  • ​​Spring(SpringBoot)--BeanFactory--使用/原理/详解_IT利刃出鞘的博客-CSDN博客​​
  • ​​Spring(SpringBoot)--FactoryBean--使用/原理/详解_IT利刃出鞘的博客-CSDN博客​​

BeanFactory和ApplicationContext区别?(难度:★★★★  频率:★)

​​Spring(SpringBoot)--ApplicationContext--使用/教程/原理_IT利刃出鞘的博客-CSDN博客​​

bean的生命周期是怎样的(难度:★★★  频率:★)

​​Spring--Bean生命周期--流程/原理--SpringBoot_IT利刃出鞘的博客-CSDN博客​​

Spring几种scope区别(难度:★★★  频率:★)

​​Spring--Bean的作用域(scope)--使用/详解_IT利刃出鞘的博客-CSDN博客​​

容器的生命周期是怎样的?(难度:★★★  频率:★)

​​容器生命周期--Lifecycle_IT利刃出鞘的博客-CSDN博客​​

AOP 

AOP有哪几种通知,如果方法执行报异常,哪个通知不会执行?(难度:★★★★  频率:★)

  • 前置,后置,环绕,返回,异常。若报异常,返回不会执行。见:​​这里​​

SpringAOP解决了什么问题?(难度:★★★  频率:★★)

​​Spring(SpringBoot)--AOP--使用场景/原理/实现方式_IT利刃出鞘的博客-CSDN博客​​

SpringAOP实际开发过什么功能?(难度:★★★  频率:★★★)

​​Spring(SpringBoot)--AOP--使用场景/原理/实现方式_IT利刃出鞘的博客-CSDN博客​​

AOP原理?(难度:★★★★  频率:★★★★★)

​​Spring(SpringBoot)--AOP的原理_IT利刃出鞘的博客-CSDN博客​​

事务 

Spring默认数据里隔离级别是什么?项目里用的哪个?(难度:★★★  频率:★★)

默认采用数据库的隔离级别。项目里就是用的默认的。见:​​MySQL--隔离级别--脏读/不可重复读/幻读--详解/实例_IT利刃出鞘的博客-CSDN博客​​

Spring事务失效场景?(难度:★★★★  频率:★★★★)

​​Spring(SringBoot)--事务失效--原因/场景/解决方案_IT利刃出鞘的博客-CSDN博客​​

Spring事务传播机制?(难度:★★★★  频率:★★)

​​Spring(SpringBoot)--事务传播机制--应用/实例/详解_IT利刃出鞘的博客-CSDN博客​​

其他

SpringBoot如何热部署?yml配置文件修改后是否也能及时更新?(难度:★★★  频率:★)

​​SpringBoot--热部署--方案_IT利刃出鞘的博客-CSDN博客​​

SpringBoot自动配置原理?(难度:★★★★★  频率:★)

​​SpringBoot原理--自动配置_IT利刃出鞘的博客-CSDN博客​​

SpringMVC

SpringMVC流程(难度:★★★★  频率:★★★)

​​SpringMVC原理--请求流程_IT利刃出鞘的博客-CSDN博客​​

servlet的过滤器、监听器、拦截器的执行顺序 (难度:★★★  频率:★★)

​​SpringMVC--过滤器/拦截器/AOP--区别/使用/顺序_IT利刃出鞘的博客-CSDN博客​​

SpringBoot的启动流程?(难度:★★★★  频率:★★★★)

​​SpringBoot原理--启动流程_IT利刃出鞘的博客-CSDN博客​​

SpringBoot的动态代理默认用的哪个(cglib还是JDK)?(难度:★★★★  频率:★★★★)

SpringBoot 1.5.x:默认使用JDK代理,SpringBoot 2.x:默认使用CGLIB代理。

见:​​Spring--AOP--使用场景/原理/实现方式_IT利刃出鞘的博客-CSDN博客​​

怎么自己写SpringBootStarter(难度:★★★★  频率:★)

​​SpringBoot--自定义SpringBootStarter_IT利刃出鞘的博客-CSDN博客​​

MyBatis的#与$有什么区别?(难度:★★  频率:★★★★)

​​MyBatis--基础_IT利刃出鞘的博客-CSDN博客​​

MyBatis的原理?(Mapper是个接口,它的实现类在哪?)(难度:★★★★  频率:★★)

​​Spring(SpringBoot)--FactoryBean--使用/原理/详解_IT利刃出鞘的博客-CSDN博客​​

为什么MyBatis与Spring整合二级缓存会失效 ?(难度:★★★★  频率:★★)

​​Mybatis原理--缓存机制_IT利刃出鞘的博客-CSDN博客​​

分布式

CAP理论是什么?Zookeeper和Eureka分别放弃了什么?(难度:★★★  频率:★★★)


  • ​​分布式--分布式架构_IT利刃出鞘的博客-CSDN博客​​
  • ​​注册中心--Eureka、Zookeeper、Nacos、Consul--选型/区别_IT利刃出鞘的博客-CSDN博客​​

分布式锁实现方式(难度:★★★  频率:★★★★★)

​​分布式锁--实现方式/方案_IT利刃出鞘的博客-CSDN博客​​

2PC、3PC、TCC的区别及使用场景?(难度:★★★★  频率:★★)

​​分布式事务--理论_IT利刃出鞘的博客-CSDN博客​​

分布式session共享解决方案(难度:★★★  频率:★★)

​​分布式Session--方案_IT利刃出鞘的博客-CSDN博客​​

为什么微服务一定要有网关?(难度:★★★  频率:★)

​​项目软知识--微服务为什么要有网关_IT利刃出鞘的博客-CSDN博客​​

配置中心

如何把微服务的公共配置给拿出来?(难度:★★  频率:★)

  • 用spring.profiles.include,将公共的配置包含进去。

Nacos

Nacos如何续期?(难度:★★★  频率:★★)

  • 这个地方我没看。我转而回答的Eureka的续期方案。详见下方

Nacos支持AP还是CP?(难度:★★★  频率:★★)

  • 两者都支持。选一种即可

Zookeeper

Zookeeper注册中心挂了,服务还能否调用?(难度:★★★  频率:★★)

  • 可以,因为客户端还有缓存。见:​​Dubbo--详解_IT利刃出鞘的博客-CSDN博客​​

ZK分布式锁,leader节点宕机了,会发生什么?(难度:★★★★  频率:★)

  • 进行选举(过半选举)

RPC

RPC框架有哪些?SpringCloud是否是RPC框架?(难度:★★  频率:★)

Dubbo(阿里的)、gRPC(谷歌的),RMI(远程方法调用,JAVA自带的远程方法调用工具)、Thrift(Apache的)

SpringCloud不是rpc框架,它是分布式一整套解决方案,它的feign组件是rpc框架。

SpringCloud与Dubbo的区别?(难度:★★  频率:★)

​​Dubbo与SpringCloud区别_IT利刃出鞘的博客-CSDN博客​​

HTTP与RPC方式的区别?(难度:★★★  频率:★)

​​分布式--RPC_IT利刃出鞘的博客-CSDN博客​​

主要是:服务注册、负载均衡、限流、降级、熔断。首先要看其原理。

服务注册(Eureka)

Eureka都挂了,服务还能否调用?(难度:★★★  频率:★★)


  • 可以。因为客户端还有缓存。
  • 见:​​SpringCloud原理--Eureka--续期/自我保护_IT利刃出鞘的博客-CSDN博客​​

如何续期?如何自我保护?(难度:★★★  频率:★★)

  • 见:​​SpringCloud原理--Eureka--续期/自我保护_IT利刃出鞘的博客-CSDN博客​​

熔断(Hystrix)(难度:★★★★★  频率:★)


  • 这个问题的问法一般是:有没有读过一些源码,说一下原理吧。我一般会回答Spring是如何解决循环依赖的,如果面试官已经问过这个循环依赖的原理了,我才会回答这个熔断的原理。
  • ​​SpringCloud原理--hystrix的熔断_IT利刃出鞘的博客-CSDN博客​​

负载均衡(Ribbon)(难度:★★★★★  频率:★)

​​SpringCloud原理--ribbon的负载均衡_IT利刃出鞘的博客-CSDN博客​​

SpringCloud限流用哪些组件?(难度:★★★  频率:★)

  • ribbon和hystrix

配置中心

配置中心的配置修改后,服务不重启可以获得最新配置吗?(难度:★★  频率:★)

  • 可以的。可以使用消息总线(Spring Cloud Bus)

降级

正排索引与倒排索引的区别?(难度:★★★  频率:★)

​​ElasticSearch--软知识_IT利刃出鞘的博客-CSDN博客​​

ES如何与数据库(如Mysql)同步数据?(难度:★★★  频率:★★★)

​​ElasticSearch--与MySQL同步_IT利刃出鞘的博客-CSDN博客​​

有没有遇到过什么比较复杂的问题,如何排查的?(难度:★★★★  频率:★★★★★)

  • 我一般会回答:遇到的问题是:接口返回很慢。排查步骤如下:

  • 第1步:看数据库是否索引失效了,以及产生了数据库死锁
  • 通过链路追踪工具(比如:SkyWalking)可找到执行慢的地方,如果是数据库问题,可以定位到具体的语句的
  • 第2步:查看CPU占用、内存占用、频繁Full GC等

  • 如果上一步发现不是数据库问题,则排查CPU占用等。
  • 方法见:​​Java--线上问题排查--方法/步骤_IT利刃出鞘的博客-CSDN博客​​


OOM如何排查?(难度:★★★  频率:★★)

  • 使用jprofiler,查看OOM时的堆输出。

Java进程消失,如何排查?(难度:★★★  频率:★)

​​Java--进程突然消失--原因/排查方案_IT利刃出鞘的博客-CSDN博客​​

一个微服务起了多个实例,怎么让定时任务只在一个实例上执行?(难度:★★★  频率:★)

  • 用定时任务中间件。常用的有:​​XXL-JOB​​​、​​PowerJob​​​、​​quartz​​

如何处理SpringMVC中的异常? (难度:★★★  频率:★★★)


  • 用全局异常处理:@ControllerAdvice + @ExceptionHandler。
  • 见:​​SpringMVC/SpringBoot--全局异常处理/全局响应/全局请求--实例_IT利刃出鞘的博客-CSDN博客​​

从用户请求到数据返回的整个流程(难度:★★  频率:★★★)

​​用户请求到出现页面流程_IT利刃出鞘的博客-CSDN博客​​

IaaS,PaaS和SaaS是什么?(难度:★★  频率:★)

​​IaaS,Paas,SaaS,DaaS--区别_IT利刃出鞘的博客-CSDN博客​​

网站常见的安全漏洞有哪些?(难度:★★★  频率:★)

​​网站安全漏洞--大全_IT利刃出鞘的博客-CSDN博客​​

oauth2是干什么用的,流程是怎样的?(难度:★★★★★  频率:★★)

​​OAuth2--流程/原理_IT利刃出鞘的博客-CSDN博客​​

微服务关闭后一段时间内请求仍会过来,如何解决?(难度:★★★★★  频率:★★)

​​SpringCloud Eureka--关闭微服务后请求还会进来_IT利刃出鞘-CSDN博客​​

如何不停机更新服务?(难度:★★★★  频率:★)

对于单机项目:改个端口启动,然后修改Nginx配置,使Nginx路由到新服务。

对于微服务项目:将某个微服务的新版本启动,等注册中心刷新到之后,停掉旧版本微服务。

HTTP(常见问题)

HTTPS的详细流程(难度:★★★★  频率:★★)

​​HTTPS--流程/原理_IT利刃出鞘的博客-CSDN博客​​

HTTP消息结构(难度:★★  频率:★)

​​HTTP--报文结构_IT利刃出鞘的博客-CSDN博客​​

HTTP状态码及其含义(难度:★★  频率:★★)

简记:正完重客服。(1xx:在处理请求;2xx:请求处理毕(成功);3xx:定向(需要附加操作);4xx:户端错误(导致服务器无法处理请求), 5xx:务器错误(服务器处理请求出错))

WebCocket,HTTP,Socket区别与联系?(难度:★★  频率:★)

​​Http,Socket,Websocket--区别_IT利刃出鞘的博客-CSDN博客​​

HTTP1.0和HTTP2.0的区别?(难度:★★  频率:★)

​​HTTP1.1与HTTP2.0的区别_IT利刃出鞘的博客-CSDN博客​​

Linux

Linux的5种IO模型(难度:★★★★  频率:★)

​​Linux--五种IO模型--详解_IT利刃出鞘的博客-CSDN博客​​

数据结构与算法

怎么判断一个链表有环?(难度:★★★  频率:★)

​​如何判断一个单链表是否有环? - 简书​​

常见排序算法的复杂度及稳定性(难度:★★★  频率:★★)

​​排序算法--Java实例/原理_IT利刃出鞘的博客-CSDN博客​​

常见查找算法的复杂度及稳定性(难度:★★★  频率:★★)

​​查找算法--Java实例/原理_IT利刃出鞘的博客-CSDN博客​​

网络

网络的5层协议的体系结构(难度:★  频率:★★★)

​​计算机网络--基础_IT利刃出鞘的博客-CSDN博客​​

TCP握手与挥手流程?为什么要三次?四次?(难度:★★★  频率:★★)

​​网络--TCP与UDP_IT利刃出鞘的博客-CSDN博客​​

TCP如何保证可靠传输?(难度:★★★  频率:★)

​​TCP协议如何保证可靠传输_IT利刃出鞘的博客-CSDN博客​​

服务器怎么主动向客户端主动推送?(难度:★★  频率:★)

  • 客户端去轮询(每秒查询一次);websocket;TCP;UDP内网穿透

DNS劫持是怎样的?(难度:★★★  频率:★)

  • 劫持DNS服务器,修改此域名的解析结果为指定IP,导致对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。

Linux无法通过curl获得服务器主页数据如何排查?(难度:★★  频率:★)

  • 关防火墙、看host文件里边是否ip和域名绑定了

两个同网段Linux服务器在不安装客户端情况下如何传递文件?(难度:★  频率:★)

  • scp命令

Linux命令

查看文本文件头部n行。(难度:★  频率:★)

  • head -n 200 filename //200可替换为任一数字

查看文本文件末尾n行。(难度:★  频率:★)

  • tail -n 200 filename //200可替换为任一数字

查看文本文件行数。(难度:★  频率:★)

  • wc -l filename

Netty

Netty 是如何解决 TCP的拆包/粘包问题的?(难度:★★★  频率:★)

​​Netty--原理--TCP--粘包与拆包_IT利刃出鞘的博客-CSDN博客​​

编程题(难度:★★★  频率:★★)

​​Java笔试题编程题大全(有详细答案)_IT利刃出鞘的博客-CSDN博客​​

大数据

大数据量如何统计重复出现的次数?(难度:★★★★★  频率:★)

​​大数据处理方案_IT利刃出鞘的博客-CSDN博客​​

怎么实时统计订单?(难度:★★★★★  频率:★)

使用Storm框架。​​Storm--实时订单分析_IT利刃出鞘的博客-CSDN博客​​

要统计10分钟内订单的亏损,你会怎么设计?(难度:★★★★★  频率:★)

使用Storm的窗口模式

问研发


  1. 加班时间
  1. 上下班时间,中午休息多久(这个问研发比较准,hr可能知道的不准)
  1. 技术栈

  1. 是单体还是分布式。(这都2021年了,还不是分布式的话,不建议去了)
  2. 是否前后端分离
  3. 技术栈是否够新。如果技术栈里有下边这些玩意,不要去了,这都老掉牙了。

  1. 前端:struts、jsp (现在都用Vue、React、bootstrap这些了)
  2. 后端:ssh(现在都是ssm了)

  1. 是否用了小众技术。若有如下这些,不建议去了(屠龙术会了有什么用呢)。

  1. 网络管制
  1. 有的公司有网络管制。连博客都不让写。

问领导


  1. 部门研发人员组成

  1. 后端前端分别多少人。后端若低于5人,不太好。
  2. 后端是否都是用Java。(有的公司是PHP+Java,需要把PHP代码迁移到Java)

  1. 主要业务是怎样的

问hr


  1. 社保公积金

  1. 五险一金缴纳基数及比例(小公司可能按最低基数缴纳)
  2. 试用期是否缴纳五险一金(有差劲的公司试用期不缴纳)

  1. 试用期薪资发多少
  1. 大部分公司试用期前三个月发80%
  1. 年终奖保底几个月
  1. 不要问平均,问保底比较靠谱。举例:
  1. 朋友所在公司:入职前说平均2个月年终,结果只发了1个月
  1. 年假和全薪病假分别多少天
  1. 小公司一般没有全薪病假,可能病假期间薪资打折
  1. 一年几次调薪

到此这篇java基础面试问题大全及答案大全(java基础面试问题大全及答案大全解析)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java八股文是什么意思(java八股文在哪看)2025-11-30 16:45:05
  • list转成string字符串(list转成string字符串 java)2025-11-30 16:45:05
  • tcp工具类java(tcpserver java)2025-11-30 16:45:05
  • java教学视频网站(java的教学视频教程下载)2025-11-30 16:45:05
  • 华为odjava面试题(华为odjava机试题)2025-11-30 16:45:05
  • java学习网站(java课程网站)2025-11-30 16:45:05
  • java内存模型和java内存结构(java的内存模型是什么)2025-11-30 16:45:05
  • yum安装rzsz(yum安装java)2025-11-30 16:45:05
  • java自学网公众号(java自学官网)2025-11-30 16:45:05
  • java调用dll动态库里的方法(java 调用动态库)2025-11-30 16:45:05
  • 全屏图片