开发喵星球

裕日软件公司面试题总结

1、如何给5个Dog对象排序。

1、在Dog类中实现Comparable接口,并重写compareTo方法。compareTo方法用于定义Dog对象之间的比较规则。

2、然后,你可以使用Arrays.sort方法或Collections.sort方法来对Dog对象的数组或集合进行排序。(举例在具体的场景中如何使用)

2、JVM的调优策略

(八股文,自己上网查)

3、Set集合是怎么实现去除重复元素的

  1. 当你向Set集合中添加元素时,它会首先调用元素的hashCode()方法获取元素的哈希值。
  2. Set集合会根据元素的哈希值确定元素在内部数据结构中的存储位置。
  3. 如果这个位置上已经存在元素,Set集合会调用该元素的equals()方法与新元素进行比较。
  4. 如果equals()方法返回true,表示新元素与已存在的元素相等,Set集合会认为该元素已经存在于集合中,不进行添加操作。
  5. 如果equals()方法返回false,表示新元素与已存在的元素不相等,Set集合会将新元素添加到集合中。

4、谈谈数据库的乐观锁和悲观锁

乐观锁和悲观锁是数据库并发控制中常用的两种策略,用于处理多个事务同时访问和修改同一个数据时的并发冲突问题。

悲观锁(Pessimistic Locking):
悲观锁假设在整个数据访问过程中会发生冲突,因此在事务访问数据时会对数据进行加锁,阻止其他事务对数据的修改。悲观锁通常使用数据库提供的锁机制(如行级锁、表级锁)来实现。

乐观锁(Optimistic Locking):
乐观锁假设在整个数据访问过程中不会发生冲突,因此事务在提交之前不会显式加锁。相反,它使用一种乐观的机制来处理并发冲突。

5、spring中有哪些事务管理,你在项目中常用的事务管理

  1. 编程式事务管理
    编程式事务管理是通过编写代码来显式地管理事务。在代码中使用事务管理器(TransactionManager)手动开启、提交或回滚事务,并定义事务的边界。这种方式灵活性较高,但需要手动处理事务的开启、提交和回滚,代码相对复杂。
  2. 声明式事务管理
    声明式事务管理是通过在方法或类级别上使用注解或XML配置的方式来声明事务的属性。Spring框架会根据声明的事务属性自动管理事务的开启、提交和回滚。常用的声明式事务管理方式有两种:

    • 基于注解的事务管理:使用注解(如@Transactional)在方法或类级别上声明事务属性。
    • 基于XML配置的事务管理:在XML配置文件中使用<tx:advice><tx:attributes>等元素声明事务属性。
  3. JTA事务管理
    JTA(Java Transaction API)是Java平台的事务管理标准,允许在分布式环境下进行事务管理。Spring框架通过JtaTransactionManager支持JTA事务管理。JTA事务管理适用于需要跨多个资源(如多个数据库)进行事务控制的场景。
   
分类:技术栈 作者:开发喵 发表于:2023-11-22 18:52:08 阅读量:86
<<   >>


powered by kaifamiao