Что делают-XX:-PrintGC и флаги XX:-PrintGCDetails?

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

Создание TDescendant.MyMethod создало бы потенциальный беспорядок для TDescendants в добавлении другого метода с тем же именем, о котором компилятор предупреждает Вас.
Повторно представляют, снимает неоднозначность этого и говорит компилятору, что Вы знаете который использовать.
ADescendant.MyMethod вызовы TDescendant один, (ADescendant as TAncestor).MyMethod вызовы TAncestor один. Всегда! Никакой confusion†¦. Счастливый компилятор!

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

  1. TDescendant. MyMethod является виртуальным:..., но Вы не можете или don’t хотеть использовать связь.
    • Вы не можете, потому что сигнатура метода отличается. У Вас нет никакого другого выбора, поскольку переопределение невозможно в этом случае с типом возврата или параметрами не точно то же.
    • Вы хотите перезапустить дерево наследования от этого класса.
  2. TDescendant. MyMethod не является виртуальным: Вы превращаете MyMethod в статический на уровне TDescendant и предотвращаете дальнейшее переопределение. Все классы, наследовавшиеся TDescendant, будут использовать реализацию TDescendant.
13
задан ripper234 29 November 2009 в 12:29
поделиться

2 ответа

Установка этого флага записывает все сборки мусора, созданные JVM, в файл журнала (или стандартный вывод, но тогда это менее полезно), и их можно проанализировать с помощью таких инструментов, как упомянутые здесь . Используя эту информацию, вы можете точно настроить конфигурацию сборки мусора.

7
ответ дан 2 December 2019 в 00:03
поделиться

Вместо Sun используйте -Xloggc: gc.log для входа в файл, -verbose: gc также является обычным переключателем для этого .

Также убедитесь, что -XX: + PrintGCDetails и -XX: + PrintGCTimeStamps (обратите внимание на знак плюс +). Переключатель отметки времени избыточен, но его можно использовать.

9
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

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