Является ли символ в Java 1 байтом или 2 байта?

Я думал, что символы в java - это 16 бит, как предлагается в java doc . случай для строк? У меня есть код, который сохраняет объект в файл:

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

По сути, я пытался сохранить строку «abcd» в файле «output» , когда я открыл вывод с помощью редактора и удалил не строковую часть, то осталась только строка «abcd», всего 4 байта. Кто-нибудь знает почему? Сохраняет ли Java автоматически пространство, используя ASCII вместо UNICODE для строк, которые могут поддерживаться ASCII? Спасибо

8
задан Joachim Sauer 13 May 2011 в 07:32
поделиться