how java works by deepak