What is the is the difference between object and data link for while creating materials?
Borrowed from iKIsR from different question:


  Linking a material to Data (to mesh specific data) is ideal when you want a mesh to always have the same material, while linking a material to an object is when you want to have different materials on objects that share the same mesh.
  
  Short explanation: If connected to the object, you can have several instances of the same Data using different materials. If linked to mesh data, you can't.