Simple factorial example to handle TailCall Optimization with java 5 and java 8!