Há um caractere de 1 byte ou 2 bytes em Jav

Eu pensei que caracteres em java fossem 16 bits, como sugerido emjava doc. Não é o caso de strings? Eu tenho um código que armazena um objeto em um arquivo:

public static void storeNormalObj(File outFile, Object obj) {
    FileOutputStream fos = null;
    ObjectOutputStream oos = null;
    try {
        fos = new FileOutputStream(outFile);
        oos = new ObjectOutputStream(fos);
        oos.writeObject(obj);
        oos.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            oos.close();
            try {
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Basicamente, tentei armazenar uma string"abcd" no arquivo"output", quando eu abrioutput com um editor e excluído a parte de nenhuma string, o que resta é apenas a string "abcd", com 4 bytes no total. Alguém sabe o porquê? O java economiza espaço automaticamente usando ASCII em vez de UNICODE for Strings que podem ser suportados por ASCII? Obrigad

questionAnswers(5)

yourAnswerToTheQuestion