14 Често постављана питања и одговори на Јава интервјуу [2022]

Припремате се за интервју за посао програмера Јаве из ваших снова? Ево збирке питања и одговора који вам могу помоћи да заблистате током интервјуа.

Још далеке 1992. године, Џејмс Гослинг је створио Јаву, програмски језик високог нивоа заснован на принципима објектно-оријентисаног програмирања. Данас је Јава један од најчешће коришћених и најпопуларнијих програмских језика на свету. Многи почетници и искусни програмери се одлучују за Јаву као перспективну опцију за своју каријеру.

Јава се фокусира на концепте попут класа, наслеђивања, ЈСОН-а, итератора, набрајања, променљивих променљивих, транзијената, хибернације, ХТТП тунелирања и апстрактних класа. Њена синтакса је инспирисана Ц++ и Ц програмским језицима. Међутим, кључно је познавати најважнија питања која анкетари могу поставити током интервјуа.

Да бисмо вам помогли у припреми, саставили смо нека од кључних питања и одговора која се могу појавити на интервјуу за посао Јава програмера.

Да ли се Јава може сматрати чистим објектно-оријентисаним језиком? Објасните.

Не, Јава се не може сматрати чистим објектно-оријентисаним језиком. Разлог за то је што подржава примитивне типове података попут `short`, `byte`, `double`, `float`, `long`, `char` и `boolean`, који нису објекти. Ипак, Јава у великој мери испуњава већину принципа објектно-оријентисаног програмирања.

Зашто је Јава позната као језик независан од платформе?

Један од кључних разлога популарности Јаве је њена независност од специфичних софтверских и хардверских платформи. Ово се постиже захваљујући компајлеру и окружењу за извршавање (ЈРЕ). Јава компајлер претвара изворни код у бајт код, који је независан од платформе. Захваљујући томе, исти код може радити на различитим оперативним системима, што га чини изузетно прилагодљивим.

Објасните основне разлике између ЈДК, ЈРЕ и ЈВМ.

Јава Девелопмент Кит (ЈДК) Јава Рунтиме Енвиронмент (ЈРЕ) Јава виртуелна машина (ЈВМ)
Функција Алат за развој, компајлирање и паковање Јава програма. Обезбеђује окружење за извршавање Јава бајт кода. Апстрактна машина која омогућава извршавање Јава бајт кода.
Садржи Развојне алате и ЈРЕ. Неколико датотека и библиотека. Имплементацију, спецификацију и инстанце времена извршавања.
Имплементација Приступачна и може бити физичка. Имплементира Јава платформе стандардног, микро и корпоративног издања.
Задаци Извршава бајт код. Извршава, верификује и учитава код.

Какви су спецификатори приступа у Јава класама?

Спецификатор приступа је кључна реч која се користи пре имена класе, поља или методе и одређује опсег приступа. Јава подржава неколико спецификатора:

  • `protected` – Омогућава приступ пољима или методама из исте класе, истог пакета (подкласе) али не из других класа.
  • `private` – Омогућава приступ пољима или методама само из исте класе.
  • `public` – Омогућава приступ методи, класи или пољу из било ког дела кода.
  • `default` (подразумевани) – Омогућава приступ класи, пољу или методи из истог пакета, али не из матичног пакета или споља.

Шта су локалне променљиве и променљиве инстанце?

Локалне променљиве – Ове променљиве су видљиве само унутар конструктора, функције или блока у којем су дефинисане. Њихов опсег је ограничен на блок у коме су декларисане. Други методи у класи немају приступ или знање о локалним променљивим декларисаним унутар неког другог метода.

Променљиве инстанце – Овим променљивим може приступити сваки метод у класи. Оне представљају својства објекта. Измене ових променљивих утичу само на тренутну инстанцу, без утицаја на друге инстанце исте класе.

Шта је ЈИТ компајлер?

ЈИТ (Јуст Ин Тиме) компајлер побољшава перформансе апликација које су компајлирале бајт код, смањујући време извршавања. Он преводи код из ЈВМ-а у машински код, који је извршив на процесору.

Објасните синглетон класу у једној реченици.

Синглетон класа је класа која дозвољава само једну инстанцу или објекат у току извршавања програма.

Шта је клонирање објеката?

Клонирање објекта значи креирање копије постојећег Јава објекта. Ово програмерима олакшава рад са копијама објеката. Могуће је клонирати објекат помоћу методе `clone()` уз имплементирање интерфејса `java.lang.Cloneable`.

Објасните конструкторе.

Конструктори су посебни блокови кода који се користе за иницијализацију објекта. Имају исто име као и класа и аутоматски се позивају приликом креирања објекта. Немају повратан тип. Постоје две врсте конструктора:

  • Параметризовани конструктор – Конструктор који прима аргументе и користи те вредности за иницијализацију променљивих инстанце.
  • Подразумевани конструктор – Конструктор који иницијализује променљиве инстанце са подразумеваним вредностима. Не прима никакве аргументе и аутоматски се креира уколико није дефинисан ниједан други конструктор.

Која је разлика између `==` и `equals()` у Јави?

Оператор `==` (једнакост) је бинарни оператор који упоређује објекте и примитивне типове података. Он проверава да ли две променљиве показују на исту меморијску локацију или имају исту вредност. Метод `equals()` дефинисан у класи `Object` је намењен поређењу садржаја два објекта. Он се може преписати у другим класама како би се дефинисало шта значи поређење за конкретну класу. Класа `Objects` дефинише стандардну имплементацију `equals()` која проверава једнакост објеката.

Разликујте `TreeSet` и `HashSet`.

`TreeSet` `HashSet`
Редослед Чува елементе у сортираном редоследу. Не чува елементе у сортираном редоследу.
Хетерогени објекти Дозвољава хетерогене објекте. Не дозвољава хетерогене објекте.
Имплементација Имплементира `SortedSet` интерфејс користећи стабло за складиштење података. Имплементира се користећи хеш табелу.

Објасните иницијализацију помоћу дуплих заграда.

У Јави, иницијализација помоћу дуплих заграда подразумева комбиновање два процеса у једном кораку. Прве заграде се користе за креирање анонимне унутрашње класе, а друге за креирање блока за иницијализацију. Кључна реч `this` се користи да би унутрашња класа могла да приступи члановима спољашње класе, чиме се омогућава иницијализација и креирање објекта у једној изјави.

Дефинишите Јава String pool.

Јава Стринг pool је специјална област у меморији гомиле која служи за складиштење String објеката. Када се креира нови String објекат, Java виртуелна машина прво проверава да ли такав објекат већ постоји у string pool-у. Ако постоји, враћа се референца на постојећи објекат. У супротном, креира се нови објекат у pool-у и враћа се референца на њега.

Шта представља класа колекција у Јави?

Класа колекција представља оквир који олакшава манипулацију и сортирање групе објеката. Пружа разне методе и интерфејсе за извршавање операција попут брисања, претраживања, манипулисања, сортирања, уметања и других. Укључује широк спектар оквира, укључујући методе, класе и интерфејсе.

Завршне речи

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

Да бисте унапредили своје знање Јаве, размислите о упису на један од многих доступних онлајн курсева.