title: What differences are between ObjectInput/OutputStream and DataInput/OutputStream when applying to instances of primitive types?
body: <p>It seems to me that both <code>ObjectInputStream</code>/<code>ObjectOutputStream</code>, and <code>DataInputStream</code>/<code>DataOutputStream</code> can apply to instances of primitive types.
  What differences between <code>ObjectInputStream</code>/<code>ObjectOutputStream</code>, and <code>DataInputStream</code>/<code>DataOutputStream</code> when they both apply to instances of primitive types?</p>
  
  <p>Can they both (de)serialize instances of primitive types in the same way?</p>