Question: I think allowing recursion can be very handy sometimes, not because I can code in "recursion" but rather because I can save some code space for some cases like below

```
public class SomeClass
{
   private int a;

   SomeClass(int a)
   {
      this.a = a;
   }

   SomeClass()
   {
      SomeClass(3);
   }
}

```

This is especially effective when one constructor tries to take advantage of another that contains big chunks of code.

However, Java clearly doesn't support this feature, and I believe it doesn't for a very good reason. Could anyone care to explain why though?

Answer: 
You can invoke another constructor within a constructor, using the `this` keyword: 

```
public class SomeClass
{
   private int a;

   SomeClass(int a)
   {
      this.a = a;
   }

   SomeClass()
   {
      this(3);
   }
}

```

From the Java Language Specification, section [8.8.7.1 Explicit Constructor Invocations](http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8.7.1): 

> 
> Alternate constructor invocations begin with the keyword this
>  (possibly prefaced with explicit type arguments). They are used to
>  invoke an alternate constructor of the same class.
> 
> 
> 

I don't see what does that have to do with [recursion](http://en.wikipedia.org/wiki/Recursion), though.
it is not called as recursive. Java has functionality that you can have overloaded constructor in your class....