Question: I have read the documentation, but some says it creates two objects, some says it creates one object only.

In interviews these things are asked frequently, I don't know what to say and explain how I got the answer.

How many `String` objects will be created when we write only this statement?

```
public class Test123 {
    String st = new String();
}

```

Answer: 
Zero. `st` will only be assigned to when an instance of `Test123` is created, and nothing ever does that.
`new` operation only creates **one object**. 

But it's parameter is a `String`, which already represents an `object`. So any time you use a `String` it is implicitly create an `object`.