Salvando em java binário / serialização

Eu preciso, citação em citação,

1. Salve as contas em um arquivo binário (serializado). 2. Carregue (recrie) contas de um arquivo binário (serializado

Em primeiro lugar, eu estava procurando exemplos do que exatamente é isso e estou perdido, nos mesmos cenários as pessoas mencionam xml, na minha cabeça acho que significa 01010011000 (binário) e, quando olho para outro código, parece um arquivo normal de texto salvo.

O que exatamente ele quer dizer e alguém pode postar um exemplo ou me fornecer um site que esclareça melhor isso? Depois de ver o que realmente preciso fazer, posso implementá-lo facilmente, estou confuso sobre o que exatamente está sendo salvo (em termos de dados) e com

* Eu já tenho uma opção para salvar via arquivo de texto (.txt) se eu puder usar apenas parte desse código para esta parte binária.

Obrigado

Aqui está o que eu tenho agora, acho que ainda não está funcionando.

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;
    }
}

questionAnswers(4)

yourAnswerToTheQuestion