In which design pattern is the Comparator class used for comparing objects?
Java
public class MoneyTransferService { /** * @param fromAccountId unique identifier of the user transferring funds * @param toAccountId unique identifier of the user receiving funds * @param amount transfer amount. Positive number */ @Transactional public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Amount must be +"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Account can't be the same"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Account not found")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Account not found")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Balance is less 0"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(from.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); } } @Entity @Data public class Account { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private BigDecimal balance; }
Describe the process of handling JSP pages, from server request to user response.
How can you temporarily disable the execution of tests during a Maven project build?
Which HTTP method is not idempotent?
Explain how memory allocation and management occur in the JVM in the event of an OutOfMemoryError.
What operations exist in streams and what types of operations are there?
How are beans initialized in Spring?
What methods can be used to protect your application from unwanted mass activity and spam attacks?
What is meant by the persistent state of an entity in Hibernate, and how does it affect its management in ORM?
What annotation is used in Spring to define environment profile handling?
How to ensure safe access to a singleton class in a multithreaded environment?
How to implement counting processed records when using multithreading?
What is the difference between @RequestMapping and @PutMapping annotations in Spring?
Can you explain the principle of data replication in a database?
Should only one connection be established or can there be multiple?
Why is the clone() method declared in the Object class and not in the Cloneable interface?
Can you explain the concept of lock-free algorithms and how they differ from other synchronization methods?
How can application performance analysis be conducted to identify bottlenecks?