Рецоммендед, 2021

Избор Уредника

Разлика између Финал, Финал и Финализе у Јави

Речи "коначно, коначно и финализујуће" леже у контексту Јаве. Свако од њих има другачије функционисање. Основна разлика између коначног, коначног и финализираног је да је коначни модификатор приступа, коначно је блок и финализирати је метода класа објекта. Постоје неке друге разлике између коначног, коначног и финализираног, о чему се говори у табели поређења.

Цомпарисон Цхарт

Основа за поређењеКоначниКоначноФинализе
БасицФинал је "Кеиворд" и "модификатор приступа" у Јави.Коначно је "блок" у Јави.Финализовати је "метода" у Јави.
ПримјењивоФинал је кључна ријеч која се примјењује на класе, варијабле и методе.На крају је блок који је увек повезан са блоцк и три и цатцх.финализе () је метода применљива на објекте.
Рад(1) Коначна варијабла постаје константна и не може се прерасподијелити.
(2) Коначна метода не може бити надјачана од стране класе подређене.
(3) Завршна класа се не може продужити.
Блок "коначно", очисти ресурсе који се користе у блоку "покушај".Метод Финализира врши чишћење активности везаних за објекат прије његовог уништења.
ИзвршењеЗавршни метод се извршава по његовом позиву.Блок "Коначно" извршава се одмах након извршења "три-цатцх" блока.метода финализе () извршава се непосредно пре уништења објекта.

Дефиниција финала

“Финал” је кључна реч у Јави. То је модификатор приступа. Кључна реч "коначна" је применљива на класе, методе и променљиве. Погледајмо како то функционира са сваким од њих.

Финал Вариабле

  • Када се примењује коначна кључна реч на променљиву, она се не може даље модификовати.
  • Коначна варијабла мора бити иницијализована када је декларисана.
  • У заједничкој конвенцији кодирања, коначне варијабле се декларишу у УППЕРЦАСЕ.
  • Коначна варијабла не заузима меморију на бази инстанце.
 финал инт ФИЛЕ_ОПЕН = 2; 

Финал Метходс

  • Када је метода у класи декларисана као коначна, она се не може надјачати подкласом.
  • Мале методе које су проглашене коначним могу бити направљене "инлине" од стране компајлера што ће смањити оптерећење функције позива и повећати побољшања перформанси.
  • Позив надјачаних метода, решава се динамички, али када је метода декларисана као коначна, не може се поништити. Дакле, позивање функције се може ријешити за вријеме компајлирања.
 цласс А {финал воид метх () {Систем.оут.принтлн ("Ово је коначна метода."); }} класа Б проширује {воид метх () {// Цлас Б не може наследити метод класе А. Систем.оут.принтлн ("Не преписује"); }} 

Финал Цласс

  • Када је класа декларисана као коначна, онда је не може наследити ниједна подкласа.
  • Проглашавање класе као коначне аутоматски ће прогласити све њене методе коначним.
  • Не можете да прогласите класу “апстрактном” и “коначном”.
 финална класа А {// ...} класа Б проширује А {// Класа Б не може наследити класу А // ...} 

Дефиниција на крају

  • У Јави "коначно" је блок који је увек повезан са три / цатцх блоком.
  • Блок "коначно" се извршава након блока три / цатцх и пре кода који следи три / цатцх блок.
  • Блок "коначно" ће извршити да ли је изузетак избачен или не.
  • Када је избачен изузетак, а ниједан блок за хватање не одговара изузетку чак и тада, извршава се блок "коначно".
  • Када се метод врати позиваоцу из пробног / цатцх блока преко унцаугхт изузетка или експлицитног ретурн израза, блок "коначно" се извршава непосредно пре него што се метод врати позиваоцу.
  • Блок "коначно" се користи за чишћење ресурса или ослобађање меморије која се користи у блоку "покушај".
  • Блок "коначно" је опционалан, али је добра пракса да се напокон напише блок након пробног / цатцх блока.
 цласс ФиналлиЕкампле {// Ова метода баца изузетак из методе. статиц воид процА () {три {Систем.оут.принтлн ("унутар процА"); бацање новог РунтимеЕкцептион ("демо"); } коначно {Систем.оут.принтлн ("процА'с финалли"); }} // Повратак из пробног блока. статиц воид процБ () {покушај {Систем.оут.принтлн ("унутар процБ"); ретурн; } коначно {Систем.оут.принтлн ("процБ'с финалли"); }} // Извршите пробни блок нормално. статиц воид процЦ () {три {Систем.оут.принтлн ("унутар процЦ"); } коначно {Систем.оут.принтлн ("процЦ'с финалли"); }} публиц статиц воид маин (Стринг аргс []) {три {процА (); } цатцх (Екцептион е) {Систем.оут.принтлн ("Екцептион цаугхт"); } процБ (); процЦ (); }} // излаз унутар процА процА је коначно Екцептион ухваћен унутар процБ процБ је коначно унутар процЦ процЦ коначно 

Дефиниција финализације

  • Финализирање је метода у класи објекта.
  • Објект може садржавати неке не-јава ресурсе као што је филе хандле; онда мора бити ослобођен пре него што буде уништен.
  • Овај метод се позива од стране сакупљача смећа пре него што потпуно уништи објекат.
  • Овај метод обавља активности чишћења објекта пре него што се уништи.

Општи облик методе финализе () је као што следи.

 протецтед воид финализе () {// овде финализира код} 

Метода финализације је декларисана као заштићена тако да јој се не може приступити изван класе.

Овај метод се увек позива пре сакупљања смећа.

Кључне разлике између финала, финала и финализације

  1. Кључна реч финал је модификатор приступа, коначно је блок и финализује се методом.
  2. Кључна ријеч финал је примјењива на класе, варијабле и методе класа, коначно је блок повезан с три цатцх блоком који се користи за руковање изнимкама, финализирање је метода која ради само на објектима.
  3. Варијабла једном декларисана као финал постаје константна и не може се поново доделити, метода декларисана као коначна не може бити поништена, а класа једном декларисана као коначна никада не може бити наслеђена. Блок за коначно се користи за чишћење ресурса које користи пробни и ухватни блок. Метода финализације се користи за чишћење ресурса које користи објекат пре него што је објекат уништен.

Закључак:

Коначни, коначно и финализовани има различит ефекат када се примени на методу.

Top