What are the main principles of OOPs in Java? What are the differences between ArrayList, LinkedList, and HashMap? What is the difference between HashMap and ConcurrentHashMap? Explain how equals() and hashCode() work together. How do you handle exceptions in REST APIs (using @ControllerAdvice)? How to enable CORS in Spring Boot? What is HATEOAS in REST APIs?