写点什么

2025 史上最全 Java 面试题:初级 - 中级 - 高级!

  • 2024-12-04
    湖南
  • 本文字数:7614 字

    阅读完需:约 25 分钟

Java 基础题 1.Java 语言的三大特性


2.Java 语言主要特性


  1. JDK 和 JRE 有什么区别


4.Java 基本数据类型及其封装类


5.如果 main 方法被声明为 private 会怎样?


6.说明一下 public static void main(String args[])这段声明里每个关键字的作用


7.==与 equals 的区别


8.Object 有哪些公用方法


9.为什么 Java 里没有全局变量?


10.while 循环和 do 循环有什么不同?


11.char 型变量中能不能存储一个中文汉字?为什么?


12.public,private,protected 的区别,继承方法与访问权限


13.float f=3.4;是否正确?


14.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?


15.&和 &&的区别?


16.IntegerCache


17.Locale 类是什么?


18.Java 中 final、finally、finalize 的区别与用法


19.hashCode()和 equals()的区别


20.深拷贝和浅拷贝的区别是什么?


21.Java 中操作字符串都有哪些类?它们之间有什么区别?


22.String str="a"与 String str=new String("a")一样吗?


23.抽象类能使用 final 修饰吗?


24.static 关键字 5 连问


  1. 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?


26.Java 的四种引用


27.Java 中 Comparator 与 Comparable 有什么不同?


  1. Java 序列化,反序列化?


29.什么情况需要 Java 序列化?


30.序列化的实现?


31.如果某些数据不想序列化,如何处理?


32.Java 泛型和类型擦除?


java 集合 1.Java 集合框架的基础接口有哪些?


2.Collection 和 Collections 有什么区别?


3.List、Set、Map 是否继承自 Collection 接口?


4.Collections.sort 排序内部原理


5.List、Set、Map 之间的区别是什么?


6.HashMap 和 Hashtable 有什么区别?


7.如何决定使用 HashMap 还是 TreeMap?


8.说一下 HashMap 的实现原理?


9.说一下 HashSet 的实现原理?


10.ArrayList 和 LinkedList 的区别是什么?


11.为何 Map 接口不继承 Collection 接口?


12.ArrayList 和 Vector 有何异同点?


13.Array 和 ArrayList 有何区别?


14.在 Queue 中 poll()和 remove()有什么区别?


15.LinkedHashMap 有什么特点?


16.HashMap 的底层实现原理?(高频问题)


17.HashMap 并发安全的问题


18.JDK1.8 与 JDK1.7 的性能对比


19.HashMap 操作注意事项以及优化?


异常 &反射 1.error 和 exception 有什么区别?


2.说出 5 个常见的 RuntimeException?


3.throw 和 throws 的区别?


4.Java 中异常分类


5.如何自定义异常


6.Java 中异常处理


7.什么是 Java 反射机制?


8.举例什么地方用到反射机制?


9.java 反射机制的作用


10.Java 反射机制类


11.反射机制优缺点?


12.利用反射创建对象?


lO&NIO1.什么是 IO 流?


2.java 中有几种类型的流?


3.字节流和字符流哪个好?怎么选择?


4.读取数据量大的文件时,速度会很慢,如何选择流?


  1. IO 模型有几种?


6.阻塞 IO(blocking IO)


7.非阻塞 I/O(nonblocking IO)


8.I/O 多路复用模型(IO multiplexing)


9.信号驱动 I/O 模型


10.异步 I/O(asynchronous IO)


11.NIO 与 IO 的区别?


12.NIO 和 IO 适用场景


13.NIO 核心组件


14.什么是 channel15.Java NIO 中最常用的通道实现?16.Buffer 是什么?17.核心 Buffer 实现有哪些?18.buffer 读写数据基本操作 19.Selector 是什么?20.通道可以监听那几个事件?21.为什么要用 Selector?22.Selector 处理多 Channel 图文说明


多线程 1.什么是进程?2.什么是线程?3.线程的实现方式?4.Thread 类中的 start(和 run()方法有什么区别?5.线程 NEW 状态 6.线程 RUNNABLE 状态 7.线程的 RUNNING 状态 8.线程的 BLOCKED 状态 9.线程的 TERMINATED 状态 10.线程状态转化图 11.i-一与 System.out.println)的异常 12.如何知道代码段被哪个线程调用?13.线程活动状态?14.sleep0 方法 15.如何优雅的设置睡眠时间?16.停止线程 17.interrupted 和 isInterrupted18.yield19.线程的优先级 20.优先级继承特性 21.谁跑的更快?22.线程种类 23.守护线程的特点 24.Java 中典型的守护线程 25.如何设置守护线程 25.Java 虚拟机退出时 Daemon 线程中的 finally 块一定会执行?26.设置线程上下文类加载器 27.join28.什么是 synchronized?29.synchronized 包括哪两个 jvm 重要的指令?30.synchronized 关键字用法?31.synchronized 锁的是什么?32.Java 对象头 33.Java 对象头长度 34.Java 对象头的存储结构 35.Mark Word 的状态变化 36.锁的升降级规则 37.偏向锁 38.关闭偏向锁延迟 39.如何关闭偏向锁 40.轻量级锁 41.轻量锁的解锁 42.锁的优缺点对比 43.什么是原子操作 44.Java 如何实现原子操作 45.CAS 实现原子操作的 3 大问题 46.什么是 ABA 问题 47.CAS 循环时间长占用资源大问题 48.CAS 只能保证一个共亨变量原子操作 49.volatile 关键字 50.等待/通知机制 51.wait52.notify53.notify/notifyAll54.等待/通知经典范式 57.解决 get(返回 null 问题 58.Lock 接口 59.Lock 接口提供 synchronized 不具备的主要特性 60.重入锁 ReentrantLock61.重进入是什么意思?62.ReentrantLock 默认锁?63.公平锁和非公平锁的区别 64.读写锁读写锁允许同一时刻多个读线程访问,但是写线程和其他写..65.LockSupport 工具 66.Condition 接口 67.Condition 使用 68.ArrayBlockingQueue?69.PriorityBlockingQueue?70.DelayQueue?71.Java 并发容器,你知道几个?72.ConcurrentHashMap73.ConcurrentLinkedQueue74.什么是阻塞队列?75.阻塞队列常用的应用场景?76.Java 里的阻塞的队列 77.Fork/Join78.工作窃取算法 79.工作窃取算法的有缺点 80.Java 中原子操作更新基本类型,Atomic 包提供了哪几个类?81.Java 中原子操作更新数组,Atomic 包提供了哪几个类?82.Java 中原子操作更新引用类型,Atomic 包提供了哪几个类?83.Java 中原子操作更新字段类,Atomic 包提供了哪几个类?84.JDK 并发包中提供了哪几个比较常见的处理并发的工具类?85.CountDownLatch86.CyclicBarrier87.CountDownLatch 与 CyclicBarrier 区别 88.Semaphore89.Exchanger90.为什么使用线程池 91.线程池工作流程 92.创建线程池参数有哪些,作用?93.向线程池提交任务 94.关闭线程池 95.线程池如何合理设置 96.Executor97.Executor 框架的主要成员 98.FixedThreadPool99.SingleThreadExecutor100.CachedThreadPool


JVM1.JDK、JRE、JVM 关系?⒉启动程序如何查看加载了哪些类,以及加载顺序?3.class 字节码文件 10 个主要组成部分?4.画一下 jvm 内存结构图?5.程序计数器 6.Java 虚拟机栈 7.本地方法栈 8.Java 堆 9.方法区 10.运行时常量池?11.什么时候抛出 StackOverflowError?12.Java7 和 Java8 在内存模型上有什么区别?13.程序员最关注的两个内存区域?14.直接内存是什么?15.除了哪个区域外,虚拟机内存其他运行时区域都会发生 O...16.什么情况下会出现堆内存溢出?17.如何实现一个堆内存溢出?18.空间什么情况下会抛出 OutOfMemoryError?19.如何实现 StrackOverflowError?20.如何设置直接内存容量?21.Java 堆内存组成?22.Edem : from : to 默认比例是?23.垃圾标记阶段?24.引用计数法?25.根搜索算法?26.JVM 中三种常见的垃圾收集算法?27.标记-清除算法?28 复制算法?29.标记-整理算法?30.分代收集算法?31.垃圾收集器?32.Stop The World?33.Serial 收集器?34.PartNew 收集器?36.Parallel Scavenge?37.Parallel Old 收集器?38.CMS 收集器?39.CMS 垃圾回收的步骤?41.CMS 收集器优点?缺点?42.G1 收集器?42.G1 收集器是如何改进收集方式的?43.虚拟机进程状况工具?44.虚拟机统计信息工具?45.jstat 工具主要选项?45.配置信息工具?46.内存映像工具?47.虚拟机堆转存储快照分析工具?48.堆栈跟踪工具?49.除了命令行,还有什么可视化工具?50.类加载过程?


Linux1.什么是 Linux?2.Linux 内核主要负责哪些功能 3.交互方式 4.启动 shell5.bash 手册 6.登陆后你在的位置?7.绝对文件路径?相对文件路径?快捷方式?8.迷路,我的当前位置在哪?9.如何切换目录?10.如何查看目录中的文件?区分哪些是文件哪些是目录?递...11.创建文件?创建目录?批量创建?12.删除文件?强制删除?递归删除?13.制表符自动补全?14.复制文件 15.重新命名文件?移动文件?16.什么是链接文件?17.查看文件类型?字符编码?18.查看整个文件?按照有文本显示行号?无文本显示行号?19.查看部分文件 20.数据排序?对数字进行排序?对月份排序?21.查找匹配数据?反向搜?22.压缩工具有哪些?23.如何压缩文件?如何解压文件?24.Linux 广泛使用的归档数据方法?25.如何查看命令历史记录?26.查看已有别名?建立属于自己的别名?27.什么是环境变量?28.储存用户的文件是?包括哪些信息?29.账户默认信息?添加账户?删除用户?30.查看组信息?如何创建组?删除组?31.文件描述符?每个描述符的含义?31.修改权限?32.如何执行可以执行文件?33.列出已经安装的包?安装软件?更新软件?卸载?34.源码安装通常的路子?35.vim 编辑器几种操作模式?基本操作?36.查看设备还有多少磁盘空间?37.默认进程信息显示?38.实时监测进程 39.如何中断—个进程?40.如何把─个进程放到后台运行?41.如何停止一个进程?42.验证网络可链接命令是什么?什么原理?43.查看某端口是否被占用?44.如何查找匹配的文件?基于文件属性?45.如何查看当前主机名?如何修改?如何重启后生效?46.如何写—条规则,拒绝某个 ip 访问本机 8080 端口?47.哪个文件包含了主机名和 ip 的映射关系?48.如何用 sed 只打印第 5 行?删除第一行?替换字符串?49.打印文件第—行到第三行?50.如何用 awk 查看第 2 行倒数第 3 个字段?


Mysql1.什么是数据库?2.如何查看某个操作的语法?3.MySql 的存储引擎有哪些?4.常用的 2 种存储引擎?6.可以针对表设置引擎吗?如何设置?6.选择合适的存储引擎?7.选择合适的数据类型 8.char & varchar9.Mysql 字符集 10.如何选择字符集?11.什么是索引?12.索引设计原则?13.MySql 有哪些索引?14.Hash 索引和 B+树索引的底层实现原理:15.非聚簇索引一定会回表查询吗?16.如何查询最后—行记录?17.MySQL 自增 id 不连续问题?18.sql 注入问题?19.什么是 3NF(范式)?20. NULL 和空串判断?21.什么是事务?22.事务 4 个特性?23.事务隔离级别分别是?24.InnoDB 默认事务隔离级别?如何查看当前隔离级别 25.什么是锁?26.死锁?27.如何处理死锁?28.如何创建用户?授权?29.如何查看表结构?30.Mysql 删除表的几种方式?区别?31.like 走索引吗?32.什么是回表?33.如何避免回表?34.索引覆盖是什么?35.视图的优缺点?36.主键和唯—索引区别?37.如何随机获取一条记录?38.Mysql 中的数值类型?39.查看当前表有哪些索引?40.索引不生效的情况?41.MvVC?42.sql 语句的执行流程?43.如何获取 select 语句执行计划?44.explain 列有哪些?含义?45.MySql 最多创建多少列索引?46.为什么最好建立一个主键?47.字段为什么要求建议为 not null?48.varchar(10)和 int(10)代表什么含义 49.视图是什么?对比普通表优势?50.count(*)在不同引擎的实现方式?


Spring1.Spring 框架?2.Spring 的整体架构?3.Spring 可以做什么?4.Spring 的优点?缺点?5.你能说几个 Spring5 的新特性吗?6.IOC?7.什么是依赖注入?8.IOC 注入哪几种方式?9.IOC 优点?缺点?10.bean 的生命周期?11.Spring 有几种配置方式?12.Spring 中的 bean 有几种 scope?13.什么是 AOP(面向切面编程)?14.切面有几种类型的通知?分别是?15.什么是连接点(Join point)?16.什么是切点(Pointcut)?17.什么是切面(Aspect)?18.织入(Weaving)?19.引入(Introduction)?20.在目标对象的生命周期里有多个点可以进行织入?21.AOP 动态代理策略?22.什么是 MVC 框架?23.什么是 SpringMVC?24.SpringMVC 的核心?25.SpringMVC 的几个组件?26.SpringMVC 工作流程?27.SpringMVC 的优点?28.单例 bean 是线程安全的吗?29.Spring 从哪两个角度实现自动装配?30.自动装配有几种方式?分别是?31.说几个声明 Bean 的注解?32.注入 Java 集合的标签?33.Spring 支持的 ORM?34.@Repository 注解?35.@Value 注解?36.@Controller 注解?37.声明─个切面注解是哪个?38.映射 web 请求的注解是?39.@ResponseBody 注解?40.@ResponseBody + @Controller =?41.接收路径参数用哪个注解?42.@Cacheable 注解?43.清空缓存是哪个注解?44.@Component 注解?45.BeanFactory 和 ApplicationContext 区别?46.@Qualifier 注解?47.事务的注解是?48.Spring 事务实现方式有?49.什么是事务传播?50.Spring 事务传播行为有哪些?


Mybatis1.什么是 Mybatis?2.Hibernate 优点?3.Hibernate 缺点?4.Mybatis 优点?5.Mybatis 缺点?6.什么时候用 Mybatis?7.Mybatis 的核心组件有哪些?分别是?8.#和 $的区别是什么?9.Mybatis 中 9 个动态标签是?10.xml 映射文件中,有哪些标签?11.Mybatis 支持注解吗?优点?缺点?12.Mybatis 动态 sql?13.Mybatis 是如何进行分页的?分页插件的原理是什么?14.如何获取自增主键?15.为什么 Mapper 接口没有实现类,却能被正常调用?16.用注解好还是 xml 好?17.如果不想手动指定别名,如何用驼峰的形式自动映射?18.当实体属性名和表中字段不—致,怎么办?19.嵌套查询用什么标签?20.like 模糊查询怎么写?21.Mybatis 支持枚举吗?22.SqIlSessionFactoryBuilder 生命周期?23.—级缓存的结构?如何开启一级缓存?如何不便用一级缓..24.二级缓存如何配置?25.简述 Mybatis 的插件运行原理,以及如何编写—个插件?26.二级缓存的回收策略有哪些?27.Mybatis 的 Xml 文件中 id 可以重复吗?28.和 Mybatis 搭配 java 框架中比较好用的缓存框架?有哪...


Nginx1.什么是 nginx?2.nginx 主要特征?3.nginx 常用命令?4.工作模式及连接数上限?5.nginx 负载均衡几种算法?6.nginx 有几种进程模型?7.如何定义错误提示页面?8.如何精准匹配路径?9.路径匹配优先级?10.如何把请求转发给后端应用服务器?11.如何根据文件类型设置过期时间?12.禁止访问某个目录?13.nginx 负载均衡实现过程?14.负载均衡配置?15.设置超时时间?16.开启压缩功能好处?坏处?


Redis1.Redis 是什么?2.Redis 特性?3.Redis 合适的应用场景?4.除了 Redis 你还知道哪些 NoSQL 数据库?5.Redis 和 Memcache 区别?6.Redis 的有几种数据类型?7.Redis 有哪些高级功能?8.安装过 Redis 吗,简单说下步骤?9.redis 几个比较主要的可执行文件?分别是?10.启动 Redis 的几种方式?11.Redis 配置需要自己写?如何配置?12.Redis 客户端命令执行的方式?13.如何停止 redis 服务?14.如何查看当前键是否存在?15.如何删除数据?16.redis 为什么快?单线程?17.字符串最大不能超过多少?18.redis 默认分多少个数据库?19.redis 持久化的几种方式?20.RDB 持久化?21.RDB 的持久化是如何触发的?22.RDB 的优点?23.RDB 的缺点?24.如何禁用持久化?25.AOF 持久化?26.如何查询 AOF 是否开启?27.如何开启 AOF?28.AOF 工作流程?29.为什么 AOF 要先把命令追加到缓存区(aof_buf)中?30.AOF 持久化如何触发的?31.AOF 优点?32.AOF 缺点?33.混合持久化?优缺点?34.Redis 的 Java 客户端官方推荐?实际选择?35.Redis 事务?36.Redis 事务开始到结束的几个阶段?37.Redis 中 key 的过期操作?38.Redis 过期键删除策略?39.Pipeline 是什么?为什么要它?40.如何获取当前最大内存?如何动态设置?41.Redis 内存溢出控制?42.Redis 内存溢出策略?43.Redis 高可用方案?44.Redis 集群方案?45.Redis Cluster 槽范围?46.Redis 锁实现思路?47.什么是布隆过滤器?48.什么是缓存穿透?处理问题?49.什么是缓存预热?50.什么是缓存雪崩?处理问题?


Dubbo1.什么是 Dubbo?2.为什么要使用 Dubbo?3.Dubbo 提供了哪 3 个关键功能?4.你知道哪些机构在用 Dubbo 吗?5.Dubbo 服务的关键节点有哪些?6.说一下 Dubbo 服务注册流程?7.能画—下服务注册流程图吗?8.Dubbo 架构的特点?9.对 jdk 的最小版本需求?10.注册中心的选择?11.Dubbo 的核心配置?用途?12.配置优先级规则?13.如何用代码方式绕过注册中心点对点直连?14.Dubbo 配置来源有几种?分别是?15.如何禁用某个服务的启动检查?16.Dubbo 负载均衡策略?默认是?17.上线兼容老版本?18.开发测试环境,想绕过注册中心如何配置?19.集群容错几种方法?20.Dubbo 有几种配置方式?21.Dubbo 有哪些协议?推荐?22.Dubbo 使用什么通信框架?23.dubbo 协议默认端口号? http 协议默认端口? hessian?...24.Dubbo 默认序列化框架?其他的你还知道?25.—个服务有多重实现时,如何处理?26.Dubbo 服务调用默认是阻塞的?还有其他的?27.Dubbo 服务追踪解决方案?28.Dubbo 不维护了吗?Dubbo 和 Dubbox 有什么区别?29.Dubbox 有什么新功能?30.io 线程池大小默认?31.dubbo://协议适合什么样的服务调用?32.自动剔除服务什么原理?33.从 2.0.5 版本开始,dubbo 支持通过 x 命令来进行服务..34.如何用命令查看服务列表?35.Dubbo 框架设计是怎样的?36.你读过 Dubbo 的源码吗?


SpringBoot1.什么是 SpringBoot?2.SpringBoot 的特征?3.如何快速构建一个 SpringBoot 项目?4.SpringBoot 启动类注解?它是由哪些注解组成?5.什么是 yaml?6.SpringBoot 支持配置文件的格式?7.SpringBoot 启动方式?8.SpringBoot 需要独立的容器运行?9.SpringBoot 配置途径?10.application.properties 和 application.yml 文件可放位...11.SpringBoot 自动配置原理?12.SpringBoot 热部署方式?13.bootstrap.yml 和 application.yml?14.SpringBoot 如何修改端口号?15.开启 SpringBoot 特性的几种方式?16.SpringBoot 如何兼容 Spring 项目?17.SpringBoot 配置监控?18.获得 Bean 装配报告信息访问哪个端点?19.关闭应用程序访问哪个端点?20.查看发布应用信息访问哪个端点?21.针对请求访问的几个组合注解?22.SpringBoot 中的 starter?23.SpringBoot 集成 Mybatis?24.什么是 SpringProfiles?25.不同的环境的配置文件?26.如何激活某个环境的配置?27.编写测试用例的注解?28.SpringBoot 异常处理相关注解?29.SpringBoot 1.x 和 2.x 区别?30.SpringBoot 读取配置相关注解有?


Kafka1.什么是 kafka?2.kafka 的 3 个关键功能?3.kafka 通常用于两大类应用?4.kafka 特性?5.kafka 的 5 个核心 Api?6.什么是 Broker (代理)?7.什么是 Producer(生产者)?8.什么是 Consumer (消费者)?9.什么是 Topic(主题)?10.什么是 Partition(分区)?11.分区和代理节点的关系?12.什么是副本(Replication)?13.什么是记录(Record)?14.kafka 适合哪些场景?15.kafka 磁盘选用上?16.使用 RAID 的优势?17.磁盘容量规划需要考虑到几个因素?18.Broker 使用单个?多个文件目录路径参数?19.—般来说选择哪个参数配置路径?好处?20.自动创建主题的相关参数是?21.解决 kafka 消息丢失问题?22.如何自定分区策略?23.kafka 压缩消息可能发生的地方?24.kafka 消息重复问题?25.你知道的 kafka 监控工具?


SpringCloud1.什么是 SpringCloud?2.什么是微服务?3.SpringCloud 有哪些特征?4.SpringCloud 核心组件?5.SpringCloud 基于什么协议?6.SpringCloud 和 Dubbo 区别?7.Eureka 是什么?8.服务治理的基础角色?9.什么是服务续约?10.什么是服务下线?11.什么是失效剔除?12.什么是自我保护机制?13.Ribbon 是什么?14.Ribbon 负载均衡的注解是?15.Ribbon 负载均衡策略有哪些?16.什么是服务熔断?17.什么是服务降级?18.什么是 Hystrix?19.断路器 Hystrix 的有哪些功能?20.Hystrix 将远程调用封装到?21.启动熔断降级服务的注解?22.什么是 Feign?23.Feign 优点?24.什么是 Config?25.Config 组件中的两个角色?26.什么是 Zuul?27.使用 Zuul 的优点?28.Zuul 的核心是?29.Zuul 有几种过滤器类型?分别是?30.什么是 Sleuth?31.Sleuth 帮助我们做了哪些工作?32.什么是 Bus?33.eureka 比 zookeeper 的优势在?34.什么是 Stream?35.更多知识?


简历一、基本格调二、基本信息(姓名/性别/毕业院校/电话/邮箱/居住地/期望地)三、工作经历 &项目经历四、工作期望 &个人评价五、是否有博客,个人技术栈点等六、简历内容真实性


学习目录


因为包含内容比较多,光小标题就 1W 字出头,所以已经帮大家整理成册,免费分享给大家!!


注:需要的小伙伴可以查看下方名片免费获取!



用户头像

公众号:程序员高级码农 2022-07-03 加入

公众号:程序员高级码农

评论

发布
暂无评论
2025史上最全Java面试题:初级-中级-高级!_Java_程序员高级码农_InfoQ写作社区