Serializableインターフェースを実装するクラスはWebアプリの場合はサーバー側により直列化されますが、それ以外の場合には独自で直列化しないといけない

import java.io.Serializable;

public class Sample implements Serializable {

    private String name;

    //以下アクセサメソッド
}
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;

public class Client {
    public static void main(String[] args) throws Exception {
        //オブジェクトを直列化
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("saple"));
        out.writeObject(new Sample());
        out.flush();
        out.close();

        //直列化されたオブジェクトを復元
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("sample"));
        Sample smp = (Sample)in.readObject();
        in.close();
    }
}

備考

オブジェクト状態をファイルにダンプしないで単純にbyte[]で取得したい場合には以下のようにjava.io.ByteArrayOutputStreamを使用する

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(oos);
oos.writeObject(new Object());
oos.close();

byte[] b = baos.toByteArray();

もちろん復元する時はjava.io.ByteArrayInputStreamを使用する