top 50 core java interview questions
Најчешће постављана питања и одговори на Јава интервјуе са примерима:
У овом водичу покрили смо готово 50+ важних основних питања о Јава интервјуима за свеже и искусне кандидате.
Овај пост о ЈАВА Интервју питањима припремљен је да вам помогне да разумете основне концепте Јава програмирања за потребе интервјуа. Овде су објашњени сви важни ЈАВА концепти са примерима за ваше лако разумевање.
Овај водич покрива ЈАВА теме попут основних Јава дефиниција, ООП концепата, спецификатора приступа, колекција, изузетака, нити, сериализације итд., Са примерима који ће вам омогућити да се савршено припремите суочити се са било којим ЈАВА интервјуом.
Најпопуларнија питања и одговори за Јава интервјуе
Доље је дат свеобухватан списак најважнијих и најчешће постављаних основних и напредних питања за интервјуе са Јава програмом са детаљним одговорима.
П # 1) Шта је ЈАВА?
Одговор: Јава је програмски језик високог нивоа и независан је од платформе.
Јава је колекција предмета. Развили су га Сун Мицросистемс. Постоји много апликација, веб локација и игара које су развијене помоћу Јаве.
П # 2) Које су карактеристике ЈАВА-е?
Одговор: Карактеристике Јава су следеће:
- ООП концепти
- Објектно оријентисан
- Наслеђивање
- Капсулација
- Полиморфизам
- Одвајање
- Независно од платформе: Појединачни програм ради на различитим платформама без икаквих модификација.
- Високих перформанси: ЈИТ (Јуст Ин Тиме цомпилер) омогућава високе перформансе у Јави. ЈИТ претвара бајт код у машински језик и тада ЈВМ започиње извршавање.
- Више навоја: Ток извршења познат је као нит. ЈВМ креира нит која се назива главна нит. Корисник може створити више нити проширивањем класе нити или применом интерфејса Руннабле.
П # 3) Како Јава омогућава високе перформансе?
Одговор: Јава користи Јуст Ин Тиме компајлер да би омогућио високе перформансе. Користи се за претварање упутстава у бајт кодове.
П # 4) Дајте име Јава ИДЕ-у?
Одговор: Ецлипсе и НетБеанс су ИДЕ-ови ЈАВА-е.
П # 5) Шта подразумевате под конструктором?
Одговор: Конструктор се може детаљно објаснити наведеним тачкама:
- Када се у програму креира нови објекат, позива се конструктор који одговара класи.
- Конструктор је метода која има исто име као и име класе.
- Ако корисник имплицитно не креира конструктор, креираће се подразумевани конструктор.
- Конструктор се може преоптеретити.
- Ако је корисник креирао конструктор са параметром, онда би требало да креира други конструктор експлицитно без параметра.
П # 6) Шта се подразумева под променљивом Лоцал и Инстанце?
Одговор:
Локалне променљиве су дефинисани у методи и обиму променљивих које постоје унутар саме методе.
Инстанца променљива је дефинисан унутар класе и изван методе, а опсег променљивих постоји у целој класи.
П # 7) Шта је разред?
Одговор: Сви Јава кодови су дефинисани у класи. Има променљиве и методе.
Променљиве су атрибути који дефинишу стање класе.
Методе су место на коме се мора извршити тачна пословна логика. Садржи скуп изјава (или) упутстава за задовољавање одређеног захтева.
Пример:
public class Addition{ //Class name declaration int a = 5; //Variable declaration int b= 5; public void add(){ //Method declaration int c = a+b; } }
П # 8) Шта је објекат?
Одговор: Примерак класе назива се објектом. Предмет има стање и понашање.
Кад год ЈВМ прочита кључну реч „нев ()“, створиће инстанцу те класе.
Пример:
public class Addition{ public static void main(String() args){ Addion add = new Addition();//Object creation } }
Горњи код креира објекат за класу Аддитион.
П # 9) Који су концепти ООП-а?
Одговор: ООП концепти укључују:
- Наслеђивање
- Капсулација
- Полиморфизам
- Одвајање
- Интерфејс
Предложено читање = >> Најпопуларнија ООП питања за интервјуе
П # 10) Шта је наслеђивање?
Одговор: Наслеђивање значи да се једна класа може проширити на другу класу. Тако да се кодови могу поново користити из једне класе у другу класу. Постојећа класа је позната као Супер класа, док је изведена класа позната као подкласа.
Пример:
Super class: public class Manupulation(){ } Sub class: public class Addition extends Manipulation(){ }
Наслеђивање је применљиво само на јавност и заштићене чланове. Приватни чланови се не могу наследити.
П # 11) Шта је капсулација?
Одговор: Сврха капсулације:
- Штити код од других.
- Одржавање кода.
Пример:
Декларишемо „а“ као целобројну променљиву и она не би требало да буде негативна.
public class Addition(){ int a=5; }
Ако неко промени тачну променљиву као „ а = -5 ' онда је лоше.
Да бисмо превазишли проблем, следимо кораке у наставку:
- Варијаблу можемо учинити приватном или заштићеном.
- Користите методе јавног приступа као што су сет и гет.
Тако да се горњи код може изменити као:
public class Addition(){ private int a = 5; //Here the variable is marked as private }
Доњи код приказује гетера и постављача.
При подешавању променљиве могу се обезбедити услови.
get A(){ } set A(int a){ if(a>0){// Here condition is applied ......... } }
За енкапсулацију, треба да учинимо све променљиве инстанце приватним и да креирамо сеттер и геттер за те променљиве. Што ће заузврат приморати друге да позивају постављаче, а не да директно приступају подацима.
П # 12) Шта је полиморфизам?
Одговор: Полиморфизам значи много облика.
Појединачни објект може се односити на супер-класу или подкласу, у зависности од референтног типа који се назива полиморфизам.
Пример:
Public class Manipulation(){ //Super class public void add(){ } } public class Addition extends Manipulation(){ // Sub class public void add(){ } public static void main(String args()){ Manipulation addition = new Addition();//Manipulation is reference type and Addition is reference type addition.add(); } }
Користећи референтни тип манипулације можемо назвати методу класе Додавање „адд ()“. Ова способност је позната као полиморфизам. Полиморфизам је применљив за надјачавајући а не за преоптерећење .
П # 13) Шта се подразумева под заменом метода?
Одговор: Замена методе се дешава ако метода под-класе задовољава следеће услове помоћу методе Супер-класе:
- Име методе требало би да буде исто
- Аргумент би требао бити исти
- Тип повратка такође треба да буде исти
Кључна предност надјачавања је у томе што поткласа може пружити неке специфичне информације о том типу подкласе у односу на суперкласу.
Пример:
public class Manipulation{ //Super class public void add(){ ……………… } } Public class Addition extends Manipulation(){ Public void add(){ ……….. } Public static void main(String args()){ Manipulation addition = new Addition(); //Polimorphism is applied addition.add(); // It calls the Sub class add() method } }
адд.адд () метода позива методу адд () у подкласи, а не надређену класу. Дакле, замењује метод Супер-класе и познат је као Метход Оверридинг.
П # 14) Шта се подразумева под преоптерећењем?
Одговор: Преоптерећење метода се дешава за различите класе или унутар исте класе.
За преоптерећење метода, метода под-класе треба да задовољи следеће услове помоћу метода Супер-класе (или) у истој класи:
- Исто име методе
- Различити типови аргумената
- Могу бити различити типови поврата
Пример:
public class Manipulation{ //Super class public void add(String name){ //String parameter ……………… } } Public class Addition extends Manipulation(){ Public void add(){//No Parameter ……….. } Public void add(int a){ //integer parameter } Public static void main(String args()){ Addition addition = new Addition(); addition.add(); } }
Овде метода адд () има различите параметре, јер је класа Аддитион преоптерећена у истој класи као и код супер-класе.
Белешка: Полиморфизам није применљив за преоптерећење метода.
П # 15) Шта се подразумева под интерфејсом?
Одговор: У јави се не може постићи више наследстава. Да би се превазишао овај проблем, уводи се концепт интерфејса.
Интерфејс је предложак који има само декларације метода, а не и имплементацију методе.
Пример:
Public abstract interface IManupulation{ //Interface declaration Public abstract void add();//method declaration public abstract void subtract(); }
- Све методе у интерфејсу су интерне јавна апстрактна празнина .
- Све променљиве у интерфејсу су интерне јавно статично финале то јест константе.
- Класе могу да примене интерфејс и да се не проширују.
- Класа која имплементира интерфејс треба да обезбеди имплементацију за све методе декларисане у интерфејсу.
public class Manupulation implements IManupulation{ //Manupulation class uses the interface Public void add(){ …………… } Public void subtract(){ ……………. } }
П # 16) Шта се подразумева под часом Сажетак?
Одговор: Класу Сажетак можемо створити помоћу кључне речи „Сажетак“ пре назива класе. Апстрактна класа може имати и „апстрактне“ методе и „неастрактне“ методе које су конкретна класа.
Апстрактна метода:
Метода која има само декларацију, а не и имплементацију назива се апстрактна метода и има кључну реч која се назива „апстрактно“. Изјаве се завршавају тачком и зарезом.
Пример:
public abstract class Manupulation{ public abstract void add();//Abstract method declaration Public void subtract(){ } }
- Апстрактна класа може имати и не апстрактну методу.
- Конкретна поткласа која проширује класу Сажетак треба да пружи примену апстрактних метода.
П # 17) Разлика између низа и списка низова.
Одговор: Разлика између низа и списка низова може се разумети из доње табеле:
Арраи | Низ листа |
---|---|
Величина треба да се наведе у тренутку декларације низа. Стринг () наме = нев Стринг (2) | Величина можда неће бити потребна. Динамички мења величину. АрраиЛист наме = нови АрраиЛист |
Да бисмо објект ставили у низ, треба да наведемо индекс. име (1) = „књига“ | Није потребан индекс. наме.адд („књига“) |
Низ није параметрисан типом | АрраиЛист у јави 5.0 су параметризовани. Нпр .: Ова угаона заграда је параметар типа који значи листу низа. |
П # 18) Разлика између Стринг, Стринг Буилдер и Стринг Буффер.
Одговор:
Низ: Низове променљиве чувају се у „константном спремишту низова“. Једном када референца на низ промијени стару вриједност која постоји у „константном спремишту низова“, она се не може избрисати.
Пример:
Назив низа = „књига“;
Стални низ стрингова
.
Ако се назив-вредност променио из „боок“ у „пен“.
Стални низ стрингова
Тада старија вредност остаје у константном спремишту низова.
Стринг бафер:
- Овде се вредности низа чувају у стеку. Ако се вредности промене, нова вредност замењује старију вредност.
- Међуспремник низа је синхронизиран што је сигурно.
- Перформансе су спорије од Стринг Буилдер-а.
Пример:
Стринг Буффер наме = ”боок”;
Једном када је вредност имена промењена у „оловка“, онда се „књига“ брише у хрпи.
Стринг Буилдер:
Ово је исто као и Стринг Буффер, осим Стринг Буилдер-а који није сигурно навојен и није синхронизован. Очигледно је да су перформансе брзе.
П # 19) Објасните детаље о јавном и приватном приступу.
Одговор: Методе и променљиве инстанце су познате као чланови.
Јавно:
Јавни чланови су видљиви у истом пакету као и спољни пакет који је намењен осталим пакетима.
Јавни чланови класе А видљиви су класи Б (исти пакет) као и класи Ц (различити пакети).
Приватни:
Приватни чланови су видљиви само у истој класи, а не и за остале класе у истом пакету, као и за класе у спољним пакетима.
Приватни чланови класе А видљиви су само у тој класи. Невидљив је за класу Б као и за класу Ц.
П # 20) Разлика између задатих и заштићених спецификатора приступа.
Одговор:
Уобичајено: Методе и променљиве декларисане у класи без икаквих спецификатора приступа називају се подразумеваним.
Подразумевани чланови класе А видљиви су осталим класама које су унутар пакета и невидљиви класама које су изван пакета.
Дакле, чланови класе А су видљиви класи Б, а невидљиви класи Ц.
Заштићено:
.
Протецтед је исто што и Дефаулт, али ако се класа проширује, онда је видљива чак и ако је изван пакета.
Чланови класе А видљиви су класи Б јер се налази у пакету. За класу Ц је невидљив, али ако класа Ц проширује класу А, чланови су видљиви за класу Ц чак и ако је изван пакета.
П # 21) Разлика између ХасхМап-а и ХасхТабле-а.
Одговор: Разлика између ХасхМап-а и ХасхТабле-а може се видети у наставку:
ХасхМап | ХасхТабле |
---|---|
Методе нису синхронизоване | Кључне методе су синхронизоване |
Није сигурност нити | Сигурност навоја |
Итератор се користи за понављање вредности | Пописивач се користи за понављање вредности |
Омогућава један нулл кључ и више нулл вредности | Не дозвољава ништа што је ништавно |
Перформансе су високе од ХасхТабле-а | Перформансе су споре |
П # 22) Разлика између ХасхСет-а и ТрееСет-а.
Одговор: Разлика између ХасхСет-а и ТрееСет-а може се видети у наставку:
ХасхСет | ТрееСет |
---|---|
Уметнути елементи су случајним редоследом | Одржава елементе у сортираном редоследу |
Може да складишти нулл објекте | Није могуће сачувати нулл објекте |
Перформансе су брзе | Перформансе су споре |
П # 23) Разлика између класе Абстрацт и Интерфаце.
Одговор: Разлике између класе сажетка и интерфејса су следеће:
Апстрактни час:
- Апстрактне класе имају подразумевани конструктор и он се позива кад год је конкретна подкласа инстанцирана.
- Садржи апстрактне методе као и апстрактне методе.
- Класа која проширује класу Сажетак не би требало да захтева примену свих метода, већ само методе Сажетка треба применити у конкретну подкласу.
- Апстрактна класа садржи променљиве инстанце.
Интерфејс:
- Нема ниједан конструктор и не може се направити инстанца.
- Треба пријавити само апстрактну методу.
- Класе које примењују интерфејс треба да обезбеде примену свих метода.
- Интерфејс садржи само константе.
К # 24) Шта значи Збирке на Јави?
Одговор: Колекција је оквир који је дизајниран за складиштење предмета и манипулисање дизајном за складиштење предмета.
Колекције се користе за обављање следећих операција:
- У потрази
- Сортирање
- Манипулација
- Уметање
- Делетион
Група предмета позната је као колекције. Све класе и интерфејси за прикупљање доступни су у пакету Јава утил.
П # 25) Које су све класе и интерфејси доступни у колекцијама?
Одговор: Доље су дате класе и интерфејси који су доступни у колекцијама:
Интерфејси:
- Збирка
- Листа
- Комплет
- Мапа
- Сортирани сет
- Сортирана карта
- Ред чекања
Предавања:
- Листе:
- Низ листа
- Вецтор
- Повезана листа
Комплети:
- Хасх сет
- Повезани хеш сет
- Трее Сет
Мапе:
- Хасх Мап
- Хасх Табле
- ТрееМап
- Повезана хеширана карта
Ред:
- Редослед приоритета
П # 26) Шта се подразумева под Уређеним и Сортираним у колекцијама?
Одговор:
Наручено: То значи да се вредности које се чувају у колекцији заснивају на вредностима које се додају у колекцију. Тако можемо поновити вредности из колекције у одређеном редоследу.
Сортирано: Механизми сортирања могу се применити интерно или екстерно, тако да се група предмета сортираних у одређеној колекцији заснива на својствима објеката.
П # 27) Објасните различите спискове доступне у колекцији.
Одговор: Вредности додате на листу заснивају се на индексној позицији и уређује се према индексној позицији. Дупликати су дозвољени.
Врсте листа су:
а) Листа низова:
- Брза итерација и брзи насумични приступ.
- То је уређена колекција (по индексу) и није сортирана.
- Примењује интерфејс са случајним приступом.
Пример:
public class Fruits{ public static void main (String ( ) args){ ArrayList names=new ArrayList (); names.add (“apple”); names.add (“cherry”); names.add (“kiwi”); names.add (“banana”); names.add (“cherry”); System.out.println (names); } }
Излаз:
(Јабука, трешња, киви, банана, трешња)
Из резултата, Арраи Лист одржава редослед уметања и прихвата дупликате. Али није сортирано.
б) Вектор:
То је исто као Листа низова.
- Векторске методе су синхронизоване.
- Сигурност навоја.
- Такође примењује Рандом Аццесс.
- Сигурност нити обично узрокује погодак у перформансама.
Пример:
public class Fruit { public static void main (String ( ) args){ Vector names = new Vector ( ); names.add (“cherry”); names.add (“apple”); names.add (“banana”); names.add (“kiwi”); names.add (“apple”); System.out.println (“names”); } }
Излаз:
(вишња, јабука, банана, киви, јабука)
Вецтор такође одржава редослед уметања и прихвата дупликате.
ц) Повезана листа:
- Елементи су двоструко повезани једни с другима.
- Перформансе су спорије од листе низова.
- Добар избор за уметање и брисање.
- У Јави 5.0 подржава уобичајене методе реда пеек (), Поол (), Оффер () итд.
Пример:
public class Fruit { public static void main (String ( ) args){ Linkedlist names = new linkedlist ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Излаз:
(банана, вишња, јабука, киви, банана)
Одржава редослед уметања и прихвата дупликате.
П # 28) Објасните сет и њихове типове у колекцији.
Одговор: Сет брине о јединствености. Не дозвољава дуплицирање. Овде се метода „једнако ()“ користи да би се утврдило да ли су два објекта идентична или не.
а) Хасх сет:
- Неуређено и несортирано.
- Користи хеш-код објекта за уметање вредности.
- Користите ово када је захтев „нема дупликата и не брине се за поруџбину“.
Пример:
public class Fruit { public static void main (String( ) args){ HashSet names = new HashSet ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Излаз:
(банана, вишња, киви, јабука)
Не следи ниједан редослед уметања. Дупликати нису дозвољени.
б) Повезани хеш скуп:
- Уређена верзија хеш-скупа позната је као Линкед Хасх Сет.
- Одржава двоструко повезану листу свих елемената.
- Користите ово када је потребан налог за понављање.
Пример:
public class Fruit { public static void main (String( ) args){ LinkedHashSet; names = new LinkedHashSet ( ) ; names.add(“banana”); names.add(“cherry”); names.add(“apple”); names.add(“kiwi”); names.add(“banana”); System.out.println (names); } }
Излаз:
(банана, вишња, јабука, киви)
Одржава редослед уметања којим су додани у сет. Дупликати нису дозвољени.
ц) Дрво сет:
- То је једна од две сортиране колекције.
- Користи структуру стабла „Читај црно“ и гарантује да ће елементи бити у растућем редоследу.
- Помоћу упоредивог (или) упоређивача можемо конструисати скуп стабла помоћу конструктора.
Пример:
public class Fruits{ public static void main (String( )args) { Treeset names= new TreeSet( ) ; names.add(“cherry”); names.add(“banana”); names.add(“apple”); names.add(“kiwi”); names.add(“cherry”); System.out.println(names); } }
Излаз:
(јабука, банана, вишња, киви)
ТрееСет сортира елементе у растућем редоследу. А дупликати нису дозвољени.
П # 29) Објасните мапу и њене типове.
Одговор: Карта брине о јединственом идентификатору. Јединствени кључ можемо мапирати на одређену вредност. То је пар кључ / вредност. Можемо претражити вредност на основу кључа. Као и скуп, и мапа користи методу „једнако ()“ да би утврдила да ли су два кључа иста или различита.
Мапа је следећих врста:
а) Хасх карта:
- Неуређена и неразврстана карта.
- Хасхмап је добар избор када нас није брига за редослед.
- Омогућава један нулл кључ и више нулл вредности.
Пример:
Public class Fruit{ Public static void main(String( ) args){ HashMap names =new HashMap( ); names.put(“key1”,“cherry”); names.put (“key2”,“banana”); names.put (“key3”,“apple”); names.put (“key4”,“kiwi”); names.put (“key1”,“cherry”); System.out.println(names); } }
Излаз:
{кеи2 = банана, кеи1 = трешња, кеи4 = киви, кеи3 = јабука}
Двоструки кључеви нису дозвољени у мапи.
Не одржава редослед уметања и није сортиран.
б) Табела хеширања:
- Као и векторски кључ, методе класе су синхронизоване.
- Сигурност навоја и због тога успорава перформансе.
- Не дозвољава ништа што је ништавно.
Пример:
public class Fruit{ public static void main(String( )args){ Hashtable names =new Hashtable( ); names.put(“key1”,“cherry”); names.put(“key2”,“apple”); names.put(“key3”,“banana”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Излаз:
{кеи2 = јабука, кеи1 = трешња, кеи4 = киви, кеи3 = банана}
Дуплирани кључеви нису дозвољени.
ц) Повезана хеш мапа:
- Одржава редослед уметања.
- Спорије од Хасх мапе.
- Могу очекивати бржу итерацију.
Пример:
public class Fruit{ public static void main(String( ) args){ LinkedHashMap names =new LinkedHashMap( ); names.put(“key1”,“cherry”); names.put(“key2”,“apple”); names.put(“key3”,“banana”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Излаз:
{кеи2 = јабука, кеи1 = трешња, кеи4 = киви, кеи3 = банана}
Дуплирани кључеви нису дозвољени.
д) ТрееМап:
- Сортирана карта.
- Као и Трее сет, с конструктором можемо конструисати редослед сортирања.
Пример:
public class Fruit{ public static void main(String( )args){ TreeMap names =new TreeMap( ); names.put(“key1”,“cherry”); names.put(“key2”,“banana”); names.put(“key3”,“apple”); names.put(“key4”,“kiwi”); names.put(“key2”,“orange”); System.out.println(names); } }
Излаз:
{кеи1 = трешња, кеи2 = банана, кеи3 = јабука, кеи4 = киви}
Сортирано је у растућем редоследу на основу кључа. Дуплирани кључеви нису дозвољени.
П # 30) Објасните приоритетни ред.
Одговор: Интерфеј реда
Приоритетни ред: Класа повезане листе је побољшана за примену интерфејса редова. Редовима се може управљати помоћу повезане листе. Сврха реда је „Приорити-ин, Приорити-оут“.
Отуда су елементи поређани или природно или према упоређивачу. Редослед елемената представља њихов релативни приоритет.
П # 31) Шта се подразумева под изузећем?
Одговор: Изузетак је проблем који се може појавити током нормалног тока извршења. Метода може да изузме изузетак када нешто завије током извођења. Ако се са тим изузетком није могло поступати, извршење се прекида пре него што изврши задатак.
Ако смо решили изузетак, тада се наставља нормалан проток. Изузеци су подкласа јава.ланг.Екцептион.
Пример за руковање изузетком:
try{ //Risky codes are surrounded by this block }catch(Exception e){ //Exceptions are caught in catch block }
П # 32) Које су врсте изузетака?
Одговор: Постоје две врсте изузетака. Они су детаљно објашњени у наставку.
а) Означени изузетак:
Те изузетке компајлер проверава у време састављања. Класе које проширују класу Тхровабле осим изузетка за време извођења и грешке називају се означеним изузетком.
Означени изузеци морају изјавити изузетак користећи кључну реч тхровс (или) окружен одговарајућим три / цатцх.
На пример, ЦлассНотФоунд Екцептион
б) Неозначени изузетак:
Ове изузетке компајлер не проверава током времена компајлирања. Компајлер не приморава да се бави овим изузецима. Садржи:
- Аритметички изузетак
- АрраиИндекОутОфБоундс Екцептион
П # 33) Који су различити начини за руковање изузецима?
Одговор: У наставку су објашњена два различита начина за руковање изузецима:
а) Коришћење три / цатцх:
Ризични код окружен је блоком три. Ако се догоди изузетак, тада га хвата блок цатцх који прати блок три.
Пример:
class Manipulation{ public static void main(String() args){ add(); } Public void add(){ try{ addition(); }catch(Exception e){ e.printStacktrace(); } } }
б) Декларацијом баца кључну реч:
На крају методе можемо изјавити изузетак помоћу кључне речи тхровс.
Пример:
class Manipulation{ public static void main(String() args){ add(); } public void add() throws Exception{ addition(); } }
П # 34) Које су предности руковања изузетком?
Одговор: Предности су следеће:
- Уобичајени ток извршења неће се прекинути ако се обради изузетак
- Проблем можемо идентификовати помоћу декларације цатцх
П # 35) Које су кључне речи које обрађују изузетке у Јави?
Одговор: У наставку су наведене две кључне речи за руковање изузецима:
покушај:
Када је ризични код окружен блоком три. Изузетак који се јавља у блоку три захваћен је цатцх блоком. Покушај може да прати или цатцх (или) коначно (или) обоје. Али било који од блокова је обавезан.
б) улов:
Након тога следи покушај блока. Изузеци су овде ухваћени.
ц) коначно:
Након тога следи блок три (или) цатцх. Овај блок се извршава без обзира на изузетак. Дакле, овде су генерално наведени кодови за чишћење.
П # 36) Објасните ширење изузетака.
Одговор: Изузетак се прво избацује из методе која је на врху стека. Ако не ухвати, искаче методу и прелази на претходну методу и тако даље док их не добију.
Ово се назива ширење изузетака.
Пример:
public class Manipulation{ public static void main(String() args){ add(); } public void add(){ addition(); }
Из горњег примера, стек изгледа као што је приказано доле:
Ако се изузетак догоди у додатак () метода није ухваћена, онда се прелази на методу додати() . Затим се премешта у главни() метода и тада ће зауставити ток извршења. Зове се ширење изузетака.
П # 37) Која је последња кључна реч у Јави?
Одговор:
Завршница променљиве: Једном када је променљива проглашена коначном, тада вредност променљиве не може бити промењена. То је попут константе.
Пример:
коначни инт = 12;
Коначна метода: Коначна кључна реч у методи не може да се поништи. Ако је метода означена као коначна, подкласа је не може надјачати.
Завршни час: Ако је класа проглашена коначном, класа не може бити поткласирана. Ниједан час не може продужити завршни час.
П # 38) Шта је нит?
Одговор: У Јави се ток извршења назива Тхреад. Сваки јава програм има најмање једну нит која се назива главна нит, главну нит креира ЈВМ. Корисник може дефинисати сопствене нити проширивањем класе Тхреад (или) применом интерфејса Руннабле. Навоји се извршавају истовремено.
Пример:
public static void main(String() args){//main thread starts here }
П # 39) Како се прави нит у Јави?
Одговор: Постоје два начина за стварање нити.
а) Класа Ектенд Тхреад: Проширивање класе Тхреад и замена методе извођења. Тема је доступна у јава.ланг.тхреад.
Пример:
Public class Addition extends Thread { public void run () { } }
Недостатак употребе класе нити је тај што не можемо проширити ниједну другу класу јер смо класу нити већ проширили. Можемо преоптеретити методу рун () у нашој класи.
б) Имплементирати покренути интерфејс: Други начин је применом интерфејса за покретање. За то бисмо требали обезбедити имплементацију методе рун () која је дефинисана у интерфејсу.
Пример:
Public class Addition implements Runnable { public void run () { } }
П # 40) Објасните методу јоин ().
Одговор: Начин придруживања () користи се за спајање једне нити с крајем тренутно покренуте нити.
Пример:
public static void main (String() args){ Thread t = new Thread (); t.start (); t.join (); }
На основу горњег кода, главна нит је започела извршење. Кад стигне до кода т.старт () тада „нит т“ покреће сопствени стек за извршење. ЈВМ се пребацује између главне нити и „нити т“.
Једном када стигне до кода т.јоин () тада се извршава само „нит т“ и довршава свој задатак, тада само главна нит започиње извршење.
То је нестатична метода. Метода Јоин () има преоптерећену верзију. Тако да можемо споменути временско трајање методе јоин () такође „.с“.
П # 41) Шта ради метода приноса класе Тхреад?
Одговор: Метода ииелд () помера тренутно покренуту нит у стање које се може покренути и омогућава осталим нитима извршење. Тако да нити са једнаким приоритетом имају прилику да се покрену. То је статична метода. Не ослобађа никакву браву.
Метода Ииелд () помера нит натраг у само стање Руннабле, а не нит у блок слееп (), ваит () (или).
Пример:
public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ Thread.yield(); } }
П # 42) Објасните методу ваит ().
Одговор: сачекајте () метода се користи за навођење нити да чека у спремишту за чекање. Када се током извршавања нити изврши метода ваит (), тада нит одустаје од закључавања објекта и прелази у спремиште на чекању. Метода Ваит () говори нити да чека одређено време.
Тада ће се нит пробудити након што се позове метода нотифи () (или) нотифи алл ().
Сачекајте () и остале горе поменуте методе не дају закључавање објекта одмах док тренутно извршаваћа нит не доврши синхронизовани код. Углавном се користи у синхронизацији.
Пример:
public static void main (String() args){ Thread t = new Thread (); t.start (); Synchronized (t) { Wait(); } }
П # 43) Разлика између методе нотифи () и методе нотифиАлл () у Јави.
Одговор: Разлике између методе нотифи () и методе нотифиАлл () наведене су у наставку:
обавести () | нотифиАлл () |
---|---|
Овај метод се користи за слање сигнала за буђење једне нити у спремишту за чекање. | Ова метода шаље сигнал за буђење свих нити у калему на чекању. |
П # 44) Како зауставити нит у јави? Објаснити методу слееп () у нити?
који је од следећих један од најпопуларнијих оквира за тестирање?
Одговор: Нит можемо зауставити коришћењем следећих метода нити:
- Спавање
- Чекање
- Блокирано
Спавање: Метода спавања () користи се за спавање тренутно извршене нити током датог временског периода. Једном када се нит пробуди, може се пребацити у стање за покретање. Дакле, метода слееп () се користи за одлагање извршења за неки период.
То је статична метода.
Пример:
Навој. Слееп (2000)
Дакле, одлаже нит да спава 2 милисекунде. Метода Слееп () баца непрекинути изузетак, стога блок морамо окружити три / цатцх.
public class ExampleThread implements Runnable{ public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ try{ Thread.sleep(2000); }catch(InterruptedException e){ } }
П # 45) Када у Јава-и користити Руннабле интерфаце Вс Тхреад цласс?
Одговор: Ако нам је потребна наша класа да прошири неке друге класе осим нити, онда можемо ићи са интерфејсом који се може покренути, јер у јави можемо проширити само једну класу.
Ако нећемо проширити ниједну класу, онда можемо проширити класу нити.
П # 46) Разлика између методе старт () и рун () класе нити.
Одговор: Метода Старт () креира нову нит, а код унутар методе рун () извршава се у новој нити. Ако смо директно позвали методу рун (), тада се нова нит не креира и нит која се тренутно извршава наставиће да извршава методу рун ().
П # 47) Шта је Мулти-тхреададинг?
Одговор: Више нити се извршава истовремено. Свака нит покреће свој властити стог на основу приоритета протока (или) нити.
Пример програма:
public class MultipleThreads implements Runnable { public static void main (String() args){//Main thread starts here Runnable r = new runnable (); Thread t=new thread (); t.start ();//User thread starts here Addition add=new addition (); } public void run(){ go(); }//User thread ends here }
У извршавању 1. реда, ЈВМ позива главни метод и главни стек нити изгледа као што је приказано доле.
Једном када извршење стигне, т.старт () лине, тада се креира нова нит, а такође се креира и нови стек за нит. Сада се ЈВМ пребацује на нову нит и главна нит се враћа у стање за покретање.
Два стека изгледају као што је приказано доле.
Сада је корисничка нит извршила код унутар методе рун ().
Једном када се метода рун () доврши, тада се ЈВМ пребацује натраг на главну нит и корисничка нит је извршила задатак и стек је нестао.
ЈВМ се пребацује између сваке нити све док се нити не заврше. Ово се назива вишеструко навојање.
П # 48) Објасните животни циклус нити у Јави.
Одговор: Тема има следећа стања:
- Нова
- Руннабле
- Трчање
- Не може се покренути (блокирано)
- Прекинута
- Нова: У новом стању је створена инстанца теме, али метода старт () још увек није позвана. Сада се нит не сматра живом.
- Руннабле : Нит је у стању да се изврши након позивања методе старт (), али пре него што се позове метода рун (). Али нит се такође може вратити у стање покретања из чекања / спавања. У овом стању, нит се сматра живом.
- Трчање : Нит је у активном стању након што позове методу рун (). Сада нит започиње извршење.
- Не може се покренути (Блокирано): Нит је жива, али не испуњава услове за покретање. Није у стању за трчање, али такође ће се вратити у стање за трчање након неког времена. Пример: чекај, спавај, блокирај.
- Прекинута : Једном када се изврши метода покретања, она се прекида. Сада нит није жива.
П # 49) Шта је синхронизација?
Одговор: Синхронизација истовремено омогућава само једној нити да приступи блоку кода. Ако више нити приступа блоку кода, на крају постоји шанса за нетачне резултате. Да бисмо избегли овај проблем, можемо да обезбедимо синхронизацију за осетљиви блок кодова.
Синхронизована кључна реч значи да нит треба кључ да би приступила синхронизованом коду.
Браве су по објектима. Сваки Јава објекат има браву. Брава има само један кључ. Нит може приступити синхронизованој методи само ако нит може добити кључ од објеката за закључавање.
За ово користимо кључну реч „Синхронизовано“.
Пример:
public class ExampleThread implements Runnable{ public static void main (String() args){ Thread t = new Thread (); t.start (); } public void run(){ synchronized(object){ { } }
П # 50) Који је недостатак синхронизације?
Године: За примену свих метода не препоручује се синхронизација. Јер ако једна нит приступа синхронизованом коду, следећа нит треба да сачека. Дакле, то чини споре перформансе на другом крају.
П # 51) Шта се подразумева под сериализацијом?
Одговор: Претварање датотеке у ток бајтова познато је као сериализација. Објекти у датотеци се из сигурносних разлога претварају у бајтове. За ово морамо да имплементирамо јава.ио.Сериализабле интерфејс. Нема метод за дефинисање.
Променљиве које су означене као пролазне неће бити део сериализације. Тако можемо прескочити сериализацију за променљиве у датотеци помоћу привремене кључне речи.
Сазнајте више = >> Сериализабле и Цлонеабле
П # 52) Која је сврха привремене променљиве?
Одговор: Привремене променљиве нису део процеса сериализације. Током десериализације, вредности привремених променљивих су постављене на подразумевану вредност. Не користи се са статичким променљивим.
Пример:
привремени инт бројеви;
П # 53) Које методе се користе током процеса сериализације и десеријализације?
Одговор: Класе ОбјецтОутпутСтреам и ОбјецтИнпутСтреам су виши ниво јава.ио. пакет. Користићемо их са класама нижег нивоа ФилеОутпутСтреам и ФилеИнпутСтреам.
ОбјецтОутпутСтреам.вритеОбјецт —-> Серијализујте објекат и запишите сериализовани објекат у датотеку.
ОбјецтИнпутСтреам.реадОбјецт -> Чита датотеку и десериализује објекат.
Да би се сериализовао, објекат мора применити интерфејс који се може серирати. Ако суперкласа имплементира Сериализабле, тада ће подкласа аутоматски бити сериализабле.
П # 54) Која је сврха хлапљиве променљиве?
Одговор: Хлапне вредности променљивих увек се читају из главне меморије, а не из кеш меморије нити. Ово се користи углавном током синхронизације. Применљив је само за променљиве.
Пример:
непостојан инт број;
П # 55) Разлика између сериализације и десеријализације у Јави.
Одговор: Ово су разлике између сериализације и десериализације у јави:
Серијализација | Десериализација |
---|---|
Серијализација је поступак који се користи за претварање објеката у ток бајтова | Десериализација је супротан процес сериализације где можемо вратити објекте из бајт тока. |
Објект се сериализује тако што му се напише ОбјецтОутпутСтреам. | Објект се десериализује читањем из ОбјецтИнпутСтреам. |
П # 56) Шта је СериалВерсионУИД?
Одговор: Кад год је објекат сериализован, на њему се ставља печат ИД бројем верзије за класу објекта. Овај ИД се назива СериалВерсионУИД. Ово се користи током десериализације да би се потврдило да ли су пошиљалац и прималац компатибилни са сериализацијом.
Закључак
Ово су нека од основних питања о ЈАВА интервјуима која покривају и основни и напредни Јава концепт за програмирање, као и интервју за програмере, а на ова су одговорили наши стручњаци за ЈАВА.
Надам се да ће вам овај водич пружити сјајан увид у ЈАВА основне концепте кодирања до детаља. Горе наведена објашњења заиста ће обогатити ваше знање и побољшати ваше разумевање ЈАВА програмирања.
Припремите се за самоуверено разбијање ЈАВА интервјуа.