Question: If I inspect on the little bird icon on twitter.com I see that its css has `content: "/f179"`. Is this for twitter's icon? Is this for a special font with lots of special characters including twitter's icon?

Answer: 
Serialization and the `new` operator are completely different things, though they both result in a reference to a newly allocated object.

You can find detailed information about the `new` operator in chapter *15.9.4 Run-Time Evaluation of Class Instance Creation Expressions* of the [Java Language Specification](https://docs.oracle.com/javase/specs/jls/se8/jls8.pdf).

> 
> At run time, evaluation of a class instance creation expression is as follows.  
> 
>  [...]  
> 
> **Next, space is allocated for the new class instance.**  
> 
>  [...]
>  The new object contains new instances of all the fields declared in the specified
>  class type and all its superclasses.  
> 
>  [...]
>  Next, the actual arguments to the constructor are evaluated, left-to-right. [...]  
> 
> **Next, the selected constructor of the specified class type is invoked.** This results in
>  invoking at least one constructor for each superclass of the class type.  
> 
>  The value of a class instance creation expression is a **reference to the newly created
>  object** of the specified class. Every time the expression is evaluated, **a fresh object
>  is created.**
> 
> 
> 

Editing mine  

So long story short, `new` allocates space for a new object (specifically space for its fields), initialize its fields with their default values and invokes the chosen constructor.

---

[Java Serialization](https://docs.oracle.com/javase/7/docs/platform/serialization/spec/serialTOC.html) is another matter entirely. 

> 
> The ability to store and retrieve JavaTM objects is essential to building all but the most transient applications. **The key to storing and retrieving objects in a serialized form is representing the state of objects sufficient to reconstruct the object(s).**
> Emphasis mine
> 
> 
> 

Which means that serialization was designed to allow the programmer to save objects states into a persistent medium (abstracted into *stream* within Java) and [read them back](https://docs.oracle.com/javase/7/docs/platform/serialization/spec/input.html#2971). 

As such, deserializiation does not invoke constructors since the object state is restored automatically by reading it out the stream. You can override the default behavior though.

> 
> Reading an object from the ObjectInputStream is analogous to creating a new object. Just as a new object's constructors are invoked in the order from the superclass to the subclass, an object being read from a stream is deserialized from superclass to subclass. **The readObject or readObjectNoData method is called instead of the constructor** for each Serializable subclass during deserialization.
> 
> 
> 

Emphasis mine

---

Said that, I would like to stress out how using `new` and serialization are totally unrelated things from a conceptual point of view.  

In the first case you are creating your own new object, in the latter you are reading a previously saved object (possibly by someone else). 

Even though they can be thought as similar for their final result, you should have, in your mind, a really clear distinction between the twos.
Disagree with `deserializiation does not invoke constructors`:

In fact, *Deserializiation* just does not invoke the constructors defined in the class body. As depends on `java.reflect`, it of course need to invoke constructors to produce a `Object` from a `Class`. It just invoke the custom constructors created by **`sun.reflect.ReflectionFactory.newConstructorForSerialization(Class<?> var1, Constructor var2)`**.