草庐IT

关注Github爆火《Java程序员面试核心知识点》收藏破百万

JAVA序码 2023-12-20 原文

我从21年的1月份准备实习开始,到8月中旬,已拿到多家心仪大厂offer,经过漫长的8个月,终于尘埃落定,最后的结果还算满意。大家在 知乎分享的各种经验贴对自己获益颇丰,但到目前为止,自己还没给大家分享过啥。在这里分享些自己的经验,希望给找工作的小伙伴一点帮助。

一、JVM面试专题

  1. 内存模型以及分区,需要详细到每个区放什么?
  2. 什么情况下会发生栈内存溢出?
  3. 详解JVM内存模型
  4. JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么
  5. 要分为Eden和Survivor
  6. 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。
  7. GC 的两种判定方法:
  8. SafePoint 是什么
  9. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
  10. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
  11. 类加载的几个过程:
  12. JVM 内存分哪几个区,每个区的作用是什么?
  13. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  14. 简述 java 垃圾回收机制?
  15. java 内存模型
  16. 类加载器双亲委派模型机制?
  17. 垃圾收集器相关
  18. 怎么打出线程栈信息
  19. 强引用、软引用、弱引用、虚引用的区别?
  20. 什么是类加载器,类加载器有哪些?
  21. 内存屏障
  22. 说一下 JVM由那些部分组成,运行流程是什么?
  23. 说一下 JVM 运行时数据区
  24. 详细的介绍下程序计数器?(重点理解)
  25. 你能给我详细的介绍Java堆吗?
  26. 能不能解释一下方法区
  27. 什么是JVM字节码执行引擎
  28. 堆栈的区别是什么?
  29. Java会存在内存泄漏吗?请说明为什么?
  30. 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?
  31. 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。
  32. 为什么需要双亲委派模型?
  33. 说说你知道的几种主要的JVM参数
  34. 简述 java 内存分配与回收策率以及 Minor GC 和Major GC

二、Linux面试专题

  1. Linux 中主要有哪几种内核锁?
  2. 怎样申请大块内核内存?
  3. 通过伙伴系统申请内核内存的函数有哪些?
  4. 如何加载、卸载一个模块?
  5. Linux 中的浮点运算由应用程序实现还是内核实现?
  6. 模块程序能否使用可链接的库函数?
  7. 字符设备驱动程序的关键数据结构是哪个?
  8. 如何唯一标识一个设备?
  9. 什么是Linux
  10. Unix和Linux有什么区别?
  11. Linux的基本组件是什么?
  12. BASH和DOS之间的基本区别是什么?
  13. Linux 开机启动过程?
  14. Linux 使用的进程间通信方式?
  15. Linux系统安装多个桌面环境有帮助吗?
  16. 什么是BASH?
  17. 什么是GUI?
  18. GNU项目的重要性是什么?
  19. 简单 Linux 文件系统?
  20. 什么是硬链接和软链接?
  21. 一台 Linux 系统初始化环境后需要做一些什么安全工作?
  22. 什么是网站数据库注入?
  23. 如何选择 Linux 操作系统版本?
  24. 请问当用户反馈网站访问慢,你会如何处理?
  25. Linux 性能调优都有哪几种方法?
  26. 基本命令:cd、pwd、ls、ll、touch、mkdir、cat、more、less、tail

三、MyBatis面试专题

1、什么是 MyBatis?

答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。

2、讲下 MyBatis 的缓存

答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓

存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化

接口(可用来保存对象的状态),可在它的映射文件中配置<cache/>

3、Mybatis 是如何进行分页的?分页插件的原理是什么?

4、简述 Mybatis 的插件运行原理,以及如何编写一个插件?

5、Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?

6、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。

7、MyBatis 与 Hibernate 有哪些不同?

8、MyBatis 的好处是什么?

9、MyBatis 实现一对一有几种方式?具体怎么操作的?

10、Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区

别?

11、MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?

12、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?

13、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?

14、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?

15、Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?

16、Mybatis 中如何执行批处理?

17、Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?

18、Mybatis 执行批量插入,能返回数据库主键列表吗?

19、Mybatis 是否可以映射 Enum 枚举类?

20、如何获取自动生成的(主)键值?

四、SpringBoot面试专题

1、什么是 Spring Boot?

2、SpringBoot与SpringCloud 区别?

3、Spring Boot 有哪些优点?

4、推荐和默认的日志框架是哪个?

5、它主要由哪几个注解组成的?

6、Spring Boot 的核心注解是哪个?

7、Spring Boot 支持哪些日志框架?

8、SpringBoot的缺点

9、与 1.X 有什么区别?

10、SpringBoot Starter的工作原理

11、Spring Boot 2.X 有什么新特性?

12、SpringBoot支持什么前端模板?

13、Spring Boot 需要独立的容器运行吗?

14、SpringBoot的自动配置原理是什么?

15、SpringBoot 实现热部署有哪几种方式?

16、如何在 Spring Boot 启动的时候运行一些特定的代码?

17、什么是 JavaConfifig?

18、Spring Boot 是否可以使用 XML 配置 ?

19、什么是 YAML?

20、、bootstrap.properties 和application.properties 有何区别 ?

五、Spring面试专题

  1. 什么是 Spring 框架?
  2. Spring 框架有哪些主要模块?
  3. 使用 Spring 框架能带来哪些好处?
  4. 什么是依赖注入?
  5. 什么是控制反转(IOC)?
  6. 请解释下 Spring 框架中的 IoC?
  7. 核心容器(应用上下文) 模块
  8. XMLBeanFactory
  9. Spring的优缺点是什么?
  10. Spring框架的设计目标,设计理念,和核心是什么?
  11. Spring 框架中都用到了哪些设计模式?
  12. 解释 JDBC 抽象和 DAO 模块
  13. 解释对象/关系映射集成模块
  14. 什么是 Spring IOC 容器?
  15. BeanFactory 和 ApplicationContext有什么区别?
  16. Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解:
  17. 有哪些不同类型的依赖注入实现方式?
  18. Spring 有几种配置方式?
  19. 如何用基于 Java 配置的方式配置 Spring?
  20. 怎样用注解的方式配置 Spring?

SQL优化面试专题

  1. Mysql 的技术特点是什么?
  2. MySQL 中有哪几种锁?
  3. 唯一索引比普通索引快吗, 为什么?
  4. Heap 表是什么?
  5. MySQL 中有哪些不同的表格?
  6. MySQL由哪些部分组成, 分别用来做什么?
  7. 与 Oracle 相比,Mysql 有什么优势?
  8. 简述在MySQL 数据库中 MyISAM 和InnoDB 的区别?
  9. MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更?
  10. 如何区分 FLOAT 和 DOUBLE?
  11. 区分 CHAR_LENGTH 和 LENGTH?
  12. MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为?
  13. MyISAM和InnoDB的区别有哪些?
  14. MySQL怎么恢复半个月前的数据
  15. 如果一个表有一列定义为TIMESTAMP,将发生什么?
  16. 你怎么看到为表格定义的所有索引?
  17. 做过哪些MySQL索引相关优化?
  18. 一千万条数据的表, 如何分页查询
  19. MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?

七、Tomcat面试专题

  1. tomcat 有哪几种Connector 运行模式(优化)?
  2. Tomcat有几种部署方式?
  3. Tomcat的缺省端口是多少,怎么修改?
  4. tomcat 如何优化?
  5. tomcat容器是如何创建servlet类实例?用到了什么原理?
  6. 垃圾回收策略调优
  7. 共享session处理
  8. 内存调优
  9. 专业点的分析工具有
  10. 添加JMS远程监控
  11. 打印类的加载情况及对象的回收情况
  12. 关于Tomcat的session数目
  13. 监视Tomcat的内存使用情况
  14. .Tomcat工作模式?
  15. get方式和post方式有何区别
  16. Servlet相关 API
  17. 什么是cookie?Session和cookie有什么区别?

八、zookeeper面试专题

  1. ZooKeeper和dubbo的区别?
  2. ZooKeeper是什么?
  3. ZooKeeper 提供了什么?
  4. 说说Zookeeper 文件系统:
  5. Zookeeper的java客户端都有哪些?
  6. 说说ZAB协议?
  7. 四种类型的数据节点 Znode
  8. Zookeeper Watcher 机制 -- 数据变更通知
  9. Zookeeper节点宕机如何处理?
  10. Zookeeper的典型应用场景?
  11. 服务端处理 Watcher 实现
  12. ACL 权限控制机制
  13. 客户端回调 Watcher
  14. 服务器角色
  15. 说一下Zookeeper Watcher机制
  16. 服务端处理Watcher的流程?
  17. 客户端回调 Watcher流程?
  18. 客户端注册Watcher的流程?
  19. 说说ACL权限控制机制?
  20. Zookeeper 下 Server 工作状态
  21. zookeeper 是如何保证事务的顺序一致性的?
  22. 分布式集群中为什么会有 Master?
  23. 集群最少要几台机器,集群规则是怎样的?
  24. 集群支持动态添加机器吗?
  25. chubby 是什么,和 zookeeper 比你怎么看?
  26. ZAB 和 Paxos 算法的联系与区别?

由于篇幅有限,获取完整面试题和答案解析可以转发后私信关键字【大厂】获取!

九、消息中间件面试专题

  1. activemq 如果数据提交不成功怎么办?
  2. activemq 的几种通信方式:
  3. 如何解决消息重复问题
  4. activeMQ 发送消息的方式有哪些?
  5. 大量的消息每页被消费,能否发生 oom 异常?
  6. 消息通信的基本方式有哪两种?分别是哪些?
  7. 什么是死信队列?
  8. activeMQ 如何调优
  9. Basic.Reject 的用法是什么?
  10. 为什么不应该对所有的 message 都使用持久化机制?
  11. 向不存在的 exchange 发 publish 消息会发生什么?
  12. 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  13. 向不存在的exchange 发 publish 消息会发生什么?
  14. queue 执行 consume 动作会发生什么?
  15. 什么情况下 producer 不主动创建 queue 是安全的?
  16. “dead letter”queue 的用途?

十、Dubbo面试(上)

1、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

  • dubbo:
  • rmi:
  • webservice:
  • http:
  • hessian:
  • memcache:
  • redis:

2、Dubbo 超时时间怎样设置?有几种设计方式?

3、Dubbo 集群的负载均衡有哪些策略 ?

4、Dubbo 提供了哪些常见的集群策略实现?

5、Dubbo 是什么?

6、Dubbo 的主要应用场景?

7、Dubbo 的核心功能?

8、Dubbo 的架构设计?

9、Dubbo 框架设计一共划分了 10 个层,每个对应的作用是?

  • 服务接口层(Service)
  • 配置层(Config)
  • 服务代理层(Proxy)
  • 服务注册层(Registry)
  • 集群层(Cluster)
  • 监控层(Monitor)
  • 远程调用层(Protocol)
  • 信息交换层(Exchange)
  • 网络传输层(Transport)

十一、Dubbo面试专题(下)

  1. dubbo 服务负载均衡策略?
  2. Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
  3. dubbo 连接注册中心和直连的区别?
  4. dubbo 服务集群配置(集群容错模式)
  5. Dubbo 在安全机制方面是如何解决的
  6. dubbo 通信协议 dubbo 协议为什么要消费者比提供者个数多:
  7. dubbo 通信协议 dubbo 协议为什么不能传大包:
  8. . RMI 协议
  9. dubbo 通信协议 dubbo 协议为什么采用异步单一长连接:
  10. dubbo 通信协议 dubbo 协议适用范围和适用场景
  11. Hessian 协议
  12. Webservice
  13. Thrif

十二、MongoDB面试专题

  1. MySQL 与 MongoDB 之间最基本的差别是什么?
  2. NoSQL 数据库有哪些类型?
  3. 为什么要使用和不使用NoSQL 数据库?
  4. 说一说 NoSQL 数据库的几个优点?
  5. 你说的 NoSQL 数据库是什么意思?
  6. NoSQL 与 RDBMS 直接有什么区别?
  7. 你怎么比较 MongoDB、CouchDB 及 CouchBase?
  8. 32 位系统上有什么细微差别?
  9. MongoDB 成为最好 NoSQL 数据库的原因是什么?
  10. 如果用户移除对象的属性,该属性是否从存储层中删除?
  11. 允许空值 null 吗?
  12. 分析器在 MongoDB 中的作用是什么?
  13. 更新操作立刻 fsync 到磁盘?
  14. 为什么我的数据文件如此庞大?
  15. 如何执行事务/加锁?
  16. 启用备份故障恢复需要多久?
  17. 我必须调用 getLastError 来确保写操作生效了么?
  18. 分片(sharding)和复制(replication)是怎样工作的?
  19. 数据在什么时候才会扩展到多个分片(shard)里?
  20. 我可以把 moveChunk 目录里的旧文件删除吗?

我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就把我看过的和我面试中的真题,及答案都整理好,整理了《互联网大厂面试题》 涵盖了Java后端面试必问的35个技术点:JVM、Linux、MyBatista、Spring Boot、Spring、SQL优化、Tomcat、Zookeeper、消息中间件、Dubbo、MongoDB、MySQL、RabbitMQ、Redis、Spring Cloud、并发编程、开源框架、ActiveMQ、等35个专题技术栈分享给到大家,希望年后能助大家一臂之力,挺进一线互联网大厂,冲刺年薪百万---《Java面试核心技术》——打开

 

有关关注Github爆火《Java程序员面试核心知识点》收藏破百万的更多相关文章

  1. ruby-on-rails - 建模收藏夹 - 2

    我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor

  2. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  3. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  4. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

  7. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  8. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  9. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  10. java - 为什么 ruby​​ modulo 与 java/other lang 不同? - 2

    我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.

随机推荐