自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 JAVA面试题:ConcurrentHashMap的扩容机制

在JDK1.7版本中,ConcurrentHashMap使用了Segment分段锁机制,每个Segment相当于一个小的HashMap,它们各自判读和执行扩容,当需要扩容时,生成一个新的数组,将元素重新分配到新的数组中。到了JDK1.8版本中,Segment机制被取消了,直接使用了细颗粒度的锁机制,当需要扩容时,如果已有线程在扩容,其它的线程会参与扩容,提升效率,扩容时,生成新数组并将元素分组,多个线程并行完成元素的迁移工作。这样提高了并发性能和扩容速度。

2024-08-21 09:51:12 982

原创 JAVA面试题:SpringBoot怎么做自动配置

编写配置类创建一个带有注解的类,定义所需的Bean。通过结合使用条件注解,可以根据实际需要控制这些Bean的加载条件。在中注册在META-INF/目录下创建文件,并在其中注册自定义配置类。这样,Spring Boot在启动时就能够自动发现并加载这些配置类。使用条件注解灵活使用条件注解(如)来防止重复装配Bean,确保配置类在不同的条件下都能表现出正确的行为。例如,可以根据环境变量、配置文件属性或类路径中的依赖情况,来动态调整配置。

2024-08-19 10:51:51 412

原创 JAVA面试题:什么是一级缓存,什么是二级缓存?

一级缓存是 `SqlSession` 级别的缓存,仅在同一个 `SqlSession` 中有效,用于提高单次会话内的查询效率;二级缓存则是 `SqlSessionFactory` 级别的缓存,多个 `SqlSession` 可以共享,减少数据库查询次数。一级缓存会在 `SqlSession` 关闭或执行增删改操作时失效,二级缓存则根据配置的清除策略或增删改操作来管理缓存有效性。

2024-08-12 13:16:25 272

原创 JAVA面试题:Mybatis中使用${}和#{}的区别

在使用 MyBatis 进行数据库操作时,`#{} 用于参数绑定,会生成预处理语句,使用?占位符,可以防止 SQL 注入;而 ${} 是直接字符串替换,会将参数值直接嵌入到 SQL 语句中,无法防止 SQL 注入,要谨慎使用。

2024-08-08 16:49:38 215

原创 JAVA面试题:MyBatis和Hibernate的区别

MyBatis和Hibernate都是Java持久层框架,但它们在自动化程度、DAO层处理、框架重量和性能以及SQL优化方面存在显著差异。Hibernate是全自动化ORM框架,简化了DAO层的开发,不需要手写SQL语句,但由于大量的反射操作,可能会影响性能,并且不便于SQL优化和复杂查询的处理。MyBatis则是半自动化ORM框架,虽然需要手动编写SQL语句和结果映射,但提供了更大的灵活性和控制权,且性能更高,便于进行SQL优化。

2024-08-07 09:54:49 906

原创 JAVA面试题:String、Stringbuffer、StringBuilder的区别

String类一旦创建了一个String对象,它的值就不能改变,对String进行操作时,都会创建一个新的String对象,此外,String是线程安全的。StringBuffer对象可变,可以对其内容进行修改而不产生新的对象,StringBuffer是线程安全的,适用于多线程的环境。StringBuilder在进行字符串拼接和修改时效率比StringBuffer更高,因为它的方法不是同步的,所以它也是线程不安全的。

2024-07-25 14:20:32 492

原创 JAVA面试题:HashMap和HashTable的区别

HashMap 和 HashTable 都是基于哈希(Hash)原理的 Map 接口实现类,它们利用哈希函数将键(Key)映射到表中的位置,从而实现快速的查找、插入和删除操作。

2024-07-23 13:57:12 909

原创 JAVA面试题:ArrayList和LinkedList的区别

集合(Collection)是一个存储多个对象的数据结构。集合的主要目的是为了高效地管理、操作和存取这些对象。集合可以是有限的,也可以是无限的,它们可以包含不同类型的对象,通常提供各种操作方法来添加、删除、查找、遍历和排序这些对象。

2024-07-22 21:42:57 983

原创 JAVA面试题:重载和重写的区别

多态(Polymorphism)是面向对象编程中的一个重要概念,它允许不同类的对象通过相同的接口调用而表现出不同的行为。多态性使程序具有更好的灵活性和可扩展性,减少代码的冗余。编译时多态性(静态多态性):通过方法重载实现。在编译阶段确定调用哪个方法。运行时多态性(动态多态性):通过方法重写和接口实现。在运行阶段根据对象的实际类型决定调用哪个方法。

2024-07-20 13:27:00 400

原创 JAVA面试题:数据库的存储引擎 InnoDB和MyISAM的区别

数据库存储引擎是数据库的底层组件,负责数据的存储和访问,直接影响数据库的性能、可靠性和扩展性。常见的存储引擎有InnoDB、MyISAM等。不同的存储引擎具有各自的特性和优缺点,MySQL允许我们根据具体使用场景为数据库表选择合适的存储引擎。

2024-07-19 13:40:32 433

原创 使用Java解压RAR和ZIP文件:详细指南

在开发过程中,我们经常需要处理压缩文件,如ZIP和RAR文件。本文将介绍如何使用Java解压这两种常见的压缩文件格式,具体包括使用。以下是完整的Java代码示例,展示了如何解压RAR和ZIP文件。

2024-07-12 00:14:45 380 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除