I came up with an example demonstrating the one-to-one relationship between Employee class and EmployeeDetail class:
public class Employee {
    private Long empId;
    private String name;
    private EmployeeDetail employeeDetail;
    //gettter and setter
}
public class EmployeeDetail{
    private Long empDetailsId;
    private String empFullName;
    private String empMailId;
    private Employee employee;
    //getter and setter..
}
In the Employee class, there's an EmployeeDetail field, and in EmployeeDetail class, there's an Employee field. I understand that as each Employee has its own EmployeeDetail and each EmployeeDetail belongs to only one Employee, but there're 2 points that confuse me:
What if two or more Employees have the same EmployeeDetail (and vice versa)? Is there any way to handle this in Java code or I can only do that in a relational database management system?
In SQL, foreign keys (IDs) represent the relationship between two tables, but in the above example, they use class objects instead. Please help me explain that