If we remember the pass by value mechanism of java we can understand that the recursion consumes more memory as for each call you pass a copy of the object reference address or value of some primitive type. So as mach parameters you pass for each recursive call as mach memory you will consume for each call, on the other hand loops are light to use.
But of course we know that there are "divide and conquer" algorithms for example Mergesort or iterations on tree's which consume less steps with help of recursion for giving a result. So in these cases i think it is better to use recursion.