When I add an object to a List and change the object's property, that change will propagate to the object in the list, however when I set the object to null, I do not get a null pointer from the object in the list. Why is this?

```
public class Hworld {

    public static void main(String[]args) {

        List<Obj> list = new ArrayList<>();

        Hworld.Obj o = new Obj();

        list.add(o);

        for(Obj ob:list) {
            System.out.println(ob.b); // prints "base"
        }

        o.b="new";
        o=null;

        for(Obj ob:list) {
            System.out.println(ob.b); // prints "new"
        }

    }

    public static class Obj{

        String b = "base";

    }   
}

```