BATJ 互联网月薪 38K 的 Java 岗面试题首曝光,掌握这些大厂 Offer 指定跑不了

港控/mmm° 2023-09-30 20:26 22阅读 0赞

最近很多程序员朋友反映工作了好几年,眼看自己身边的伙伴都拿到了 30K+的薪水,自己的薪水却迟迟没有动静。猎聘大数据表明,无论企业还是个人,都采取积极的行动应对,寻找人才,寻找路径,寻找新的可能和机遇。

目前,一个 Java 编程工程师的月薪轻松过万,一个有几年工作经验的 Java 工程师薪酬在 36 万~60 万元之间不等,而更顶尖的 Java 技术人才则是年薪轻松超百万。你的薪资没到位,是因为你搞错了方向。Java 编程现在非常热门,BAT 在狂招人,供不应求。

下面给大家带来一份 Java 面试题总汇,掌握了这些面试题,我觉得月薪 30K 你可以冲一下!

内容包括:Java 基础、JVM、多线程、并发、Spring、MyBatis、SpringBoot、MySQL、Redis、SpringCloud、Nginx、MQ、数据结构与算法、Linux,最后还有简历指导!

基础篇

  • Java 语言有哪些特点
  • 面向对象和面向过程的区别
  • 八种基本数据类型的大小,以及他们的封装类
  • String、String StringBuffer 和 StringBuilder 的区别是什么?
  • HashMap 和 HashTable 的区别
  • Java 的四种引用,强弱软虚
  • 有没有可能两个不相等的对象有相同的 hashcode
  • try catch finally,try 里有 return,finally 还执行么?
  • OOM 你遇到过哪些情况,SOF 你遇到过哪些情况
  • Java IO 与 NIO 的区别
  • 说说 List,Set,Map 三者的区别?

93c738a69d57d2397c246e0efd381f14.png

JVM 篇

  • 简述一下 JVM 的内存模型
  • 什么时候会触发 FullGC
  • 什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?
  • 对象分配规则
  • 描述一下 JVM 加载 class 文件的原理机制?
  • 如何判断对象可以被回收?
  • JVM 的永久代中会发生垃圾回收么?
  • 垃圾收集算法
  • 调优命令有哪些?
  • Minor GC 与 Full GC 分别在什么时候发生?
  • 你知道哪些 JVM 性能调优

774487c39e795f5c2d4e6f0a19016847.png

多线程 &并发篇

  • Java 中实现多线程有几种方法
  • notify()和 notifyAll()有什么区别?
  • 为什么 wait 和 notify 方法要在同步块中调用?
  • 有三个线程 T1,T2,T3,如何保证顺序执行?
  • Thread 类中的 yield 方法有什么作用?
  • Java 线程池中 submit() 和 execute()方法有什么区别?
  • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗 synchronized 关键字最主要的三种使用方式:
  • 什么是线程安全?Vector 是一个线程安全类吗?
  • 常用的线程池有哪些?简述一下你对线程池的理解

86118165d946b96ecdcc3fef09151699.png

Spring 篇

  • Spring 的 IOC 和 AOP 机制?
  • Spring 中 Autowired 和 Resource 关键字的区别?
  • 依赖注入的方式有几种,各是什么?
  • 讲一下什么是 Spring
  • Spring MVC 流程
  • SpringMVC 怎么样设定重定向和转发的?
  • SpringMVC 常用的注解有哪些?
  • Spring 的 AOP 理解:
  • Spring 的 IOC 理解
  • 解释一下 spring bean 的生命周期
  • 解释 Spring 支持的几种 bean 的作用域。
  • Spring 基于 xml 注入 bean 的几种方式:
  • Spring 框架中都用到了哪些设计模式?

3c92dc11de3dc4029af4bef59d789ba1.png

Mybatis 篇

  • 什么是 MyBatis
  • MyBatis 的优点和缺点
  • #{}和 ${}的区别是什么?
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
  • 如何执行批量插入?
  • Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
  • MyBatis 实现一对一有几种方式?具体怎么操作的?
  • Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  • Mybatis 的一级、二级缓存

5f8a3454927b726c29c1b2edab7c902a.png

SpringBoot 篇

  • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
  • 运行 Spring Boot 有哪几种方式?
  • 如何理解 Spring Boot 中的 Starters?
  • 如何在 Spring Boot 启动的时候运行一些特定的代码?
  • Spring Boot 需要独立的容器运行吗?
  • Spring Boot 中的监视器是什么?
  • 如何使用 Spring Boot 实现异常处理?
  • 你如何理解 Spring Boot 中的 Starters?
  • springboot 常用的 starter 有哪些
  • SpringBoot 实现热部署有哪几种方式?
  • 如何理解 Spring Boot 配置加载顺序?
  • Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  • 如何集成 Spring Boot 和 ActiveMQ?

031ed645e488de95e314c2eb5145a689.png

MySQL 篇

  • 数据库的三范式是什么
  • 数据库引擎有哪些
  • InnoDB 与 MyISAM 的区别
  • 数据库的事务
  • 索引问题
  • SQL 优化
  • 简单说一说 drop、delete 与 truncate 的区别
  • 什么是视图
  • 什么是内联接、左外联接、右外联接?
  • 并发事务带来哪些问题?
  • 分库分表之后,id 主键如何处理?

8468ce09a8e76de5cbeec1ec961c07e6.png

Redis 篇

  • Redis 持久化机制
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • 热点数据和冷数据是什么
  • Memcache 与 Redis 的区别都有哪些?
  • 单线程的 redis 为什么这么快
  • redis 的数据类型,以及每种数据类型的使用场景
  • redis 的过期策略以及内存淘汰机制
  • Redis 为什么是单线程的
  • Redis 常见性能问题和解决方案?
  • 为什么 Redis 的操作是原子性的,怎么保证原子性的?
  • Redis 事务

3afc56dc70f5a5a827fc1ca65b3b0778.png

SpringCloud 篇

  • 什么是 SpringCloud
  • 什么是微服务
  • SpringCloud 有什么优势
  • 什么是服务熔断?什么是服务降级?
  • Eureka 和 zookeeper 都可以提供服务注册与发现的功能,请说说两个的区别?
  • SpringBoot 和 SpringCloud 的区别?
  • 负载平衡的意义什么?
  • 什么是 Hystrix?它如何实现容错?
  • 什么是 Hystrix 断路器?我们需要它吗?
  • 说说 RPC 的实现原理

2cd23f3055d4c6aab12d7d757334b503.png

Nginx 篇

  • 简述一下什么是 Nginx,它有什么优势和功能?
  • Nginx 是如何处理一个 HTTP 请求的呢?
  • 列举一些 Nginx 的特性
  • 请列举 Nginx 和 Apache 之间的不同点
  • 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
  • 请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
  • 请解释代理中的正向代理和反向代理
  • 解释 Nginx 用途

fa8b240545d520c9e4991657d8e4fbdf.png

MQ 篇

  • 为什么使用 MQ
  • MQ 优缺点
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?
  • 如何保证高可用的?
  • 如何保证消息的可靠传输?如果消息丢了怎么办
  • 如何保证消息的顺序性
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 设计 MQ 的思路

a3956e8883891a589381bec352eb1077.png

数据结构与算法篇

  • 常用的数据结构
  • 数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)
  • 写出代码判断一个整数是不是 2 的阶次方(请代码实现,谢绝调用 API 方法)
  • 假设今日是 2015 年 3 月 1 日,星期日,请算出 13 个月零 6 天后是星期几,距离现在多少天(请用代码实现,谢绝调用 API 方法)
  • 有两个篮子,分别为 A 和 B,篮子 A 里装有鸡蛋,篮子 B 里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
  • 更多算法练习

51f5f30b62b05dbce457f443ba66eecd.png

Linux 篇

  • 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
  • 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
  • 查看文件有哪些命令
  • 列举几个常用的 Linux 命令
  • 你平时是怎么查看日志的?

b18b99898f5ee60b503d4031b7bdf138.png

简历篇

  • 为什么说简历很重要?
  • 先从面试来说
  • 再从面试说起
  • 必知必会的几点
  • 必须了解的两大法则
  • 项目经历怎么写
  • 专业技能怎么写
  • 排版注意事项
  • 其他一些小 tips

361b6db6e016228a2dfa493d8dc665c4.png

由于本套笔记手册干货内容太多,就不一 一展示了,需要的小伙伴可自行领取。希望可以帮助大家在学习,和面试的路上,更加顺畅!提升技术,明年提升薪资

最近很多程序员朋友反映工作了好几年,眼看自己身边的伙伴都拿到了 30K+的薪水,自己的薪水却迟迟没有动静。猎聘大数据表明,无论企业还是个人,都采取积极的行动应对,寻找人才,寻找路径,寻找新的可能和机遇。

目前,一个 Java 编程工程师的月薪轻松过万,一个有几年工作经验的 Java 工程师薪酬在 36 万~60 万元之间不等,而更顶尖的 Java 技术人才则是年薪轻松超百万。你的薪资没到位,是因为你搞错了方向。Java 编程现在非常热门,BAT 在狂招人,供不应求。

下面给大家带来一份 Java 面试题总汇,掌握了这些面试题,我觉得月薪 30K 你可以冲一下!

内容包括:Java 基础、JVM、多线程、并发、Spring、MyBatis、SpringBoot、MySQL、Redis、SpringCloud、Nginx、MQ、数据结构与算法、Linux,最后还有简历指导

基础篇

  • Java 语言有哪些特点
  • 面向对象和面向过程的区别
  • 八种基本数据类型的大小,以及他们的封装类
  • String、String StringBuffer 和 StringBuilder 的区别是什么?
  • HashMap 和 HashTable 的区别
  • Java 的四种引用,强弱软虚
  • 有没有可能两个不相等的对象有相同的 hashcode
  • try catch finally,try 里有 return,finally 还执行么?
  • OOM 你遇到过哪些情况,SOF 你遇到过哪些情况
  • Java IO 与 NIO 的区别
  • 说说 List,Set,Map 三者的区别?

JVM 篇

  • 简述一下 JVM 的内存模型
  • 什么时候会触发 FullGC
  • 什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?
  • 对象分配规则
  • 描述一下 JVM 加载 class 文件的原理机制?
  • 如何判断对象可以被回收?
  • JVM 的永久代中会发生垃圾回收么?
  • 垃圾收集算法
  • 调优命令有哪些?
  • Minor GC 与 Full GC 分别在什么时候发生?
  • 你知道哪些 JVM 性能调优

edf877770226b7658a0bc5fb221325d5.png

多线程 &并发篇

  • Java 中实现多线程有几种方法
  • notify()和 notifyAll()有什么区别?
  • 为什么 wait 和 notify 方法要在同步块中调用?
  • 有三个线程 T1,T2,T3,如何保证顺序执行?
  • Thread 类中的 yield 方法有什么作用?
  • Java 线程池中 submit() 和 execute()方法有什么区别?
  • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗 synchronized 关键字最主要的三种使用方式:
  • 什么是线程安全?Vector 是一个线程安全类吗?
  • 常用的线程池有哪些?简述一下你对线程池的理解

Spring 篇

  • Spring 的 IOC 和 AOP 机制?
  • Spring 中 Autowired 和 Resource 关键字的区别?
  • 依赖注入的方式有几种,各是什么?
  • 讲一下什么是 Spring
  • Spring MVC 流程
  • SpringMVC 怎么样设定重定向和转发的?
  • SpringMVC 常用的注解有哪些?
  • Spring 的 AOP 理解:
  • Spring 的 IOC 理解
  • 解释一下 spring bean 的生命周期
  • 解释 Spring 支持的几种 bean 的作用域。
  • Spring 基于 xml 注入 bean 的几种方式:
  • Spring 框架中都用到了哪些设计模式?

66730d52ac8e1f3bb7e487786e7f3ddf.png

Mybatis 篇

  • 什么是 MyBatis
  • MyBatis 的优点和缺点
  • #{}和 ${}的区别是什么?
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
  • 如何执行批量插入?
  • Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
  • MyBatis 实现一对一有几种方式?具体怎么操作的?
  • Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  • Mybatis 的一级、二级缓存

8be9c42033694c28be5a4f82cadbebeb.png

SpringBoot 篇

  • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
  • 运行 Spring Boot 有哪几种方式?
  • 如何理解 Spring Boot 中的 Starters?
  • 如何在 Spring Boot 启动的时候运行一些特定的代码?
  • Spring Boot 需要独立的容器运行吗?
  • Spring Boot 中的监视器是什么?
  • 如何使用 Spring Boot 实现异常处理?
  • 你如何理解 Spring Boot 中的 Starters?
  • springboot 常用的 starter 有哪些
  • SpringBoot 实现热部署有哪几种方式?
  • 如何理解 Spring Boot 配置加载顺序?
  • Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  • 如何集成 Spring Boot 和 ActiveMQ?

f8f0c9f247d29deda3aacb1644ad0b6f.png

MySQL 篇

  • 数据库的三范式是什么
  • 数据库引擎有哪些
  • InnoDB 与 MyISAM 的区别
  • 数据库的事务
  • 索引问题
  • SQL 优化
  • 简单说一说 drop、delete 与 truncate 的区别
  • 什么是视图
  • 什么是内联接、左外联接、右外联接?
  • 并发事务带来哪些问题?
  • 分库分表之后,id 主键如何处理?

39ede08baa4884b59b173a318f201fc6.png

Redis 篇

  • Redis 持久化机制
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • 热点数据和冷数据是什么
  • Memcache 与 Redis 的区别都有哪些?
  • 单线程的 redis 为什么这么快
  • redis 的数据类型,以及每种数据类型的使用场景
  • redis 的过期策略以及内存淘汰机制
  • Redis 为什么是单线程的
  • Redis 常见性能问题和解决方案?
  • 为什么 Redis 的操作是原子性的,怎么保证原子性的?
  • Redis 事务

1a3372c7db461f170b336b48fd0013c1.png

SpringCloud 篇

  • 什么是 SpringCloud
  • 什么是微服务
  • SpringCloud 有什么优势
  • 什么是服务熔断?什么是服务降级?
  • Eureka 和 zookeeper 都可以提供服务注册与发现的功能,请说说两个的区别?
  • SpringBoot 和 SpringCloud 的区别?
  • 负载平衡的意义什么?
  • 什么是 Hystrix?它如何实现容错?
  • 什么是 Hystrix 断路器?我们需要它吗?
  • 说说 RPC 的实现原理

08b22f0852361b847da02aad47ba416b.png

Nginx 篇

  • 简述一下什么是 Nginx,它有什么优势和功能?
  • Nginx 是如何处理一个 HTTP 请求的呢?
  • 列举一些 Nginx 的特性
  • 请列举 Nginx 和 Apache 之间的不同点
  • 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
  • 请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
  • 请解释代理中的正向代理和反向代理
  • 解释 Nginx 用途

a737e8bc78aad8e903b384094b27d026.png

MQ 篇

  • 为什么使用 MQ
  • MQ 优缺点
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?
  • 如何保证高可用的?
  • 如何保证消息的可靠传输?如果消息丢了怎么办
  • 如何保证消息的顺序性
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 设计 MQ 的思路

7f478e21667f8b6308033932b580645d.png

数据结构与算法篇

  • 常用的数据结构
  • 数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)
  • 写出代码判断一个整数是不是 2 的阶次方(请代码实现,谢绝调用 API 方法)
  • 假设今日是 2015 年 3 月 1 日,星期日,请算出 13 个月零 6 天后是星期几,距离现在多少天(请用代码实现,谢绝调用 API 方法)
  • 有两个篮子,分别为 A 和 B,篮子 A 里装有鸡蛋,篮子 B 里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
  • 更多算法练习

749f2de3640f52aed194c857de25f691.png

Linux 篇

  • 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
  • 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
  • 查看文件有哪些命令
  • 列举几个常用的 Linux 命令
  • 你平时是怎么查看日志的?

7eba3c83d4bb9da47cd7d6b2fd3e7a36.png

简历篇

  • 为什么说简历很重要?
  • 先从面试来说
  • 再从面试说起
  • 必知必会的几点
  • 必须了解的两大法则
  • 项目经历怎么写
  • 专业技能怎么写
  • 排版注意事项
  • 其他一些小 tips

a215da7a52eb9e2836a5ac9fad5b0b08.png

由于本套笔记手册干货内容太多,就不一 一展示了,需要的小伙伴可自行领取。希望可以帮助大家在学习,和面试的路上,更加顺畅!提升技术,明年提升薪资

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,22人围观)

还没有评论,来说两句吧...

相关阅读