Guardar en binario / serialización java

Tengo que, cita en cita,

1.Guarde cuentas en un archivo binario (serializado). 2.Cargue (vuelva a crear) cuentas desde un archivo binario (serializado).

Así que, en primer lugar, estaba buscando ejemplos de qué es exactamente eso y estoy perdido, en los mismos escenarios la gente menciona xml, en mi cabeza creo que significa 01010011000 (binario), y cuando miro otro código parece un archivo de texto normal guardar.

¿Qué quiere decir exactamente? ¿Puede alguien publicar un ejemplo o darme un sitio que aclare esto mejor? Una vez que veo lo que realmente necesito hacer, puedo implementarlo fácilmente, solo estoy confundido sobre qué se está guardando exactamente (en cuanto a datos) y cómo.

* Ya tengo una opción para guardar mediante un archivo de texto (.txt) si solo puedo usar parte de ese código para esta parte binaria.

¡Gracias

Esto es lo que tengo ahora, todavía no funciona, creo.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SerializationMain implements Serializable {

    public static void saveSerialized(Object YourObject, String filePath) throws IOException {
        ObjectOutputStream outputStream = null;
        try {
            outputStream = new ObjectOutputStream(new FileOutputStream(filePath + ".dat"));
            outputStream.writeObject(YourObject);
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (outputStream != null) {
                    outputStream.flush();
                    outputStream.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }

    public static Object loadSerialized(String filePath, Object[][] data1) throws IOException {
        try {
            FileInputStream fileIn = new FileInputStream(filePath);
            ObjectInputStream in = new ObjectInputStream(fileIn);
            try {
                data1 = (Object[][]) in.readObject();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(SerializationMain.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        System.out.println(data1.length);
        return data1;
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta