Here is the explination why testList still have a "null" at first node after these piece of code

 testList.add(obj1);//after this line of code, testList will have a "null" at first node
 
 obj1 = new MyClass();//after this line of code, testList still have a "null"
 //at first node...
 //What I want is that testList's first node will become a new 
 //MyClass object

**Step 1** 

 MyClass obj1 = null;

This line creates space for the MyClass reference variable (the bit holder 
for a reference value), but doesn't create an actual Myclass object.

**Step 2** 


 List<MyClass> testList = new ArrayList<MyClass>();

A list is created **testList** which can hold objects of **MyClass** types

**Step 3**


 testList.add(obj1);//after this line of code, testList will have a "null" at first node

testList first node will now refer to an null But not an MyClass Object.

step 4

 obj1 = new MyClass();

Creates a new MyClass object on the heap and Assigns the newly created MyClass object to the reference variable ob1.

So now how will the list gets updated it is still holding an null But not an MyClass Object.

So now if you want to make testList's first node to become a new **MyClass** object

The write this after `obj1 = new MyClass();`

 testList.set(0, obj1);