Investigating the Perception and Effects of Misunderstandings in Java Code