Constructors do not have to explicitly initialize every attribute. As comments above indicate, default values will be used. Choosing what to do in constructors is a design choice.
You can force all attributes to have good initial values by making them arguments of the constructor(s). This has the advantage that you cannot create a "bad" object. It has the disadvantage that constructors need arguments for every attribute, which makes it difficult to add new attributes.
Your constructor can accept the Java default for attributes that are not explicitly given, or your constructor can set the attribute to your own default value.
You can also have multiple constructors with different parameters.
In some situations you must include a no-argument constructor. This is true when using certain frameworks that expect your class to behave like Java-beans. If that means nothing, don't worry about it for now.
So you could define your class as shown below. Obviously, you will want to define more methods, like getters and setters, but these are not shown for simplicity.
public class A
{
private int n;
private String name;
public A ()
{
n = 42;
name = "na";
}
public A (int n)
{
this.n = n;
// name will be null
}
public A (int n, String name)
{
this.n = n;
this.name = name;
}
}