Финал часто используется со статикой для объявления констант, и вы также увидите, насколько окончательно улучшает производительность приложения.
В чем смысл окончательного ключевого слова?
Final - это зарезервированное ключевое слово в Java, которое может объявить переменные участника, методы, классы и локальные переменные. После того, как вы объявите ссылку как окончательную, вы не сможете изменить ссылку.
Что такое окончательные переменные?
Любая переменная -члена или локальная переменная (переменные в методах или кодовых блоках называются локальными переменными), которые объявляются как окончательная, называется конечной переменной. Окончательные переменные часто используются вместе со статическими ключевыми словами в качестве констант. Вот пример окончательной переменной:
Кода -копия выглядит следующим образом:
Общественный статический конечный строковый кредит = "кредит";
Кредит = новая строка ("кредит") // ошибка неверной компиляции
Окончательная переменная только для чтения.
Какой последний метод?
Финал может также объявить методы. Окончательное ключевое слово добавляется перед методом, что означает, что этот метод не может быть переписан методами подкласса. Если вы думаете, что функция метода достаточно полна и не должна быть изменена в подклассе, вы можете объявить этот метод окончательным. Окончательный метод быстрее, чем нефинальный метод, потому что он уже является статически связанным во время компиляции и не должен быть динамически связан во время выполнения. Вот пример окончательного метода:
Кода -копия выглядит следующим образом:
класс Personalloan {
public final String getName () {
вернуть "личный кредит";
}
}
Класс дешево продлевает Personalloan {
@Override
public final String getName () {
вернуть "дешевый личный кредит";
}
}
Какой последний класс?
Класс, который использует окончательный для изменения, называется окончательным классом. Окончательные классы обычно завершены функционально, и их нельзя унаследовать. В Java есть много классов, таких как String, Interger и другие классы обертки. Вот пример окончательного класса:
Кода -копия выглядит следующим образом:
финальный класс Personalloan {
}
Class Cheappersonalloan Extends Personalloan {// Ошибка компиляции: не может наследовать от окончательного класса
}
Вот некоторые из преимуществ использования окончательных ключевых слов
Окончательное ключевое слово улучшает производительность. И приложения JVM и Java кэшируют окончательные переменные.
Окончательные переменные могут быть безопасно разделены в многопоточных средах без необходимости дополнительных накладных расходов синхронизации.
Используя окончательное ключевое слово, JVM будет оптимизировать методы, переменные и классы.
Необычный класс
Для создания неизменного класса используйте окончательное ключевое слово. Необычный класс означает, что его объекты не могут быть изменены после их создания. Строка является представителем неизменных классов. Необываемые классы имеют много преимуществ, таких как их объекты, только для чтения и могут быть безопасно делиться в многопоточной среде без дополнительных накладных расходов синхронизации и т. Д.
Связанное чтение: почему строка неизменна и как написать неизменную класс.
Важные знания о финале
Окончательное ключевое слово можно использовать для переменных членов, локальных переменных, методов и классов.
Окончательные переменные члена должны быть инициализированы во время объявления или в конструкторе, в противном случае сообщается об ошибке компиляции.
Вы не можете снова назначить окончательную переменную.
Локальные переменные должны быть назначены значениями во время объявления.
Все переменные в анонимном классе должны быть окончательными переменными.
Последний метод не может быть переписан.
Последний класс не может быть унаследован.
Окончательное ключевое слово отличается от окончательного ключевого слова, которое используется для обработки исключений.
Окончательное ключевое слово легко путается с методом infintize (), который представляет собой метод, определяемый в классе объекта, и является методом, вызванным JVM перед сбором мусора.
Все переменные, объявленные на интерфейсе, сами по самим собой являются окончательными.
Окончательные и абстрактные ключевые слова обратно связаны, поэтому окончательный класс не может быть абстрактным.
Окончательный метод связан на стадии компиляции, которая называется статическим связыванием.
Окончательная конечная переменная, которая не инициализирует окончательную переменную при объявлении, называется пустой конечной переменной. Если вы этого не сделаете, компилятор сообщит об ошибке «Окончательная переменная (имя переменной) должна быть инициализирована».
Объявление классов, методов и переменных как окончательные, может улучшить производительность, так что JVM имеет возможность оценить, а затем оптимизировать.
Согласно конвенции о коде Java, окончательные переменные являются постоянными, и постоянные имена обычно заглавляются:
Частный окончательный счет int = 10;
Объявление окончательного для объектов сбора означает, что ссылка не может быть изменена, но вы можете добавить, удалить или изменить на него контент. например:
Частный окончательный список кредитов = new ArrayList ();
list.add ("Домашний кредит");
list.add ("Личный кредит");
кредиты = новый вектор (); // Недостаточно
Мы уже знаем, что такое окончательные переменные, окончательные методы и окончательные классы. Используйте окончательное, когда необходимо, чтобы написать быстрее и лучшего кода.