Почему не закрывается вход и происходит ли утечка ресурсов Java?
Необходимо закрыть сканнер, когда вы закончили считывание. 
Согласно современному подходу (с JDK 7) следует обернуть в try...catch с автозакрытием ресурсов:String name;
String surName;
int yearBorn;
int yearNow;
try (Scanner input = new Scanner(System.in)) { // input автоматически закроется
    System.out.print("Your name:");
    name = input.nextLine();
    System.out.print("Your middle name:");
    surName = input.nextLine();
    System.out.print("What is the year now?");
    yearNow = input.nextInt();
    System.out.print("What year were you born?");
    yearBorn = input.nextInt();
    System.out.print("Hello, "+name+" "+surName+" ");
    System.out.print("Your age: "+(yearNow-yearBorn)+"");
} catch(Exception e) {
    //Обработка исключения, если возникло.
    e.printStackTrace();
}
Или устаревший вариант с ручным закрытием:Scanner input = new Scanner(System.in);
try {
  ...
} catch(Exception e) {
   e.printStackTrace();
} finally {
   input.close(); // Закрываем
}
Алексей Т 
... современному подходу (с JDK 7) .....  устаревший вариант 
тысяча спасибо за классификацию -  у вас есть ссылка где сказано что устарело и вообще о lagacях  ?