100+ Java Otázky a odpovědi na pohovor (2025)

Zde jsou Java otázky a odpovědi na pohovor pro čerstvější i zkušené kandidáty, aby získali svou vysněnou práci.

 

Java Otázky a odpovědi na programovací rozhovor pro začátečníky

1) Jaký je rozdíl mezi vnitřní třídou a podtřídou?

Vnitřní třída je třída, která je vnořena do jiné třídy. Třída Inner má přístupová práva pro třídu, která ji vnořuje, a může přistupovat ke všem proměnným a metodám definovaným ve vnější třídě.

Podtřída je třída, která dědí z jiné třídy zvané supertřída. Podtřída má přístup ke všem veřejným a chráněným metodám a polím své supertřídy.

👉 Zdarma ke stažení PDF: Java Rozhovor Otázky a odpovědi na rozhovor >>


2) K čemu slouží různé specifikátory přístupu Java třídy?

In Java, specifikátory přístupu jsou klíčová slova použitá před názvem třídy, který definuje rozsah přístupu. Typy specifikátorů přístupu pro třídy jsou:

1) Veřejné: Třída, metoda, pole jsou přístupné odkudkoli.

2) Chráněno: Method,Field je přístupný ze stejné třídy, do které patří, nebo z podtříd a ze třídy stejného balíčku, ale ne zvenčí.

3) Výchozí: Metoda, pole, třída jsou přístupné pouze ze stejného balíčku a ne z vnějšku jeho nativního balíčku.

4) Soukromé: Method,Field mohou být přístupné ze stejné třídy, do které patří.


3) Jaký je účel statických metod a statických proměnných?

Pokud existuje požadavek sdílet metodu nebo proměnnou mezi více objekty třídy namísto vytváření samostatných kopií pro každý objekt, použijeme klíčové slovo static k tomu, aby byla metoda nebo proměnná sdílena pro všechny objekty.


4) Co je zapouzdření dat a jaký je jeho význam?

Zapouzdření je koncept v objektově orientovaném programování pro kombinování vlastností a metod v jediné jednotce.

Zapouzdření pomáhá programátorům sledovat modulární přístup pro vývoj softwaru, protože každý objekt má svou vlastní sadu metod a proměnných a slouží svým funkcím nezávisle na jiných objektech. Zapouzdření také slouží ke skrytí dat.


5) Co je to třída singleton? Uveďte praktický příklad jeho použití.

Třída singleton v jazyce Java může mít pouze jednu instanci, a proto všechny její metody a proměnné patří pouze do jedné instance. Koncept třídy Singleton je užitečný v situacích, kdy je potřeba omezit počet objektů pro třídu.

Nejlepším příkladem scénáře použití singletonu je situace, kdy existuje omezení pouze jednoho připojení k databázi kvůli některým omezením ovladače nebo kvůli problémům s licencí.


6) V čem jsou smyčky Java? Jaké jsou tři typy smyček?

Smyčka se v programování používá k opakovanému provádění příkazu nebo bloku příkazu. Tam jsou tři typy smyček v Java:

1) Pro smyčky

Cykly For se v jazyce Java používají k opakovanému provádění příkazů pro daný počet opakování. Smyčky For se používají, když je programátorovi znám počet provedení příkazů.

2) Zatímco smyčky

Smyčka while se používá, když je třeba opakovaně provádět určité příkazy, dokud není splněna podmínka. V cyklech while se nejprve kontroluje podmínka před provedením příkazů.

3) Do While Loops

Smyčka Do While je stejná jako smyčka While s tím rozdílem, že podmínka je kontrolována po provedení bloku příkazů. V případě cyklu do while se tedy příkazy provedou alespoň jednou.


7) Co je to nekonečná smyčka? Jak je deklarována nekonečná smyčka?

Nekonečná smyčka běží bez jakékoli podmínky a běží nekonečně. Nekonečnou smyčku lze přerušit definováním jakékoli logiky přerušení v těle bloků příkazů.

Nekonečná smyčka je deklarována následovně:

for (;;)
{
    // Statements to execute

    // Add any loop breaking logic
}

8) Jaký je rozdíl mezi příkazem continue a break?

break a continue jsou dvě důležitá klíčová slova používaná v Loops. Když je v cyklu použito klíčové slovo break, smyčka se okamžitě přeruší, zatímco při použití klíčového slova continue se aktuální iterace přeruší a smyčka pokračuje další iterací.

V níže uvedeném příkladu se smyčka přeruší, když čítač dosáhne 4.

for (counter = 0; counter & lt; 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    break;
}

}

V níže uvedeném příkladu, když čítač dosáhne 4, smyčka skočí na další iteraci a všechny příkazy po klíčovém slově continue jsou pro aktuální iteraci přeskočeny.

for (counter = 0; counter < 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    continue;
}
system.out.println("This will not get printed when counter is 4");
}

9) Jaký je rozdíl mezi proměnnými double a float Java?

V Javě zabere float 4 bajty v paměti Double zabírá 8 bajtů v paměti. Float je desetinné číslo s plovoucí desetinnou čárkou s jednoduchou přesností Double je desetinné číslo s dvojnásobnou přesností.


10) V čem je konečné klíčové slovo Java? Uveďte příklad.

V Javě je konstanta deklarována pomocí klíčového slova Final. Hodnotu lze přiřadit pouze jednou a po přiřazení již nelze hodnotu konstanty měnit.

V níže uvedeném příkladu je deklarována konstanta s názvem const_val a je jí přiřazena hodnota:

Private Final int const_val=100

Když je metoda deklarována jako konečná, NELZE ji přepsat podtřídami. Tato metoda je rychlejší než jakákoli jiná metoda, protože je vyřešena v době vyhovění.

Když je třída deklarována jako konečná, nelze ji podtřídit. Příklad String, Integer a další obalové třídy.


11) Co je ternární operátor? Uveďte příklad.

Ternární operátor , nazývaný také podmíněný operátor, se používá k rozhodnutí, kterou hodnotu přiřadit proměnné na základě vyhodnocení booleovské hodnoty. Označuje se jako ?

V níže uvedeném příkladu, pokud je hodnocení 1, je stavu přiřazena hodnota „Hotovo“, jinak „Nevyřízeno“.

public class conditionTest {
    public static void main(String args[]) {
        String status;
        int rank = 3;
        status = (rank == 1) ? "Done" : "Pending";
        System.out.println(status);
    }
}

12) Jak můžete generovat náhodná čísla v Java?

  • Pomocí Math.random() můžete generovat náhodná čísla v rozsahu větším nebo rovném 0.1 a menším než 1.0
  • Použití třídy Random v balíčku java.util

13) Co je výchozí pouzdro přepínače? Uveďte příklad.

V příkaz switch, výchozí případ se provede, když žádná jiná podmínka přepínače neodpovídá. Výchozí případ je volitelný případ. Může být deklarován pouze poté, co byly zakódovány všechny ostatní případy přepínačů.

Pokud v níže uvedeném příkladu není skóre 1 nebo 2, použije se výchozí velikost písmen.

public class SwitchExample {
    public static void main(String args[]) {
        int score = 4; // Declare the score variable inside the main method
        switch (score) {
            case 1:
                System.out.println("Score is 1");
                break;
            case 2:
                System.out.println("Score is 2");
                break;
            default:
                System.out.println("Default Case");
        }
    }
}

14) V čem je základní třída? Java od kterého jsou odvozeny všechny třídy?

java.lang.object


15) Může metoda main() v Java lze vrátit nějaká data?

V jazyce Java nemůže metoda main() vracet žádná data, a proto je vždy deklarována s návratovým typem void.


16) Co jsou Java Balíčky? Jaký význam mají balíčky?

In Java, package je kolekce tříd a rozhraní, které jsou svázány dohromady, protože spolu souvisí. Použití balíčků pomáhá vývojářům modularizovat kód a seskupovat kód pro správné opětovné použití. Jakmile je kód zabalen do balíčků, lze jej importovat do jiných tříd a používat.


17) Můžeme deklarovat třídu jako abstraktní, aniž bychom měli nějakou abstraktní metodu?

Ano, můžeme vytvořit abstraktní třídu pomocí abstraktního klíčového slova před názvem třídy, i když nemá žádnou abstraktní metodu. Pokud však třída má byť jen jednu abstraktní metodu, musí být deklarována jako abstraktní, jinak bude dávat chybu.


18) Jaký je rozdíl mezi abstraktní třídou a rozhraním Java?

Primární rozdíl mezi abstraktní třídou a rozhraním je v tom, že rozhraní může mít pouze deklaraci veřejných statických metod bez konkrétní implementace, zatímco abstraktní třída může mít členy s libovolnými specifikátory přístupu (veřejné, soukromé atd.) s konkrétní implementací nebo bez ní.

Dalším klíčovým rozdílem v použití abstraktních tříd a rozhraní je to, že třída, která implementuje rozhraní, musí implementovat všechny metody rozhraní, zatímco třída, která dědí z abstraktní třídy, nevyžaduje implementaci všech metod své supertřídy.

Třída může implementovat více rozhraní, ale může rozšířit pouze jednu abstraktní třídu.


19) Jaké jsou výkonnostní implikace rozhraní oproti abstraktním třídám?

Rozhraní mají pomalejší výkon ve srovnání s abstraktními třídami, protože pro rozhraní jsou vyžadovány další směry. Dalším klíčovým faktorem, který musí vývojáři vzít v úvahu, je to, že jakákoli třída může rozšířit pouze jednu abstraktní třídu, zatímco třída může implementovat mnoho rozhraní.

Použití rozhraní také klade další zátěž na vývojáře, protože kdykoli je rozhraní implementováno ve třídě; vývojář je nucen implementovat každou metodu rozhraní.


20) Importuje balíček také jeho dílčí balíčky Java?

V jazyce Java, když je balíček importován, jeho dílčí balíčky nejsou importovány a vývojář je musí v případě potřeby importovat samostatně.

Pokud například vývojář importuje balíček university.*, načtou se všechny třídy v balíčku s názvem university, ale nenačtou se žádné třídy z dílčího balíčku. Chcete-li načíst třídy ze svého dílčího balíčku (řekněme oddělení), musí je vývojář explicitně importovat takto:

Import univerzit.oddělení.*


21) Můžeme prohlásit hlavní metodu naší třídy za soukromou?

V Javě musí být hlavní metoda veřejná statická, aby mohla správně běžet jakákoli aplikace. Pokud je hlavní metoda deklarována jako soukromá, vývojář neobdrží žádnou chybu při kompilaci, nebude spuštěna a zobrazí chybu běhu.


22) Jak můžeme předat argument funkci odkazem místo předáním hodnotou?

V Javě můžeme předat argument funkci pouze hodnotou a ne odkazem.


23) Jak je objekt serializován v Javě?

V jazyce Java je pro převod objektu na bajtový proud serializací implementováno rozhraní s názvem Serializable třídou. Všechny objekty třídy implementující serializovatelné rozhraní se serializují a jejich stav je uložen v byte streamu.


24) Kdy bychom měli používat serializaci?

Serializace se používá, když je třeba přenášet data přes síť. Pomocí serializace se stav objektu uloží a převede na byte stream. Bytový proud se přenese po síti a objekt se znovu vytvoří v místě určení.


25) Je povinné, aby po zkušebním bloku následoval záchytný blok? Java pro zpracování výjimek?

Blok Try musí být následován blokem Catch nebo Konečně blokem nebo oběma. Jakákoli výjimka vyvolaná z bloku try musí být buď zachycena v bloku catch, nebo jiné specifické úkoly, které je třeba provést, než se přerušení kódu vloží do bloku Konečně.


Java Otázky a odpovědi na pohovor pro zkušené

26) Existuje nějaký způsob, jak přeskočit konečně blok výjimky, i když se nějaká výjimka vyskytne v bloku výjimky?

Pokud je v bloku Try vyvolána výjimka, řízení přejde do bloku catch, pokud existuje, jinak se nakonec zablokuje. Blok Konečně se provede vždy, když dojde k výjimce, a jediný způsob, jak se vyhnout provádění jakýchkoli příkazů v bloku Konečně, je násilné přerušení kódu napsáním následujícího řádku kódu na konec bloku try:

System.exit(0);

27) Když je vyvolán konstruktor třídy?

Konstruktor třídy je vyvolán pokaždé, když je objekt vytvořen s novým klíčovým slovem.

Například v následující třídě jsou dva objekty vytvořeny pomocí klíčového slova new, a proto je konstruktor vyvolán dvakrát.

public class const_example {

    const_example() {

        system.out.println("Inside constructor");
    }
    public static void main(String args[]) {

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

28) Může mít třída více konstruktorů?

Ano, třída může mít více konstruktorů s různými parametry. Který konstruktor se použije pro vytváření objektů, závisí na argumentech předávaných při vytváření objektů.


29) Můžeme přepsat statické metody třídy?

Nemůžeme přepsat statické metody. Statické metody patří do třídy a ne do jednotlivých objektů a jsou vyřešeny v době kompilace (nikoli za běhu). I když se pokusíme přepsat statickou metodu, nedostaneme chybu komplitace ani dopad přepsání při spuštění kód.


30) Jaký bude výstup v níže uvedeném příkladu?

public class superclass {

    public void displayResult() {

        system.out.println("Printing from superclass");

    }

}

public class subclass extends superclass {

    public void displayResult() {

        system.out.println("Displaying from subClass");

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

Ans: Výstup bude:

Zobrazení z podtřídy

Tisk ze supertřídy


31) Je String datovým typem v Javě?

String není v Javě primitivní datový typ. Když je řetězec vytvořen v Javě, je to vlastně objekt JavaTřída .Lang.String, která se vytvoří. Po vytvoření tohoto objektu string lze na objekt string použít všechny vestavěné metody třídy String.


32) Kolik String Objects je vytvořeno v níže uvedeném příkladu?

String s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

Ve výše uvedeném příkladu dva objekty JavaVytvoří se třída .Lang.String. s1 a s3 jsou odkazy na stejný objekt.


33) Proč Strings in Java jsou nazývány jako neměnné?

V Javě se řetězcové objekty nazývají neměnné, protože jakmile je řetězci přiřazena hodnota, nelze ji změnit a pokud se změní, vytvoří se nový objekt.

V níže uvedeném příkladu odkaz str odkazuje na objekt typu řetězec s hodnotou „Hodnota jedna“.

String str="Value One";

Když je k němu přiřazena nová hodnota, vytvoří se nový objekt String a odkaz se přesune do nového objektu.

str="New Value";

34) Jaký je rozdíl mezi polem a vektorem?

Pole seskupuje data stejného primitivního typu a má statickou povahu, zatímco vektory jsou dynamické povahy a mohou obsahovat data různých typů dat.


35) Co je to multi-threading?

Vícevláknové zpracování je programovací koncept pro spouštění více úloh souběžným způsobem v rámci jednoho programu. Vlákna sdílejí stejný zásobník procesů a běží paralelně. Pomáhá při zlepšování výkonu jakéhokoli programu.


36) Proč se používá Runnable Interface v Java?

Runnable rozhraní se používá v Javě pro implementaci vícevláknových aplikací. JavaRozhraní .Lang.Runnable je implementováno třídou pro podporu více vláken.


37) Jaké jsou dva způsoby implementace multi-threadingu? Java?

Lze vyvíjet vícevláknové aplikace Java pomocí kterékoli z následujících dvou metod:

1) Pomocí Java.Lang.Runnable Interface. Třídy implementují toto rozhraní, aby umožnily vícevláknové zpracování. V tomto rozhraní je implementována metoda Run().

2) Napsáním třídy, která rozšiřuje Java.Lang.Třída nití.


38) Když je v datech vyžadováno velké množství změn, která z nich by měla být preferována? Řetězec nebo ŘetězecBuffer?

Od StringBuffers jsou dynamické povahy a můžeme měnit hodnoty StringBuffer objektů na rozdíl od String, který je neměnný, je vždy dobrou volbou použít StringBuffer když se data příliš mění. Pokud v takovém případě použijeme String, pro každou změnu dat se vytvoří nový objekt String, což bude další režie.


39) Jaký je účel použití Break v každém případě příkazu Switch?

Přestávka se používá po každém případě (kromě posledního) ve spínači, takže kód se po platném případě přeruší a neplyne ani v projednávaných případech.

Pokud se break nepoužije po každém případu, všechny případy po platném případu se také provedou, což má za následek nesprávné výsledky.


40) Jak probíhá svoz odpadu Java?

V jazyce Java, když se na objekt již neodkazuje, sběr odpadků proběhne a objekt je automaticky zničen. Pro automatický sběr odpadu Java volá buď metodu System.gc() nebo metodu Runtime.gc().


41) Jak můžeme spustit jakýkoli kód ještě před hlavní metodou?

Pokud chceme provést nějaké příkazy ještě před vytvořením objektů při načítání třídy, můžeme použít statický blok kódu ve třídě. Jakékoli příkazy uvnitř tohoto statického bloku kódu budou provedeny jednou v době načítání třídy ještě před vytvořením objektů v hlavní metodě.


42) Může být třída zároveň supertřídou a podtřídou? Uveďte příklad.

Pokud se používá hierarchie dědičnosti, může být třída zároveň nadtřídou pro jinou třídu a podtřídou pro jinou.

V níže uvedeném příkladu je kontinentální třída podtřídou světové třídy a je supertřídou venkovské třídy.

public class world {

..........

}
public class continenet extends world {

............

}
public class country extends continent {

......................

}

43) Jak se vytvářejí objekty třídy, pokud ve třídě není definován žádný konstruktor?

I když ve třídě Java není definován žádný explicitní konstruktor, objekty se úspěšně vytvoří, protože výchozí konstruktor se implicitně používá pro vytváření objektů. Tento konstruktor nemá žádné parametry.


44) Jak můžeme ve vícevláknech zajistit, aby zdroj nepoužívalo více vláken současně?

V multi-threadingu lze přístup ke zdrojům, které jsou sdíleny mezi více vlákny, řídit pomocí konceptu synchronizace. Použití synchronizované klíčové slovo, můžeme zajistit, že sdílený prostředek může používat pouze jedno vlákno najednou a ostatní mohou získat kontrolu nad prostředkem, až když se osvobodí od druhého, který jej používá.


45) Můžeme volat konstruktor třídy pro objekt vícekrát?

Konstruktor se zavolá automaticky, když vytvoříme objekt pomocí nového klíčového slova. Je volána pouze jednou pro objekt v době vytvoření objektu, a proto nemůžeme konstruktor znovu vyvolat pro objekt po jeho vytvoření.


46) Existují dvě třídy s názvem classA a classB. Obě třídy jsou ve stejném balíčku. Může soukromý člen třídy A přistupovat k objektu třídy B?

Soukromí členové třídy nejsou přístupní mimo rozsah této třídy a žádná jiná třída, dokonce ani ve stejném balíčku, k nim nemá přístup.


47) Můžeme mít ve třídě se stejným názvem dvě metody?

Ve třídě můžeme definovat dvě metody se stejným názvem, ale s různým počtem/typem parametrů. Která metoda se má vyvolat, bude záviset na předaných parametrech.

Například ve třídě níže máme dvě metody tisku se stejným názvem, ale odlišnými parametry. V závislosti na parametrech se příslušný bude nazývat:

public class methodExample {

    public void print() {

        system.out.println("Print method without parameters.");

    }

    public void print(String name) {

        system.out.println("Print method with parameter");

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

48) Jak můžeme vytvořit kopii java objektu?

K vytvoření kopie objektu můžeme použít koncept klonování. Pomocí clone vytváříme kopie se skutečným stavem objektu.

Clone() je metoda klonovatelného rozhraní, a proto je třeba implementovat klonovatelné rozhraní pro vytváření kopií objektů.


49) Jaká je výhoda použití dědičnosti?

Klíčovou výhodou použití dědičnosti je opětovná použitelnost kódu, protože dědičnost umožňuje podtřídám znovu použít kód své nadtřídy. Polymorfismus (rozšiřitelnost) je další velkou výhodou, která umožňuje zavádění nových funkcí bez ovlivnění existujících odvozených tříd.


50) Jaký je výchozí specifikátor přístupu pro proměnné a metody třídy?

Výchozí specifikátor přístupu pro proměnné a metodu je chráněný balíčkem, tj. proměnné a třída jsou dostupné pro jakoukoli jinou třídu, ale ve stejném balíčku, nikoli mimo balíček.


51) Uveďte příklad použití ukazatelů v Java třída.

Nejsou tam žádné ukazatele Java. Nemůžeme tedy použít koncept ukazatelů Java.


52) Jak můžeme omezit dědičnost pro třídu, aby z ní nemohla být zděděna žádná třída?

Pokud chceme, aby třída nebyla dále rozšiřována o žádnou třídu, můžeme použít klíčové slovo Poslední s názvem třídy.

V následujícím příkladu je třída Stone Final a nelze ji rozšířit

public Final Class Stone {
	// Class methods and Variables
}

53) Jaký je rozsah přístupu specifikátoru chráněného přístupu?

Když je metoda nebo proměnná deklarována se specifikátorem chráněného přístupu, stane se přístupnou ve stejné třídě, jakékoli jiné třídě stejného balíčku a také v podtřídě.

změna Třída Balíček Podtřída Celým Světem
na veřejnosti Y Y Y Y
chráněný Y Y Y N
žádný modifikátor Y Y N N
soukromé Y N N N

54) Jaký je rozdíl mezi Stack a Queue?

Zásobník i fronta se používají jako zástupný symbol pro kolekci dat. Primární rozdíl mezi zásobníkem a frontou je ten, že zásobník je založen na principu Last in First Out (LIFO), zatímco fronta je založena na principu FIFO (First In First Out).


55) Jak můžeme v Javě zakázat serializaci proměnných?

Pokud chceme, aby některé proměnné třídy nebyly serializovány, můžeme použít klíčové slovo přechodný při jejich vyhlašování. Například proměnná trans_var níže je přechodná proměnná a nelze ji serializovat:

public class transientExample { 
	private transient trans_var; 
    // rest of the code 
}

56) Jak můžeme použít primitivní datové typy jako objekty?

S primitivními datovými typy, jako je int, lze zacházet jako s objekty pomocí jejich příslušných obalových tříd. Například Integer je obalová třída pro primitivní datový typ int. Na třídu wrapper můžeme použít různé metody, stejně jako jakýkoli jiný objekt.


57) Které typy výjimek jsou zachyceny v době kompilace?

Zaškrtnuté výjimky lze zachytit v době kompilace programu. Zaškrtnuté výjimky musí být zpracovány pomocí bloku try catch v kódu, aby bylo možné kód úspěšně zkompilovat.


58) Popište různé stavy vlákna.

Vlákno dovnitř Java může být v jednom z následujících stavů:

  • Připraveno: Když je vlákno vytvořeno, je ve stavu Připraveno.
  • Spuštěno: Aktuálně prováděné vlákno je ve stavu spuštěno.
  • Čekání: Vlákno čekající na další vlákno, aby uvolnilo určité prostředky, je ve stavu čekání.
  • Mrtvý: Vlákno, které po spuštění zaniklo, je v nefunkčním stavu.

59) Můžeme použít výchozí konstruktor třídy, i když je definován explicitní konstruktor?

Java poskytuje výchozí konstruktor bez argumentů, pokud v a není definován žádný explicitní konstruktor Java třída. Ale pokud byl definován explicitní konstruktor, nelze vyvolat výchozí konstruktor a vývojář může použít pouze konstruktory, které jsou definovány ve třídě.


60) Můžeme přepsat metodu použitím stejného názvu metody a argumentů, ale různých typů návratů?

Základní podmínkou přepisování metody je, že název metody, argumenty i návratový typ musí být přesně stejné jako u přepisované metody. Použití jiného typu návratu tedy nepřepíše metodu.


61) Jaký bude výstup následující části kódu?

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

        system.out.println(x++);
	}
}

V tomto případě se používá operátor postfix ++, který nejprve vrátí hodnotu a poté se zvýší. Jeho výstup bude tedy 4.


61) Někdo říká, že úspěšně zkompiloval třídu Java, aniž by v ní měl dokonce hlavní metodu? Je to možné?

hlavní metoda je vstupním bodem Java třída a je vyžadována pro spuštění programu; třída se úspěšně zkompiluje, i když nemá hlavní metodu. Spustit to ale nejde.


62) Můžeme volat nestatickou metodu zevnitř statické metody?

Nestatické metody jsou vlastněny objekty třídy a mají rozsah na úrovni objektu a aby bylo možné volat nestatické metody ze statického bloku (jako ze statické hlavní metody), je třeba nejprve vytvořit objekt třídy. Potom pomocí odkazu na objekt lze tyto metody vyvolat.


63) Jaké jsou dvě proměnné prostředí, které musí být nastaveny, aby bylo možné je spustit Java programy?

Java programy lze na stroji spouštět pouze po správném nastavení následujících dvou proměnných prostředí:

  1. proměnná PATH
  2. proměnná CLASSPATH

64) Lze použít proměnné v Java bez inicializace?

In Java, pokud je proměnná použita v kódu bez předchozí inicializace platnou hodnotou, program se nezkompiluje a zobrazí chybu, protože proměnným není přiřazena žádná výchozí hodnota Java.


65) Může třída v Java být zděděn z více než jedné třídy?

In Java, třída může být odvozena pouze z jedné třídy a ne z více tříd. Vícenásobná dědičnost není podporována Java.


66) Může mít konstruktor jiný název než název třídy Java?

Konstruktér v Java musí mít stejný název jako název třídy a pokud je název jiný, nechová se jako konstruktor a kompilátor to považuje za normální metodu.


67) Jaký bude výstup Round(3.7) a Ceil(3.7)?

Round(3.7) vrátí 4 a Ceil(3.7) vrátí 4.


68) Můžeme použít goto in Java jít na konkrétní linku?

In Java, není zde klíčové slovo goto a java nepodporuje tuto funkci přechodu na konkrétní označený řádek.


69) Lze znovu spustit mrtvé vlákno?

V Javě nelze vlákno, které je v mrtvém stavu, znovu spustit. Neexistuje způsob, jak restartovat mrtvé vlákno.


70) Je následující deklarace třídy správná?

public abstract final class testClass {
	// Class methods and variables
}

Odpověď: Výše ​​uvedená deklarace třídy je nesprávná, protože abstraktní třídu nelze deklarovat jako konečnou.


71) Je na každém počítači ke spuštění a Java program?

JDK je vývojová sada Java a je vyžadován pouze pro vývoj a pro spuštění a Java program na počítači, není vyžadováno JDK. Vyžaduje se pouze JRE.


72) Jaký je rozdíl mezi porovnáním provedeným metodou rovná se a operátorem ==?

In Java, metoda equals() se používá k porovnání obsahu dvou řetězcových objektů a vrací true, pokud mají dva stejnou hodnotu, zatímco operátor == porovnává odkazy dvou řetězcových objektů.

V následujícím příkladu equals() vrátí hodnotu true, protože dva objekty typu string mají stejné hodnoty. Operátor == však vrací false, protože oba objekty řetězce odkazují na různé objekty:

public class equalsTest {

    public static void main(String args[]) {

        String str1 = new String("Hello World");

        String str2 = new String("Hello World");

        if (str1.equals(str2))

        { // this condition is true

            System.out.println("str1 and str2 are equal in terms of values");

        }

        if (str1 == str2) {

            //This condition is true

            System.out.println("Both strings are referencing same object");

        } else

        {

            // This condition is NOT true

            System.out.println("Both strings are referencing different objects");

        }

    }

}

73) Je možné definovat metodu v Java třídy, ale poskytněte její implementaci v kódu jiného jazyka, jako je C?

Ano, můžeme to udělat pomocí nativních metod. V případě vývoje založeného na nativních metodách definujeme veřejné statické metody v našem Java třídy bez její implementace a poté se implementace provádí v jiném jazyce, jako je C, samostatně.


74) Jak jsou definovány destruktory v Java?

In Java, ve třídě nejsou definovány žádné destruktory, protože to není potřeba. Java má svůj vlastní mechanismus pro shromažďování odpadků, který provádí tuto práci automaticky tím, že ničí objekty, když již nejsou odkazovány.


Java Otázky a odpovědi na pohovor pro více než 5 let zkušeností

75) Může být proměnná lokální a statická zároveň?

Ne, proměnná nemůže být statická a zároveň lokální. Definování lokální proměnné jako statické způsobí chybu kompilace.


76) Můžeme mít v rozhraní statické metody?

Statické metody nelze přepsat v žádné třídě, zatímco jakékoli metody v rozhraní jsou ve výchozím nastavení abstraktní a mají být implementovány ve třídách implementujících rozhraní. Nemá tedy smysl mít v rozhraní statické metody Java.


77) Můžeme ve třídě implementující rozhraní změnit hodnotu libovolné proměnné definované v rozhraní?

Ne, nemůžeme změnit hodnotu žádné proměnné rozhraní v implementační třídě, protože všechny proměnné definované v rozhraní jsou standardně veřejné, statické a konečné a konečné proměnné jsou jako konstanty, které nelze později změnit.


78) Je správné říci, že kvůli funkci garbage collection in Java, Java program nikdy nevyjde z paměti?

A to i přesto, že automatický sběr odpadu zajišťuje Java, nezaručuje, že a Java program nevyjde z paměti, protože existuje možnost, že vytvoření Java objekty jsou prováděny rychlejším tempem ve srovnání s garbage collection, což vede k zaplnění všech dostupných paměťových zdrojů.

Sběr odpadu tedy pomáhá snižovat pravděpodobnost, že programu dojde paměť, ale nezaručuje to.


79) Můžeme mít pro hlavní metodu jiný návratový typ než void?

Ne Java metoda class main může mít pouze návratový typ void, aby byl program úspěšně proveden.

Pokud však musíte bezpodmínečně vrátit hodnotu na po dokončení hlavní metody, můžete použít System.exit(int status)


80) Chci znovu dosáhnout a použít předmět, jakmile byl posbírán odpadky. Jak je to možné?

Jakmile je objekt zničen sběračem odpadu, již na hromadě neexistuje a nelze k němu znovu přistupovat. Neexistuje způsob, jak na to znovu odkazovat.


81) v Java programování vláken, která metoda je nezbytnou implementací pro všechna vlákna?

Run() je metoda rozhraní Runnable, kterou musí implementovat všechna vlákna.


82) Chci řídit databázová připojení ve svém programu a chci, aby pouze jedno vlákno bylo schopné vytvořit připojení k databázi najednou. Jak mohu implementovat tuto logiku?

Odpověď: To lze implementovat pomocí konceptu synchronizace. Kód související s databází lze umístit do metody, která hs synchronizován klíčové slovo, aby k němu mělo v daný okamžik přístup pouze jedno vlákno.


83) Jak může programátor ručně vyvolat výjimku?

Chcete-li ručně vyvolat výjimku v bloku kódu, hod se používá klíčové slovo. Poté je tato výjimka zachycena a zpracována v bloku catch.

public void topMethod() {
    try {
        excMethod();
    } catch (ManualException e) {}
}

public void excMethod {
    String name = null;
    if (name == null) {
        throw (new ManualException("Exception thrown manually ");
        }
    }

84) Chci, aby moje třída byla vyvinuta tak, aby žádná jiná třída (ani odvozená třída) nemohla vytvářet její objekty. Jak to mohu udělat?

Pokud konstruktor třídy deklarujeme jako soukromý, nebude přístupný žádné jiné třídě, a proto ho žádná jiná třída nebude moci konkretizovat a vytvoření jejího objektu bude omezeno pouze na ni.


85) Jak se předměty ukládají Java?

V Javě získá každý objekt po vytvoření paměťový prostor z haldy. Když je objekt zničen sběračem odpadků, místo, které mu bylo přiděleno z haldy, je znovu přiděleno na haldu a bude dostupné pro všechny nové objekty.


86) Jak zjistíme skutečnou velikost předmětu na hromadě?

V Javě neexistuje způsob, jak zjistit přesnou velikost objektu na hromadě.


87) Která z následujících tříd bude mít více paměti?

Třída A: Tři metody, čtyři proměnné, žádný objekt

Třída B: Pět metod, tři proměnné, žádný objekt

Před vytvořením objektů není alokována paměť. Protože pro obě třídy nejsou vytvořeny žádné objekty, není pro žádnou třídu alokována žádná paměť na haldě.


88) Co se stane, když výjimka není v programu zpracována?

Pokud není výjimka zpracována v programu pomocí bloků try catch, program se přeruší a po příkazu, který způsobil vyvolání výjimky, se neprovede žádný příkaz.


89) Ve třídě mám definováno více konstruktorů. Je možné zavolat konstruktor z těla jiného konstruktoru?

Pokud má třída více konstruktorů, je možné volat jeden konstruktor z těla jiného pomocí tento().


90) Co znamená anonymní třída?

Anonymní třída je třída definovaná bez jakéhokoli jména v jediném řádku kódu pomocí klíčového slova new.

Například v níže uvedeném kódu jsme definovali anonymní třídu v jednom řádku kódu:

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

91) Existuje způsob, jak zvětšit velikost pole po jeho deklaraci?

Pole jsou statická a jakmile určíme jejich velikost, nemůžeme ji změnit. Pokud chceme používat takové kolekce, kde můžeme vyžadovat změnu velikosti (počet položek), měli bychom preferovat vektor před polem.


92) Pokud má aplikace více tříd, je v pořádku mít hlavní metodu ve více než jedné třídě?

Pokud existuje hlavní metoda ve více než jedné třídě v java aplikaci, nezpůsobí to žádný problém, protože vstupním bodem pro jakoukoli aplikaci bude konkrétní třída a kód bude začínat od hlavní metody pouze této konkrétní třídy.


93) Chci uchovat data objektů pro pozdější použití. Jaký je nejlepší přístup k tomu?

Nejlepší způsob, jak zachovat data pro budoucí použití, je použít koncept serializace.


94) V čem je místní třída Java?

In Java, pokud definujeme novou třídu uvnitř konkrétního bloku, nazývá se místní třída. Taková třída má lokální rozsah a není použitelná mimo blok, kde je definována.


95) Řetězec a strunaBuffer oba představují objekty typu String. Můžeme porovnat String a StringBuffer in Java?

I když String a StringBuffer oba představují objekty typu String, nemůžeme je mezi sebou porovnávat a pokud je zkusíme porovnat, dostaneme chybu.


96) Které API poskytuje Java pro operace na množině objektů?

Java poskytuje Collection API, které poskytuje mnoho užitečných metod, které lze aplikovat na sadu objektů. Některé z důležitých tříd poskytovaných Collection API zahrnují ArrayList, HashMap, TreeSet a TreeMap.


97) Můžeme přetypovat jakýkoli jiný typ na booleovský typ pomocí přetypování?

Ne, nemůžeme přetypovat žádný jiný primitivní typ na booleovský datový typ ani nemůžeme přetypovat booleovský datový typ na žádný jiný primitivní datový typ.


98) Můžeme při přepsání použít různé návratové typy pro metody?

Základním požadavkem přednostní metody v Java je, že přepsaná metoda by měla mít stejný název a parametry. Ale metodu lze přepsat jiným návratovým typem, pokud nový návratový typ rozšiřuje původní.

Například metoda vrací typ odkazu.

Class B extends A {

    A method(int x) {

        //original method

    }

    B method(int x) {

        //overridden method

    }

}

99) Jaká je základní třída všech tříd výjimek?

In Java, Java.lang.Throwable je nadtřídou všech tříd výjimek a všechny třídy výjimek jsou odvozeny od této základní třídy.


100) Jaké je pořadí volání konstruktorů při dědění?

V případě dědičnosti, když je vytvořen nový objekt odvozené třídy, je nejprve vyvolán konstruktor nadtřídy a poté konstruktor odvozené třídy.

Připravte se na pracovní pohovor!!! Projít Java konzultace abychom byli lépe připraveni.

To bylo podrobné Java Mock Test Quiz vám pomůže zbavit se pochybností Java otázky na pohovor a také vám pomůže rozlousknout pohovor.

Tyto Java si Java 8 otázek k rozhovoru také pomůže ve vašem viva (ústních)