Observer Pattern Explained: From School Bell to Order Events 🎯 Why This Pattern Matters In interviews, design patterns often pop up, and the Observer Pattern is one of the most asked. Instead of memorizing theory, let’s connect it to a story you’ll never forget — and then translate it into practical Java code you can actually show in an interview 📖 Story Analogy — The School Bell Think back to school days: At 12:30 PM, the bell rings. Students run to lunch. Teachers close books. The peon opens gates. 👉 The bell (Subject) doesn’t know or care who reacts. Each Observer does its own thing when notified. That’s the Observer Pattern: one subject, many independent observers reacting differently. 🧑💻 Practical Java Example — Order Placed Event Let’s switch from school to a real project example: e-commerce order placement. When an order is placed: Send confirmation email Write an audit log Update metrics Instead of hard-coding all in the service, we publish an event. Observers (list...
To find the second-highest salary from a list of employees using Java 8 streams, you can follow these steps: Create a list of employees with their salaries. Use Java 8 streams to sort the employees by salary in descending order. Skip the first element (which is the employee with the highest salary). Get the first element of the remaining stream (which is the employee with the second-highest salary). Example code: java import  java.util.ArrayList; import  java.util.List;  class  Employee  {     private  String name;     private  double  salary;      public  Employee (String name, double  salary)  {         this .name = name;         this .salary = salary;     }      public  double  getSalary ()  {         return  salary;     } }  public  class  SecondHighestSalary  {     public  static  void  main (String[] args)  {         List<Employee> employees = new  ArrayList <>();         employees.add( new  Employee ( "John" , 60000.0 ));         employees.add( new  Employe...