public class test {
public static void recursion(){
System.out.println("Recurion Test");
System.out.println(3);
System.out.println(2);
System.out.println(1);
recursion();
}
public static void main(String[] args){
recursion();
}
}

정의에 따라 작성된 코드는 위 사진과 같이 "Recursion Test"부터 3,2,1 까지 끊임없이 실행될 것이다. 이처럼 함수 내에서 자신이 호출되는 함수를 재귀 함수라 한다.
재귀 함수를 사용하기 위해서는 문제 축소와 종료 시점의 조건이 있어야 하는데 이는 문제를 축소하며 자신을 부르는 재귀의 특성과 종료 시점이 없다면 끝나지 않는 소위 무한루프를 돌 수 있다는 특징이 있기 때문이다.