Can the implementation of a static method in a subclass be changed by overriding it?
Java
Tell us about your knowledge and experience working with Java.
What is Docker?
What is localization in the context of software development?
What factors are affected by using CGLib when dynamically creating proxy objects?
Can you explain the mechanism of pessimistic resource locking in database management systems?
Can you explain the concept of contract testing and its role in microservices integration?
Can an enumerable type implement an interface in a programming language?
How to call a static method of an interface?
What are access modifiers in Java and what are they?
How to implement a function call for elements inside a collection that does not allow modifications
Where exactly in memory is the reference located if the variable is a reference type?
On which platform was your last project built?
What is the role of stereotype annotations in the Spring framework and why are they used?
Were REST API principles applied in your last project?
Explain the working principle and purpose of the Decorator design pattern.
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; }
How can you temporarily disable the execution of tests during a Maven project build?
Explain how memory allocation and management occur in the JVM in the event of an OutOfMemoryError.