![](https://i-blog.csdnimg.cn/direct/b2b536a87db24f998979903b5bfce2f6.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java面试题
文章平均质量分 70
专栏主要分享Java技术的面试题及解析。内容涵盖基础知识、面向对象编程、异常处理、集合框架、多线程编程和JVM等。专栏定期更新,提供高质量的题目和解答,帮助读者提升面试技巧和技术水平。互动性强,欢迎读者留言讨论,共同进步。
Blaise Lin
共勉
展开
-
JAVA面试题:SpringBoot怎么做自动配置
编写配置类创建一个带有注解的类,定义所需的Bean。通过结合使用条件注解,可以根据实际需要控制这些Bean的加载条件。在中注册在META-INF/目录下创建文件,并在其中注册自定义配置类。这样,Spring Boot在启动时就能够自动发现并加载这些配置类。使用条件注解灵活使用条件注解(如)来防止重复装配Bean,确保配置类在不同的条件下都能表现出正确的行为。例如,可以根据环境变量、配置文件属性或类路径中的依赖情况,来动态调整配置。原创 2024-08-19 10:51:51 · 412 阅读 · 0 评论 -
JAVA面试题:什么是一级缓存,什么是二级缓存?
一级缓存是 `SqlSession` 级别的缓存,仅在同一个 `SqlSession` 中有效,用于提高单次会话内的查询效率;二级缓存则是 `SqlSessionFactory` 级别的缓存,多个 `SqlSession` 可以共享,减少数据库查询次数。一级缓存会在 `SqlSession` 关闭或执行增删改操作时失效,二级缓存则根据配置的清除策略或增删改操作来管理缓存有效性。原创 2024-08-12 13:16:25 · 272 阅读 · 0 评论 -
JAVA面试题:Mybatis中使用${}和#{}的区别
在使用 MyBatis 进行数据库操作时,`#{} 用于参数绑定,会生成预处理语句,使用?占位符,可以防止 SQL 注入;而 ${} 是直接字符串替换,会将参数值直接嵌入到 SQL 语句中,无法防止 SQL 注入,要谨慎使用。原创 2024-08-08 16:49:38 · 215 阅读 · 0 评论 -
JAVA面试题:MyBatis和Hibernate的区别
MyBatis和Hibernate都是Java持久层框架,但它们在自动化程度、DAO层处理、框架重量和性能以及SQL优化方面存在显著差异。Hibernate是全自动化ORM框架,简化了DAO层的开发,不需要手写SQL语句,但由于大量的反射操作,可能会影响性能,并且不便于SQL优化和复杂查询的处理。MyBatis则是半自动化ORM框架,虽然需要手动编写SQL语句和结果映射,但提供了更大的灵活性和控制权,且性能更高,便于进行SQL优化。原创 2024-08-07 09:54:49 · 906 阅读 · 0 评论 -
JAVA面试题:String、Stringbuffer、StringBuilder的区别
String类一旦创建了一个String对象,它的值就不能改变,对String进行操作时,都会创建一个新的String对象,此外,String是线程安全的。StringBuffer对象可变,可以对其内容进行修改而不产生新的对象,StringBuffer是线程安全的,适用于多线程的环境。StringBuilder在进行字符串拼接和修改时效率比StringBuffer更高,因为它的方法不是同步的,所以它也是线程不安全的。原创 2024-07-25 14:20:32 · 492 阅读 · 0 评论 -
JAVA面试题:HashMap和HashTable的区别
HashMap 和 HashTable 都是基于哈希(Hash)原理的 Map 接口实现类,它们利用哈希函数将键(Key)映射到表中的位置,从而实现快速的查找、插入和删除操作。原创 2024-07-23 13:57:12 · 909 阅读 · 0 评论 -
JAVA面试题:ArrayList和LinkedList的区别
集合(Collection)是一个存储多个对象的数据结构。集合的主要目的是为了高效地管理、操作和存取这些对象。集合可以是有限的,也可以是无限的,它们可以包含不同类型的对象,通常提供各种操作方法来添加、删除、查找、遍历和排序这些对象。原创 2024-07-22 21:42:57 · 983 阅读 · 0 评论 -
JAVA面试题:重载和重写的区别
多态(Polymorphism)是面向对象编程中的一个重要概念,它允许不同类的对象通过相同的接口调用而表现出不同的行为。多态性使程序具有更好的灵活性和可扩展性,减少代码的冗余。编译时多态性(静态多态性):通过方法重载实现。在编译阶段确定调用哪个方法。运行时多态性(动态多态性):通过方法重写和接口实现。在运行阶段根据对象的实际类型决定调用哪个方法。原创 2024-07-20 13:27:00 · 400 阅读 · 0 评论 -
JAVA面试题:数据库的存储引擎 InnoDB和MyISAM的区别
数据库存储引擎是数据库的底层组件,负责数据的存储和访问,直接影响数据库的性能、可靠性和扩展性。常见的存储引擎有InnoDB、MyISAM等。不同的存储引擎具有各自的特性和优缺点,MySQL允许我们根据具体使用场景为数据库表选择合适的存储引擎。原创 2024-07-19 13:40:32 · 433 阅读 · 0 评论