Se crea un objeto
Object a = null;
Define una variable a que apunta a un objeto. Pero no hay objeto, apunta a null.
Object b = new Object();
Vale, esto sí que crea un objeto y asigna la referencia a la variable b
Object a = b; // [SIC] Como ya te han explicado, conflicto de identificador de variable con la primera línea. Asumiremos que la primera línea no está.
Define una variable a, y hace que esa variable a apunte a la misma referencia que la variable b. Pero ambas apuntan al mismo objeto.
En general, para crear un objeto usas new (por supuesto, si llamas a un método que te devuelve un objeto ese método puede hacer el new internamente y devolverte el objeto).