When I first learned Java, I did not realize that the classes were reference types. I thought they were values (like in C++). I found the coding examples baffling, until I finally realized they were reference types. I don't think there's a way around needing to understand the difference between a reference type and a value type.