Где хранятся настройки Java в Mac OS X?

Ну, с одной стороны, неясно, ожидаете ли вы, что это порядок вставки или key-order . Например, что бы вы ожидали получить результат, если бы вы написали:

var test = new Dictionary<int, string>();
test.Add(3, "three");
test.Add(2, "two");
test.Add(1, "one");
test.Add(0, "zero");

Console.WriteLine(test.ElementAt(0).Value);

Ожидаете ли вы «три» или «ноль»?

Как это происходит, я think , текущая реализация сохраняет порядок вставки, пока вы никогда ничего не удаляете, но вы не должны полагаться на это . Это детализация реализации, и это может измениться в будущем.

Исключения также влияют на это. Например, что бы вы ожидали от результата этой программы?

using System;
using System.Collections.Generic;

class Test
{ 
    static void Main() 
    {
        var test = new Dictionary<int, string>();
        test.Add(3, "three");
        test.Add(2, "two");
        test.Add(1, "one");
        test.Add(0, "zero");

        test.Remove(2);
        test.Add(5, "five");

        foreach (var pair in test)
        {
            Console.WriteLine(pair.Key);
        }
    }     
}

Это на самом деле (на моей коробке) 3, 5, 1, 0. Новая запись для 5 использовала освобожденную запись ранее использовавшийся 2. Это не гарантируется, хотя.

Rehashing (когда базовое хранилище словаря нужно развернуть) может повлиять на вещи ... всевозможные вещи.

Просто не рассматривайте его как упорядоченную коллекцию. Он не предназначен для этого. Даже если это происходит сейчас, вы полагаетесь на недокументированное поведение, которое противоречит назначению класса.

43
задан avernet 24 March 2009 в 01:30
поделиться

2 ответа

От соединения разработчика Apple:

Предпочтительные файлы, сгенерированные Предпочтениями API, называют com.apple.java.util.prefs. Предпочтительный файл пользователя хранится в их корневом каталоге (~/Library/Preferences/). Установки системы хранятся в /Library/Preferences/ и только сохраняются к диску, если пользователь является администратором.

48
ответ дан 26 November 2019 в 22:59
поделиться

Также обратите внимание, что если предпочтение достаточно вложено, оно не будет находиться непосредственно в com.apple.java.util.prefs , а скорее в собственном файле . Например, если у вас есть узел / a / b / c , пары ключ / значение для этого узла будут храниться в abcplist .

Файл будет в ~ / Library / Preferences / или / Library / Preferences / , как для файла com.apple.java.util.prefs .

19
ответ дан 26 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: