Думаю это потому что процесс повторяется бесконечно private void createNewApple(){ int res1 = getRandomNumber(WIDTH); int res2 = getRandomNumber(HEIGHT); apple = new Apple(res1,res2); do{ apple=new Apple(res1,res2); this.apple=apple; }while(snake.checkCollision(apple)==true); }