后端
文章平均质量分 87
java面试常见
Unksoo
这个作者很懒,什么都没留下…
展开
-
JAVA面试部分——后端-框架前篇
在Spring框架中,@Async注解可以用来将一个方法标记为异步方法,以实现异步处理。@Async注解可以指定一个自定义的线程池,也可以使用默认的线程池。默认情况下,@Async注解使用的是Spring的默认线程池,即SimpleAsyncTaskExecutor。SimpleAsyncTaskExecutor是一个基于内存的线程池,它不具有任何线程生命周期管理的复杂性,不提供线程池的参数配置。如果你想使用自定义的线程池,可以通过在@Async注解上设置value属性来指定线程池的名称。原创 2024-01-15 08:54:01 · 899 阅读 · 0 评论 -
JAVA面试部分——后端-Redis
此外,Redis事务不支持原子性,即一个事务中的命令可能会被其他客户端的命令打断,导致数据处于不一致的状态。集合(Set): 应用场景:集合是一种无序的数据结构,可以存储多个不重复的字符串类型的元素,适用于实现交集、并集等操作。替代方案:在关系数据库中,可以使用一张表来存储集合数据,将元素作为一行记录,使用唯一索引来保证元素的不重复性。这意味着在MySQL中,一个事务中的所有操作要么全部提交成功,要么全部失败回滚,而在Redis中,一个事务中的操作不具备原子性,可能只部分执行。原创 2024-01-12 09:26:26 · 703 阅读 · 1 评论 -
JAVA面试部分——后端-数据库后篇
这是因为幻读涉及到的是在一个事务内读取了另一个事务插入的新记录,即使在RR级别下,其他事务仍然可以在当前事务开始后插入新记录,因此可能导致幻读。第五范式(5NF)是最终范式,它消除了第四范式中存在的连接依赖,即在一个表中,如果存在与该表主键没有直接关系的非主属性,那么这个表就不符合第五范式。当一个事务需要在锁定范围内插入或更新数据时,InnoDB会升级该事务的锁定级别,并使用排他锁来锁定该范围内的所有行。总之,间隙锁是一种强大的锁定机制,通过锁定索引范围而不是实际数据行,可确保数据的一致性和完整性。原创 2024-01-11 08:44:16 · 1573 阅读 · 1 评论 -
JAVA面试部分——后端-数据库前篇
索引回表是一种数据库查询策略,用于处理在数据库中查询某个特定值但只知道其部分或模糊的信息的情况。通过先定位主键值,然后根据主键值扫描整行数据,以找到具体的行记录。避免索引回表的方法是使用覆盖索引。覆盖索引是一种特殊类型的索引,其中包含了查询所需的所有数据,因此无需回表获取数据。将被查询的字段建立到联合索引里去,这样就能避免索引回表。原创 2024-01-10 10:20:22 · 1740 阅读 · 0 评论 -
JAVA面试部分——后端-线程后篇
函数式接口是Java中的一种接口,它只包含一个抽象方法。在Java 8及以后的版本中,函数式接口被用于支持Lambda表达式和函数式编程。函数式接口在结构上的特点如下:只包含一个抽象方法。可以包含默认方法和静态方法。使用@FunctionalInterface注解进行标识,以确保它符合函数式接口的规范。除了抽象方法之外,函数式接口还可以声明默认方法和静态方法。默认方法允许在接口中提供方法的默认实现,可以被实现接口的类选择性重写。原创 2024-01-09 08:49:37 · 1124 阅读 · 0 评论 -
JAVA面试部分——后端-线程前篇
SynchronousQueue:一种无缓冲的等待队列,类似于无中介的直接交易,有点像原始社会中的生产者和消费者,生产者拿着产品去集市销售给产品的最终消费者,而消费者必须亲自去集市找到所要商品的直接生产者。同时,线程池中的线程状态也不同,有些是核心线程,有些是非核心线程。线程初始化的时候线程数量:初始时,线程池中的线程数量通常等于核心线程数。并行计算:线程池可以用于并行计算,将计算任务分解为多个子任务,分配给线程池中的线程并行执行,加速计算过程。只有拥有临界区的线程才能执行其中的代码,其他线程必须等待。原创 2024-01-09 08:48:46 · 1093 阅读 · 0 评论 -
Java常见面试题--后端——JavaSE前篇
所有的对象实例以及数组都在堆上分配。堆是Java内存管理中最大的一块区域,也是线程共享的,主要被用于存储运行时期的对象信息,包括实例变量和数组。基本数据类型在Java中有明确的范围和存储规则,这些范围和规则是Java语言规范所确定的,保证了跨平台性和数据的准确性。引用数据类型包括类(Class)、接口(Interface)、数组(Array)等,这些类型的变量存储的是对象的引用(内存地址),而非对象本身的值。而Java是一种完全跨平台的语言,因为它在虚拟机上运行,可以在不同的平台上运行相同的字节码。原创 2024-01-05 15:05:53 · 857 阅读 · 1 评论 -
Java常见面试题--后端——JavaSE后篇
将复杂的现实世界抽象为类和对象,只关注对象的行为和特性,隐藏不必要的细节,简化复杂性。这些特性共同构成了面向对象编程的核心理念,并提供了一种有效的方法来组织和管理复杂的软件系统,使得代码更易于理解、扩展和维护。原创 2024-01-05 15:22:06 · 1071 阅读 · 1 评论 -
JAVA常见面试题——后端--集合篇
在 Java 中,线程安全的 Map 实现主要是。是一个线程安全的哈希表实现,与Hashtable不同,它提供了更好的并发性能。分段锁机制内部使用分段锁(Segment)来控制不同部分(段)的访问,将整个 Map 分成多个小的 Segment,每个 Segment 独立加锁,不同线程访问不同 Segment 的数据时可以并行进行,提高了并发性能。读写分离允许多个线程同时读取,但对于写操作,需要加锁。因此,它的读操作不会阻塞,可以并发进行。安全性保障:在保证并发性的同时,原创 2024-01-08 09:17:23 · 1438 阅读 · 1 评论