Problem Solving Techniques In Java