Top 367 Dumande Core Intervista Java per u 2021

Questu articulu vi guiderà à preparalli per affrontà e dumande di intervista in relazione à Core Java. Copre tutti i temi cum'è Basi di Java, cuncetti OOP, String handling, multithreading, Collections, etc.

Table di cuntinutu

1. Chì ghjè Java?

Java hè u linguaghju di prugrammazione più simplice è più cumunimenti utilizatu chì hè basatu annantu à u cuncettu di prugrammazione orientata à l'ughjettu. Supporta multipiattaforma, multithreading è hè indipendente da a piattaforma, è robusta. Sun Microsystems hà sviluppatu Java in l'annu 1995 è dopu acquistatu da Oracle Systems.

2. Chì sò e caratteristiche di u linguaghju di prugrammazione Java?

Java hà e caratteristiche sottu:

  • Simple: Java hè faciule da amparà è ùn richiede micca cuncetti di prugrammazione cumplessi cum'è puntatori o eredità multipla.
  • Indipendente da a piattaforma: Java ùn hè micca dipendente da alcuna piattaforma postu chì u codice chì compilemu è esecutemu hè u listessu in qualsiasi sistema upirativu. Questu significa chì pudemu compilà u codice in un sistema è eseguitu in un altru.
  • Orientatu à l'ughjettu: Java utilizeghja una cullizzioni d'oggetti di una classa per eseguisce qualsiasi operazione è seguita a metodulugia orientata à l'ughjettu.
  • uttèniri: Hè altamente sicuru postu chì ùn produce micca difetti di sicurità cum'è u overflow di stack, ecc. Ghjè perchè ùn usa micca u cuncettu di puntatori.
  • Robustu: Java hè robustu è affidabile postu chì identifica errori in una fase iniziale è evita prublemi cume a raccolta di rifiuti, l'allocazione di memoria, manipulazione d'eccezzioni, ecc
  • Multithread: Supporta u cuncettu multithreading chì significa chì pudemu eseguisce 2 o prugrammi simultaneamente è cusì utilizendu CPU à u massimu.
  • Alte prestazioni: Java utilizza un compilatore Just-in-time è furnisce dunque prestazioni elevate.
  • Distribuitu: Java sustene a prugrammazione distribuita chì significa chì pudemu distribuisce prugrammi java in più di 1 sistema chì hè cunnessu per internet. Pudemu aduprà caratteristiche cum'è EJB (Enterprise Java Bean) è RMI (Invocazione à Metudu Remotu) in Java per supportà e funzioni distribuite.
  • Dinamica: Java hè più dinamicu quandu paragunemu à altri linguaggi di prugrammazione cum'è C o C ++. Hè perchè pò purtà una grande quantità di informazioni nantu à u tempu di esecuzione chì pudemu aduprà per verificà l'accessu à l'oggettu di runtime.

3. Chì ci hè a differenza trà C ++ è Java?

Metudu di ParagoneC ++Java
Piattaforma IndepenedenceHè dipende da a piattaforma. Deve esse compilatu nantu à ogni piattaformaHè indipendente da a piattaforma. Pò esse compilatu in una piattaforma è eseguitu in un'altra
Compilatore è InterpretuHè una lingua compilataHè una lingua compilata è interpretata
PortabbilitàÙn hè micca purtabileHè purtabile postu chì l'uscita bytecode pò esse eseguita nantu à qualsiasi sistema
Gestione di a memoriaA gestione di a memoria hè manualeA gestione di a memoria hè cuntrullata da u sistema
Eredità MultiplaSupporta parechje ereditàÙn supporta micca una eredità multipla. Ma pò esse uttenutu per l'interfaccia
SurcarguSupporta u sovraccaricu di l'operatoreÙn supporta micca u sovraccaricu di l'operatore
Parolla chiave virtualeUtilizza una parola chiave virtuale per annullà a funzioneÙn aduprate micca una parola chiave virtuale. Per automaticamente tutti i metudi non statichi sò annullati o virtuali
PointersUtilizza u cuncettu di indicatoriÙn hà micca cuncettu di puntatori
Cumentu di documentazioneÙn ci hè micca sustegnu per i cumenti di documentazioneHà un supportu integratu per i cumenti di documentazione (/ ** ... * /
Supportu di filuC ++ ùn hà micca un mecanismu di filu integratu è usa biblioteche di terze partiJava hà un supportu di filu integratu cù a classe "Filu"
Chjama per valore è Chjama per riferenzaSupporta sia Chjama per valore sia Chjama per RiferimentuSupporta solu chjamate per valore
Struttura è UnioneSupporta sia a struttura sia l'unioneÙn sustene micca e Strutture è l'unione
Operatore >>> senza dirittu di shift shiftÙn supporta micca un operatore di turnu dirittu senza firmaSupporta un operatore di turnu dirittu senza firma
Gerarchia di e radicheÙn ci hè micca una gerarchia radicaleHà una sola gerarchia radicale chì hè java.lang.Object
Meccanismu di inputUtilizza Cin è Cout per operazioni I / OUtilizza System.in è System.out per operazioni I / O.
Andà dichjarazioneSupporta a dichjarazione VaiÙn supporta micca a dichjarazione Vai
Ambitu di dati è funzioniDati è funzioni ponu esse fora di a classeI dati è e funzioni devenu esse presenti in a classe
Gestione di l'ughjettuUtilizza novu è sguassà per gestisce l'uggettiUtilizza a raccolta automatica di rifiuti per gestisce l'oggetti
TravauxAdupratu per a prugrammazione di u sistemaAdupratu per a prugrammazione di l'applicazioni cum'è Windows, Internet, Internet è applicazioni mobili.
TypeSia u linguaghju di prugrammazione procedurale sia l'ughjettuHè solu un linguaghju di prugrammazione orientatu à l'ughjettu
ConceptoScrivite una volta compilate in ogni locuScrivite una volta corse in ogni locu in ogni locu
Operatore di risoluzione di scopu (: :)Supporta l'operatore di risoluzione di scopuÙn supporta micca l'operatore di risoluzione di scopu
BibliotecheSupporta funzionalità di bassu livelluSupporta funzionalità di alto livello
DistruttoreSupporta i distruttoriÙn supporta micca i distruttori
Manipulazione di l'errore di runtimeU prugrammatore hè incaricatu di trattà errori di runtime è eccezioniJVM hè rispunsevule per errori di runtime è eccezioni

4. Cosa hè a Macchina Virtuale Java (JVM)?

FMV or Macchina Virtuale Java hè una macchina virtuale chì esegue u prugramma java. Esegue u bytecode generatu da u compilatore mentre compila u prugramma. JVM agisce cum'è un mutore in esecuzione chì esegue u prugramma chjamendu u metudu principale. L'output chì a JVM produce dopu esecutà u bytecode hè uguale in tutti i sistemi operativi. Hè per quessa chì Java hè indipendente da a piattaforma.

5. Chì significanu e terminulugie JDK, è JRE?

JDK i mezi Kit di Sviluppu Java chì cuntene parechji cumpunenti cum'è JRE, compilatori, diversi strumenti cum'è JavaDoc, JavaDebugger, biblioteche, ecc. Hè ubligatoriu di installà u JDK in i nostri sistemi per compilà è eseguisce qualsiasi prugrammi java.

JRE i mezi Ambiente Java Runtime chì face parte di u JDK chì hè adupratu per eseguisce qualsiasi prugramma java. Include ancu plugins di navigatore, support di applets è JVM.

6. Chì sò i sfarenti tippi di spazii di memoria assignati da JVM?

JVM cuntene 5 sfarenti spazii di memoria cum'è datu quì sottu:

  • Classe (Metudu) zona: Memorizza tutti i dati relativi à a classe cum'è variabili, metudi, piscina costante di runtime.
  • Mucchio: Alloca memoria per l'uggetti durante u runtime.
  • pila: Memorizza u risultatu di l'esecuzione di u metudu cum'è restituisce u valore o valore adupratu per a cunnessione dinamica. Stack guarda ancu frames è ogni filu hà una pila JVM privata.
  • Registru di cuntatore di prugrammi: Contene l'indirizzu di l'istruzzioni JVM di u metudu.
  • Stack di metudu nativu: Contene tutti i metudi nativi chì sò aduprati in l'applicazione.

7. Cosa hè un compilatore JIT?

HIT ferma ghjustu à tempu. Hè un compilatore chì face parte di u JRE. Cumpila tuttu u bytecode chì hà una funzionalità simile inseme è riduce cusì u tempu di compilazione. Dunque u compilatore JIT sustene l'ottimisazione di e prestazioni.

8. Chì hè una piattaforma?

Una piattaforma hè una cumbinazione di un ambiente hardware è software chì aiuta in l'esecuzione di u software. Java hà u so propiu ambiente chjamatu JRE (Java Runtime Environment)

9. Chì ci hè a differenza trà una piattaforma Java è altre piattaforme?

  • Java hè una piattaforma basata nantu à u software mentre chì altri ponu esse software-hardware o solu basatu nantu à hardware.
  • Java corre nantu à l'altre piattaforme hardware mentre altri ponu funzionà solu nantu à cumpunenti basati in hardware.
  • Pudemu gestisce u codice Java in qualsiasi sistema operativu mentre altre piattaforme ùn anu micca sta capacità.
  • Java hà u so propiu ambiente (JRE) è JVM mentre chì altre piattaforme ùn anu micca sta funzionalità.

10. Chì significa "Scrivite una volta è Corri in ogni locu"?

Java hè un linguaghju di prugrammazione indipendente da a piattaforma induve pudemu scrive u codice Java è compilà in una piattaforma è esecutalla in un'altra piattaforma. Pudemu eseguisce stu prugramma java nantu à qualsiasi sistema operativu postu chì l'uscita di a compilazione chì hè u bytecode ùn hè micca specifica per a piattaforma.

11. Cosa hè un caricatore di classe?

Java classloader face parte di u JRE(Java Runtime Environment) chì carica i fugliali di classe in FMV(Macchina Virtuale Java) ogni volta chì hè necessariu da l'applicazione. Un classloader unicu ùn carica micca tutte e classi. Basatu nantu à u tippu di a classe, u caricatore di classe currispondente carica i file di classe ogni volta chì hè necessariu.

Quì sottu sò i sfarenti tippi di classloaders Java:

  • Caricatore di classe Bootstrap: Questu hè u primu classloader chì carica tutti i fugliali da u locu rt.jar. Hè ancu chjamatu u primordiale class loader chì hè u genitore di tutti l'altri classloaders.
  • Classe di estensione: Questa hè a classa figliola di u caricatore di classe bootstrap chì carica l'estensioni di e classi java core da u repertoriu Extensions jre / lib / ext.
  • Caricatore di sistema: Hè ancu chjamatu cum'è u Candidatura class loader chì carica i tipi di applicazione classi o file di classi da u CLASSPATH variabile. Hè a sottoclasse di u caricatore di classe Extension.

12. Un nome di fugliale java pò esse salvatu cum'è un fugliale .java vacante?

Ié, pudemu salvà un schedariu java senza nome di schedariu aduprendu solu .java. Per compilà, usamu u cumandamentu javac .java , è per eseguisce, usamu u cumandimu java classname.

13. Sò cancellate, nulle, prossime, principali, è esce parolle chjave in Java?

Iè, sguassà, null, uscita, prossimu, principale è null sò e parolle chjave in lingua di prugrammazione Java.

14. Quandu ùn passemu micca valori in l'argumenti String array di u metudu principale, u valore tene viotu o nulu?

U valore serà vacante ma micca nullu quandu ùn passemu micca valori à l'argumenti String array in u metudu principale.

public static void main(String[] args)

15. Chì succede quandu scrivemu un voitu publicu staticu invece di un voitu publicu staticu per u metudu principale?

Cumpila è esegue cù successu postu chì l'ordine ùn importa micca è entrambi sò curretti.

16. Chì hè u valore predefinitu di una variabile lucale?

E variabili lucali ùn anu micca valore predefinitu postu chì sò visibili solu in u metudu induve hè dichjaratu. Duvemu inizializà a variabile lucale prima di usalla altrimente lancerà un errore di compilazione.

17. Chì sò i sfarenti tippi di specificatori d'accessu in Java?

Java hà 4 diversi tipi di specificatori d'accessu:

  • publicu: Hè visibile per ogni classe in ogni pacchettu. Pudemu dichjarà un tipu d'accessu publicu per classe, variabile, o metudu.
  • prutettu: Hè accessibile in ogni classa di u listessu pacchettu o in a sottuclasse di a classe induve hè dichjaratu. Per accede fora, pudemu rializà per mezu di l'eredità.
  • predefinitu: L'ambitu hè in u pacchettu è ùn richiede alcuna parola chiave per specificà.
  • privatu: Si pò accede solu in a listessa classa.

Modificatori d'Accessu JavaPin

Pudete riferisce Modificatore d'accessu Java tutoriale per più dettagli.

18. Chì ghjè l'usu di metudi statichi è variabili?

Quandu dichjaremu una variabile o un metudu aduprendu u static keyword, diventa un metudu staticu o variabile statica. Questu significa chì appartene à una classe è micca à l'ughjettu. In altre parolle, ùn avemu micca bisognu di creà un oggettu per accede à un metudu staticu o una variabile. Hè spartutu trà tutti l'uggetti in una classe. Per esempiu, tutti i studienti in una scola utilizanu u listessu nome di scola. Dunque pudemu dichjarà u nome di a scola cum'è una variabile statica. Pudete riferisce à Parolla chjave statica Java per più infurmazioni nantu à questu tema.

19. Chì sò i vantaghji di aduprà i pacchetti in Java?

Praticà pacchetti in Java furnisce i seguenti vantaghji:

  • Evita u nome di cunflitti di classi. Questu significa chì pudemu aduprà i stessi nomi di classe in 2 pacchetti diversi.
  • Fornisce a riutilisazione accede à una classe da 1 pacchettu in un altru.
  • Manutenzione faciule postu chì e classi seranu urganizate
  • Offre una prutezzione di accessu per e classi prutette è predefinite
  • Aiuta à l'incapsulamentu o à piattà i dati.

20. Chì hè u risultatu di u prugramma Java chì seguita?

public class StringExample {

  public static void main(String[] args) {
    System.out.println(90 + 10 + "Java");
    System.out.println("Java" + 15 + 15);

  }

}
100Java
Java1515

In u primu casu, prima aghjunghje i 2 numeri interi è dopu cuncatenate l'output cù u valore di stringa. Hè per quessa risultati "100Java".

In u secondu casu, concatena u valore di a stringa cù i numeri interi invece di aghjunghje prima i numeri interi. Hè per quessa risultati "Java1515". Ghjè perchè postu chì tutti l'operatori sò + seguita di manca à diritta per a cuncatenazione.

21. Chì hè a surtita di u còdice Java sottu?

public class StringExample {

  public static void main(String[] args) {
          System.out.println(10 * 10 + "Java");
    System.out.println("Java" + 10 * 10);
    
  }

}
100Java
Java100

In u primu casu, l'output hè "100Java" postu chì l'operatore di multiplicazione precede l'operatore d'addizione. Hè dunque prima multiplica 10 è 10 è poi concatena u pruduttu cù a stringa.

A listessa logica vale ancu per u secondu casu. Postu chì l'operatore di multiplicazione precede l'operatore d'addizione, multiplica i 2 valori è poi cuncateneghja cù a stringa. Da quì u risultatu "Java 100".

22. Chì hè a surtita di u còdice Java sottu?

public class Sample {

  public static void main(String[] args) {
    for(int i=0;5;i++)
      System.out.println("Java");
  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  Type mismatch: cannot convert from int to boolean

  at Sample.main(Sample.java:4)

Lancia un errore di compilazione postu chì u secondu argumentu in for loop deve esse una cundizione booleana. In u codice sopra, hè un valore interu invece di una espressione booleana.

23. Cosa hè a prugrammazione orientata à l'ughjettu?

A prugrammazione orientata à l'ughjetti utilizza oggetti chì cuntenenu metudi è variabili. Ogni classa cuntene oggetti chì sò casi di classe aduprendu chì pudemu accede à metudi o dati. Prumove a riutilisabilità è migliora a leghjibilità di u codice è dunque risultati in un sviluppu di produttu più veloce. Java seguita u cuncettu di prugrammazione orientatu à l'ughjettu.

Quì sottu sò e caratteristiche di a prugrammazione orientata à l'ughjettu:

  • Contene metudi cù dati chì pudemu aduprà cun l'oggettu.
  • Supporta l'incapsulazione è a funzionalità di astrazione chì nasconde i dati à l'utilizatori.
  • Implementa l'eredità è u polimorfisimu è dunque aumentanu a riutilisazione di u codice.

24. Chì hè un ogettu?

Un oggettu raprisenta una entità di a vita vera chì hè un esempiu di una classe. Contene tramindui données e metudi(cumpurtamenti). L'uggetti anu principalmente 2 caratteristiche di statu e cumpurtamenta. U statu ùn hè altru chè un'identità di l'ughjettu (dati) è u cumpurtamentu descrive a funzione (metudu) di l'ughjettu. Pudemu creà un ughjettu in Java cù u new parolla chjave. Un oggettu hè una di e caratteristiche impurtanti di l'OOP.

25. Chì diffarenza ci hè trà a prugrammazione orientata à l'ughjettu è u linguaghju di prugrammazione basatu à l'ughjettu?

Programmazione orientata à l'oggettoProgramazione basata nantu à l'ughjettu
Utilizza tutti i cuncetti di OOP.Ùn aduprate micca pochi cuncetti OOPs cum'è eredità, polimorfisimu
Ùn hà micca ogetti integratiHà oggetti integrati cum'è ughjettu windows in JavaScript
Es: Java, C, C ++, eccEs: JavaScript, VBScript, ecc

26. Chì serà u valore iniziale di un riferimentu d'oggettu chì hè definitu cum'è una variabile d'istanza?

Tutte e referenze d'ogetti averanu un valore nulu per difettu in Java durante l'inizializazione.

27. Chì hè un custruttore?

A custruttore in Java hè un metudu speciale chì hè eseguitu durante a creazione d'istanza di una classe. Ogni volta chì creemu un oggettu per a classe, u compilatore java chjama implicitamente u costruttore predefinitu di quella classe. Pudemu aduprà u costruttore per inizializà argumenti per l'ughjettu chì usamu in a classe. U costruttore duverebbe avè u listessu nome cum'è u so nome di classe.

28. Chì sò i sfarenti tippi di custruttori in Java?

Ci hè 3 diversi tipi di costruttori in Java:

  • Costruttore predefinitu: Quandu ùn creemu micca un costruttore, u compilatore Java crea internamente un costruttore predefinitu chì hà un corpu viotu. Stu costruttore ùn serà micca visibile per noi.
  • Nisun constructore d'argumenti: Stu costruttore ùn hà micca argumenti o parametri ma pò cuntene codice in u costruttore.
  • Costruttore parametrizzatu: Contene argumenti o parametri chì sò aduprati per inizializà o assignà valori à e variabili.

29. Chì ghjè l'usu di un costruttore predefinitu?

U scopu principale di un costruttore predefinitu hè di assignà valori predefiniti à l'oggetti. U compilatore Java crea internamente un costruttore predefinitu se ùn u creemu micca. Stu codice ùn serà micca visibile per noi. U valore predefinitu per u valore interu hè 0 è per String hè nulu.

Custruttore in JavaPin

30. Un costruttore ritorna qualchì valore?

U costruttore restituisce implicitamente l'istanza di classe attuale. Ma ùn pudemu micca aduprà esplicitamente un tipu di ritornu cun un costruttore.

31. U costruttore hè ereditatu?

U costruttore ùn sustene micca l'eredità è ùn pò micca esse ereditatu.

32. Pudemu creà un costruttore finale?

No, ùn pudemu micca creà un costruttore cum'è finale.

33. Pudemu sovraccaricà un costruttore?

Ié, pudemu sovraccaricà un custruttore basatu annantu à u numeru di argumenti o di tippu di parametri. Quì sottu hè un esempiu simplice di sovraccaricu di custruttore. U primu constructore ùn hà micca argumenti. U secondu hà 2 argumenti è u terzu hà solu 1 argumentu. Basatu nantu à u parametru, chjama u costruttore currispundente.

public class Employee {
  int empId;
  String empName;
  String empRole;
  
  public Employee() {
    this.empId = 100;
  }
  
  public Employee(int id, String name) {
    this.empId = id;
    this.empName = name;
  }
  
  public Employee(String designation) {
    this.empRole = designation;
  }
  
  public static void main(String[] args) {
    Employee e1 = new Employee();
    Employee e2 = new Employee(102,"Rakesh");
    Employee e3 = new Employee("Java Developer");
    Employee e4 = new Employee("Tester");
    System.out.println("Default value of Empid: " + e1.empId);
    System.out.println("Employee id: " + e2.empId + " " + "Employee Name:" + e2.empName);
    System.out.println("Employee Role: " + e3.empRole + " and " + e4.empRole);
    
  }
}
Default value of Empid: 100
Employee id: 102 Employee Name:Rakesh
Employee Role: Java Developer and Tester

34. Cosa hè un costruttore di copia in Java?

Ùn ci hè micca un costruttore di copia cum'è tale in Java ma pudemu copià i valori di un oggettu à l'altru aduprendu u costruttore chì hè simile à un costruttore di copia in C ++. Ci sò sfarenti maneri di cupià i valori:

  • Usendu u costruttore
  • Utilizendu u metudu clone ()
  • Assegnazione di valori di un oggettu à l'altru.

Quì sottu hè un esempiu di custruttore di copia induve passemu l'ughjettu cum'è parametru à un costruttore è da quì pudemu copià i valori da un oggettu à l'altru.

public class Employee {
  int empId;
  String empName;
  public Employee(int id, String name) {
    this.empId = id;
    this.empName = name;
  }
  
   //Copy constructor
  public Employee(Employee emp) {
    empId = emp.empId;
    empName = emp.empName;
  }
  
  public void displayDetails() {
    System.out.println("Employee ID:" + empId);
    System.out.println("Employee Name:" + empName);
  }
  
  public static void main(String[] args) {
    Employee e1 = new Employee(102,"Dev");
    //Create a copy of another object
    Employee e2 = new Employee(e1);
    e1.displayDetails();
    e2.displayDetails();
  }
}
Employee ID:102
Employee Name:Dev
Employee ID:102
Employee Name:Dev

35. Chì sò e differenze trà un costruttore è un metudu?

Ancu se chjamemu un costruttore cum'è un metudu speciale, ci sò parechje differenze trà un costruttore è un metudu.

Custruttore JavaMetudu Java
Inizializza un statu di l'ughjettuDescrive u cumpurtamentu di l'ughjettu
Ùn hà micca tippu di ritornuHà tippu di ritornu
Hè invucatu implicitamenteHè invucatu esplicitamente
U nome di u costruttore deve esse uguale à u nome di a classeU nome di u metudu pò esse qualcosa indipendentemente da u nome di a classe

36. Chì hè u risultatu di u còdice seguente?

public class Sample {
  
  Sample(int a) {
    System.out.println("Value of a: " + a);
  }
  
  Sample(float a) {
    System.out.println("Value of a: " + a);
  }

  public static void main(String[] args) {
    byte x = 5;
    Sample s = new Sample(5);

  }

}
Value of a: 5

In u còdice sopra, avemu 2 costruttori, unu cun argumentu tip int è l'altru cù un tipu di dati float. Durante a creazione di l'ughjettu, passemu un valore di byte. In questu casu, invoca u primu costruttore di tippu interu cume u tippu byte si prumove in un tippu interu.

37. Chì hè u risultatu di u còdice seguente?

class Result {
  int a;
  String s;
}
public class Demo {

  public static void main(String[] args) {
    Result r = new Result();
    System.out.println(r.a);
    System.out.println(r.s);

  }

}
0
null

Avemu 2 variabili di tipo di dati integer è String. Postu chì ùn ci hè micca costruttore, a JVM chjama internamente u costruttore predefinitu è ​​initializza queste variabili cun un valore predefinitu chì hè 0 è nulu rispettivamente.

38. Chì hè u risultatu di u codice sottu?

class Result {
  int a;
  String s;
  
  Result(int a, String s) {
    this.a = a;
    this.s = s;
  }
}
public class Demo {

  public static void main(String[] args) {
    Result r = new Result();
    System.out.println(r.a);
    System.out.println(r.s);

  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  The constructor Result() is undefined

  at Demo.main(Demo.java:13)

In questu scenariu, avemu un errore di compilazione. Questu hè chì quandu definemu qualsiasi costruttore, a JVM ùn chjama micca internamente u costruttore predefinitu. Dunque se definiscenu un costruttore, avemu bisognu di creà l'ughjettu aduprendu quellu costruttore, altrimenti resulterà in un errore di compilazione.

39. Cosa hè una variabile statica?

Quandu dichjaremu una variabile cù a static keyword, a chjamemu a variabile statica. Quessi sò ancu chjamati variabili di classe chì significa chì ùn hè micca specificu per qualsiasi oggettu è ùn richiede alcun oggettu per accede à e variabili statiche. Hè adupratu principalmente per gestisce a memoria in modu efficiente postu chì attribuisce memoria solu una volta (area di classe) per variabili statiche chì accadenu quandu a classe carica. Pudemu aduprà una variabile statica quandu vulemu chì u listessu valore sia spartutu trà diversi oggetti o istanze di una classe. Es: nome di a scola, nome di l'università, nome di a sucietà, ecc

40. Cosa hè un metudu staticu?

Quandu dichjaremu un metudu aduprendu u static keyword, diventa un metudu staticu. Pudemu accede direttamente à i metudi statichi è e so variabili senza aduprà l'ughjettu. Questi metudi appartenenu à una classe. Ùn pudemu micca chjamà un metudu non staticu o una variabile d'istanza da un metudu staticu postu chì lancerà un errore di compilazione. I metudi statichi ponu esse aduprati solu per inizializà variabili statiche è micca variabili d'istanza (oggettu).

41. Chì sò e restrizioni à aduprà un metudu staticu?

  • Ùn pudemu micca accede à membri micca stati in un metudu staticu
  • Ùn pò micca chjamà metudi non statichi da un metudu staticu
  • Ùn pudemu micca aduprà Perello parolla chjave in un metudu staticu

42. Perchè dichjaremu u metudu principale cum'è staticu?

Dichjaremu u metudu principale cum'è staticu postu chì ùn richiede alcun oggettu è carica i metudi durante a carica di a classe. Inoltre, u metudu principale hè u puntu d'entrata per qualsiasi esecuzione in Java

43. Pudemu annullà i metudi statichi?

No, ùn pudemu micca annullà i metudi statichi è resulterà in errore di compilazione.

44. Cosa hè un bloccu staticu?

Quandu un bloccu cuntene u nome cum'è keyword java static, u chjamemu un bloccu staticu. Adupremu u bloccu staticu quandu vulemu inizializà qualsiasi membri statichi mentre carichi a classe. Prima esegue stu bloccu staticu prima di chjamà u metudu principale.

public class StaticBlockExample {
  static int i;
  static {
    System.out.println("Inside the static block");
    i = 10;
  }
  public static void main(String[] args) {
    System.out.println("Inside the main method");
    System.out.println("Value of i: " + i);
  }
}
Inside the static block
Inside the main method
Value of i: 10

45. Hè pussibule di eseguisce un prugramma java senza u metudu principale?

Pudemu eseguisce un prugramma java senza u metudu principale aduprendu u bloccu staticu. Un bloccu staticu hè eseguitu prima di u metudu principale è quandu a classe carica. Ma se ùn avemu micca un bloccu staticu, allora u compilatore cercherà u metudu main () è lancia errore di compilazione s'ellu ùn hè micca truvatu.

Nota: Questu ùn hè micca pussibule per a versione Java 7.

46. ​​Chì succede quandu definimu u metudu principale senza una parola chiave statica?

U codice java si compila cù successu ma quantunque, lancerà "NoSuchMethodError".

47. Chì differenza hè trà u metudu staticu (di classe) è u metudu di l'istanza?

Metudu StaticuMetudu di istanza
A dichjarazione di metudu cuntene a parolla chjave staticaA dichjarazione di metudu ùn hà micca una parola chiave statica
Ùn richiede micca un oggettu per accede à u metudu staticuL'ughjettu hè necessariu per accede à u metudu di l'istanza
Ùn pudemu micca accede à metudi non statichi o variabili in un metudu staticuPudemu accede à i membri stati è non statici in un metudu di istanza
U metudu staticu appartene à a classe. Dunque hè ancu chjamatu metodo di classeI metudi di istanza appartenenu à l'oggettu.

48. Pudemu creà un costruttore staticu?

Ùn pudemu micca fà un costruttore static postu chì avemu bisognu d'ogetti per invucà un custruttore. Static ùn hà micca bisognu d'ogetti, dunque lancerà un errore di compilazione cum'è "Modificatore d'accessu illegale".

49. Pudemu fà metudi astratti cum'è statichi?

Innò, ùn pudemu micca fà metudi astratti cum'è statichi perchè ùn pudemu micca annullà i metudi statichi. Avemu bisognu di annullà i metudi astratti per furnisce a so implementazione o funzionalità in a classe chì allarga a classe astratta.

50. Pudemu dichjarà metudi statichi è variabili statichi in una classa astratta?

Pudemu dichjarà metudi statichi è variabili statichi in una classa astratta perchè ùn avemu bisognu d'oghjettu per accede. Pudemu accede direttamente da a sottuclasse cù u nome di a classa astratta.

51. Chì hè sta parolla chjave in Java?

In Java, sta parolla chjave si riferisce à l'istanza attuale o variabile in un metudu o un costruttore. Hè chjamatu cum'è una variabile di riferimentu. U principale l'utilizanu per distingue trà a variabile d'istanza è a variabile lucale. Questu accade principalmente quandu usamu u listessu nome di variabile per u parametru in un costruttore è u listessu nome per a variabile di istanza.

52. Chì sò l'usi di this keyword in Java?

L'ughjettivu principale di aduprà u java thisa parolla chjave hè di distingue trà a variabile d'istanza è a variabile lucale. Di seguito sò altri usi diversi:

  • Per riferisce à a variabile d'istanza di classe attuale
  • Invoca implicitu u metudu di a classa attuale
  • Per invucà u costruttore di classe attuale
  • Passà cum'è un argumentu in u metudu chjamà
  • Passà cum'è un argumentu in a chjamata di costruttore
  • Ritorna l'istanza di classe attuale da u metudu

53. Hè pussibule assignà qualsiasi riferenza à this variabile?

Ùn pudemu micca assignà alcun valore di riferimentu à u java this keyword perchè per difettu si riferisce à l'istanza di classe attuale. Se pruvemu à assignà un valore, lancerà un errore di compilazione.

public class SampleTest {

  public SampleTest()
  {
    this = 5;
  }
  public static void main(String[] args) {
    SampleTest s = new SampleTest();

  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  The left-hand side of an assignment must be a variable

54. Pudemu aduprà sta parolla chjave per riferisce à variabili statichi?

Pudemu aduprà u java this keyword per riferite à u static variàbili è ùn lancerà alcun errore. Tuttavia, ùn hè micca a pratica migliore per fà cusì postu chì e variabili statiche ponu esse accessibili direttamente è ùn necessitanu alcun oggettu o variabile di riferimentu.

55. Cumu uttene a catena di costruttori aduprendu this parolla chjave?

Usemu u java sta parolla chjave per invucà un costruttore principalmente per implementà a catena di costruttori chì chjama un costruttore in un altru costruttore. Questu aiuta à a riutilisazione di u codice. Basatu nantu à u tippu di costruttore, pudemu passà i parametri. Chjamà un costruttore aduprendu u java issu a parolla chjave deve sempre esse a prima dichjarazione, altrimente lancerà un errore di compilazione.

Pudemu chjamà un costruttore aduprendu 2 modi diversi:

questu () - costruttore predefinitu

questu (parametru) - constructore parametrizzatu

Pudete riferisce ccà per sapenne di più.

56. Chì hè u vantaghju di passà this à un metudu invece di l'ogettu di classe attuale?

Questu si riferisce ancu à l'istanza di classe attuale chì hè simile à l'ughjettu attuale. Ma hà alcune differenze cum'è quì sottu:

  • This hè una variabile finale è dunque ùn pudemu cambià alcun valore ma questu ùn hè micca u casu cù l'ughjettu attuale.
  • Pò esse ancu adupratu in un bloccu sincronizatu

57. Chì hè l'eredità?

L'eredi hè una caratteristica impurtante di l'OOP. Hè una caratteristica chì aiuta à riutilizà i metudi è e variabili di una classe in un'altra classe. In altre parolle, permette à una nova classa di eredite e pruprietà è e funzioni di una classa esistente senza riscrive u codice. Implementa u genitori-figliolu rapportu. Ciò significa chì a classe zitellu pò riutilizà direttamente e variabili è e funzioni di a classe parent cù i so propri metudi è variabili.

58. Chì sò i sfarenti tippi di eredità in Java?

Quì sottu sò i diversi tipi di eredità in Java:

  • Unica eredità
  • Eredità à più livelli
  • Eredità ibrida
  • Eredità gerarchica
  • Multi eredità - Micca supportatu aduprendu a classa Java ma pò esse uttenutu per mezu di un'interfaccia.

59. Perchè adupremu l'eredità in Java?

  • Capacità di riutilizà u codice esistente di una classe
  • Supporta u metudu supranendu
  • Permette à chjamà metudi di superclasse in i metudi di una sottuclasse aduprendu u super keyword.
  • Ùn permette micca di eredità a classe finale o annullà i metudi finali.
  • Supporta più eredità cù interfacce

60. Chì classa hè a superclasse per tutte e classi?

A classe Object hè a superclasse per tutte e classi.

61. Perchè Java ùn sustene micca parechje eredità?

Java ùn sustene micca parechje eredità per via di a cumplessità è l'ambiguità chì crea durante l'esekzione. Una eredità multipla significa chì una classe pò allargà più di 1 classe. In altre parolle, una classa zitellu pò avè più di 1 classe parent. Pudemu capisce questu se paragunemu questu cù a vita vera. Hè impussibile per un zitellu avè più di 1 mamma. In u listessu modu, l'eredità in java ùn pò micca avè 1 classe figliolu chì abbia più di 1 genitore.

Per esempiu, se questu era permessu in java, cunsiderate l'esempiu di seguitu. Quandu chjamemu obj.show (), ùn saperà micca à chì metudu di classe chjamà postu chì hè presente in tramindui i classi.

class classA {
  public void show() {
    System.out.println("Class A");
  }
}
class classB {
  public void show() {
    System.out.println("Class B");
  }
}
public class MultipleInheritance extends classA,classB { //Suppose if allowed
  public static void main(String[] args) {
    MultipleInheritance obj = new MultipleInheritance();
    obj.show();
  }
}
Compile-time error

Pudemu implementà parechje eredità cù una interfaccia in Java.

62. Chì hè l'agregazione?

L'aggregazione in Java ci permette di furnisce una riferenza per una classe in un'altra classe. In altre parolle, sustene un una manera rapportu è attrezzi a HAS-A relazione.

Quandu duie classi anu una relazione HAS-A, dicemu chì implementa l'agregazione. Un esempiu megliu chì pudemu pensà hè "L'impiegatu hà una vittura«. Dicemu chì hè unidirezziunale postu chì una vittura ùn pò micca avè un impiegatu è solu un impiegatu pò avè una vittura.

In l'esempiu di seguitu pudete vede chì a classe Impiegatu hà una riferenza à a classe Car. Dunque ci hè aggregazione trà a classe Impiegatu è Car.

class Car {
  String carname;
  String color;
  String regno;
  
  Car(String carname, String color, String regno) {
    this.carname = carname;
    this.color = color;
    this.regno = regno;
  }
  
}
public class Employee {
  
  String empname;
  int empid;
  Car car;
  
  Employee(String empname, int empid, Car car) {
    this.empname = empname;
    this.empid = empid;
    this.car = car;
  }
  public static void main(String[] args) {
    Car car = new Car("Dezire","blue","KA 02 B 5544");
    Employee e = new Employee("Raj",456234,car);
    System.out.println("----------Employee Details:------------");
    System.out.println("Employee Name: " + e.empname);
    System.out.println("Employee ID: " + e.empid);
    System.out.println("----------Employee's car details-------");
    System.out.println("Car Name: " + e.car.carname);
    System.out.println("Car color: " + e.car.color);
    System.out.println("Car Reg No: " + e.car.regno);
  }
}
----------Employee Details:------------
Employee Name: Raj
Employee ID: 456234
----------Employee's car details-------
Car Name: Dezire
Car color: blue
Car Reg No: KA 02 B 5544

63. Chì hè a cumpusizione?

A cumpusizioni denota a appartene à o parte di tipu d'associu. In altre parolle, pudemu dì, un oggettu cuntene o hè cumpostu da un altru oggettu. Questu implementa un forti tipu d'associazione chì significa chì se l'ughjettu internu ùn pò esistere se l'ughjettu esternu principale hè distruttu.

Per esempiu, ùn pudemu micca avè una scola senza studienti. Ciò significa chì una scola ùn pò esiste senza studenti in ella. Dunque stabilisce una composizione trà a scola è i studienti.

64. Chì differenza hè trà l'agregazione è a cumpusizione?

Sans titreAggregazione
Tipu forte di associazioneTipu di associazione debule
Implementa una relazione di parte o di appartenenzaImplementa una relazione
E duie classi sò dipendenti l'una da l'altra.
A classe zitelli ùn pò esiste senza a classe parent
A classa di i zitelli pò esiste in modu indipendente ancu senza a classe parent

65. Perchè Java ùn sustene micca l'usu di i puntatori?

I puntatori si riferenu à l'indirizzu di memoria. Se i usamu in Java, rende micca periculosu è aumenta dinò a cumplessità è ùn ci permette micca di mette in opera l'astrazione. Questu ùn hè micca necessariu per l'OOP d'usu generale postu chì a gestione di a memoria hè curata da a raccolta di rifiuti.

66. Chì hè una super chjave in Java?

Parolla chjave super Java hè un rifirimentu variabile chì usamu in eredità per riferisce à l'oggettu di a classe parente immediata da a classe figliu. Pudemu aduprà a super keyword per accede à a variabile di classe parent, metudu di classe parent, è costruttore di classe parent. Ogni volta chì creemu una istanza di sottoclasse, u compilatore chjama internamente u costruttore di a classe parente aduprendu a super parola chiave ancu se ùn a chjamemu micca esplicitamente.

67. Cumu implementà a catena di costruttori aduprendu a super parola chiave Java?

Pudemu implementà a catena di costruttori chjamendu u costruttore di classe parente da a sottoclasse chì hà argumenti diversi aduprendu a super parola chiave. Hè sempre impurtante di nutà chì a dichjarazione super deve esse a prima dichjarazione in u costruttore di i zitelli. Quandu facemu una chjamata esplicita di custruttore, allora u compilatore ùn face micca un'altra chjamata implicita à a classe parent.

In l'esempiu di seguitu, femu una super chjamata esplicita à u costruttore di a classe parent Forme (nome String) chì hà argumenti da u costruttore di a classe zitellu Square ().

class Shapes {
  Shapes() {
    System.out.println("This is a shape");
  }
  
  Shapes(String name) {
    System.out.println("Shape name is: " + name);
  }
}
public class Square extends Shapes {
  
  Square() {
    super("Square");
    System.out.println("Square constructor");
  }
  public static void main(String[] args) {
    Square s = new Square();
  }
}
Shape name is: Square
Square constructor

68. Chì sò l'usi di a super chjave Java?

  • Accede à a variabile di classe parent
  • Per invucà u metudu di a classe parent
  • Per invucà i costruttori di classi parenti cun è senza argumentu.

69. Chì sò e differenze trà this e super parolla chjave?

sta parolla chjavesuper keyword
Si riferisce à u cuntestu di classe attualeSi riferisce à a classa di basa o à u cuntestu di a classe parent
Principalmente adupratu per distingue trà e variabili lucali è di istanza in un costruttoreHè adupratu per inizializà e variabili di classe di basa in u costruttore di classe derivatu

70. Chì hè u risultatu di u prugramma java sottu?

class College {
  
  College() {
    System.out.println("College Name is BITS Pilani");
  }
}

public class Department extends College {
  public String dept;
  public Department(String deptname) {
    dept = deptname;
  }
  public static void main(String[] args) {
    Department d = new Department("Computer Science");
    System.out.println("Department Name:" + d.dept);
  }
}
College Name is BITS Pilani
Department Name:Computer Science

Quandu una istanza di a sottuclasse hè creata, invoca prima u costruttore di a classe parente aduprendu implicitamente a super parola chiave è poi esegue u costruttore di a classe zitellu.

71. Pudemu aduprà tramindui this e super keyword in un constructore?

Innò, ùn pudemu micca aduprà tramindui e dichjarazioni inseme in u listessu costruttore dapoi this e super deve esse a prima dichjarazione in un costruttore. Se pruvemu à aduprà tramindui, utteneremu un errore di compilazione.

72. Chì hè a clonazione d'ogetti?

A clonazione di l'ughjettu hè u prucessu di creà una copia esatta di l'ughjettu. Utilizza u metudu clone di a classe Object. A classe hà bisognu di implementà l'interfaccia Cloneable per aduprà u metudu di clone altrimenti lancerà CloneNotSupportedException. U metudu clone risparmia più tempu di creà un oggettu aduprendu u new parolla chjave se vulemu una copia esatta di l'ughjettu creatu.

73. Cosa hè a sovraccarica di u metudu?

Quandu ci sò parechji metudi in a listessa classa cù u listessu nome, a chjamemu soprascrivite di metudu. Hè unu di i polimorfisimu staticu tecnica. Identifica quale metudu chjamà durante u tempu di compilazione basatu annantu à i parametri passati. Pudemu implementà a sovraccarica di metudi in 2 modi diversi:

  • Passendu un numeru diversu di parametri
  • Passendu diversi tippi di parametri.

74. Perchè u sovraccaricu di u metudu ùn hè micca pussibule cambiendu u tippu di ritornu?

Java ùn sustene micca u sovraccaricu di metudu cambiendu solu u tippu di ritornu perchè creerà ambiguità è u compilatore ùn saprà micca à chì metudu chjamà.

75. Pudemu sovraccaricà i metudi basta à rende li stati?

Innò, ùn pudemu micca sovraccaricà i metudi facenduli solu statichi. Hè perchè u compilatore torna à lancià un errore dichjarendu chì u metudu hè dighjà definitu.

public class College {
  
  public void getCollegeName() {
    System.out.println("CollegeName is BITS Pilani");
  }
  
//Throws compilation error as duplicate method name
  public static void getCollegeName() {
    System.out.println("CollegeName is BITS Pilani");
  }

}

76. Pudemu sovraccaricà u metudu principale in Java?

Ié, pudemu sovraccaricà u metudu principale in Java. Ma u compilatore Java chjama u metudu principale publicu vacante staticu solu durante a carica di classe. Per eseguisce u metudu principale sovraccaricatu, avemu bisognu di invucà da u metudu principale attuale.

77. Cosa hè a sovraccarica di metudu cù a prumuzione di tippu?

Sovraccaricamentu di metudu cù prumuzione di tippu significa, quandu ùn si trova nisun metudu di tippu di parametru currispondente, prumove implicitamente u tippu di dati à u prossimu livellu è chjama quellu metudu currispundente. Per esempiu, se chjamemu un metudu cù un tipu di dati di paràmetri brevi è se ùn ci hè micca un metudu di corrispondenza cù un tippu cortu ma se int hè presente, allora chjama u metudu cù parametru di dati tip.

Dumande Core Intervista à JavaPin

public class Sample {

  public void add(int a, int b) {
    int sum = a + b;
    System.out.println("Integer addition");
    System.out.println("Sum: " + sum);
  }
  
  public void add(float a, float b) {
    float sum = a + b;
    System.out.println("Float addition");
    System.out.println("Sum: " + sum);
  }
    
  public static void main(String[] args) {
    Sample s = new Sample();
    short x,y;
    s.add(4, 5);

  }

}
Integer addition
Sum: 9

78. Chì hè u risultatu di u prugramma java sottu?

public class Sample {

  public void add(int a, float b) {
    System.out.println("Integer addition");
  }
  
  public void add(float a, int b) {
    System.out.println("Float addition");
  }
    
  public static void main(String[] args) {
    Sample s = new Sample();
    s.add(4, 5);
  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  The method add(int, float) is ambiguous for the type Sample

Stu codice lancerà un errore di compilazione postu chì ci hè una ambiguità di quale metudu deve esse chjamatu. Postu chì simu solu passendu 2 valori interi, u compilatore ùn sà se chjamà u primu o u secondu metudu di aghjuntu.

79. Cosa hè u metudu supranendu?

Quandu a sottoclasse hà u listessu metudu di a classa di basa cù a firma, a chjamemu a mètudu supranendu chì significa chì a sottoclasse hà annullatu u metudu di a classa di basa. Basatu nantu à u tippu d'oggettu chì creemu, chjama u metudu di quella classe currispondente. Ciò significa, se creemu un oggettu di a superclasse è u riferemu aduprendu a sottoclasse, allora chjama u metudu di a sottoclasse. Siccomu calcula questu durante u runtime, u chjamemu cum'è polimorfisimu di runtime in Java.

80. Pudemu annullà un metudu staticu?

Innò, ùn pudemu micca annullà un metudu staticu perchè lancerà un errore di compilazione.

81. Perchè Java ùn permette micca di rimpiazzà u metudu staticu?

Ùn pudemu micca annullà un metudu staticu postu chì l'override accade durante u runtime è i metudi statichi sò ligati durante u tempu di compilazione. Ancu i metudi statichi appartenenu à l'area di memoria di a classa postu chì face parte di a classa invece chì i metudi nurmali facenu parte di l'ughjettu chì appartene à l'area di memoria di a mansa.

82. Pudemu annullà un metudu sovraccaricatu?

Ié, Java permette di soprascrive un metudu sovraccaricatu.

83. Qual hè a differenza trà u sovraccaricu di u metudu è a supranatura di u metudu?

Sovraccaricu di metuduMetudu supranendu
Questu implementa u polimorfisimu staticuQuestu implementa un polimorfisimu dinamicu
Questu accade durante u tempu di compilazioneQuestu accade durante u runtime
Stessi metudi sò prisenti in a listessa classaStessi metudi sò prisenti in diverse classi

84. Pudemu annullà i metudi privati ​​in Java?

Innò, ùn pudemu micca annullà i metudi privati ​​postu chì a portata di i metudi privati ​​hè limitata in a stessa classe è ùn pudemu micca accede da altre classi.

85. Pudemu cambià l'ambitu di i metudi annullati in a sottoclasse?

Ié, pudemu cambià a portata di i metudi annullati in a sottuclasse à cundizione chì ùn diminuisimu a so accessibilità.

  • U privatu pò esse cambiatu in prutettu, predefinitu o publicu.
  • Pudemu cambià prutetti per difettu o publicu.
  • Un modificatore predefinitu pò esse cambiatu in publicu.
  • U mudificatore publicu pò esse dichjaratu solu cum'è publicu.

86. Pudemu mudificà a clausula di lancia di u metudu di superclasse annullendu in a sottuclasse?

Pudemu mudificà a clausula di lancia di u metudu di superclasse annullendu in a sottuclasse ma avemu bisognu di seguità e regule sottu per a gestione di l'eccezzioni:

  • Se u metudu in a superclasse ùn dichjara micca alcuna eccezione, allora u metudu annullatu di a classa di basa pò dichjarà solu eccezioni micca verificate.
  • Se u metudu in a superclasse dichjara una eccezzione, allora a classe di basa pò dichjarà a stessa eccezione o sottoclasse ma micca l'eccezione di a classe parente.

87. Chì hè u risultatu di u prugramma Java sottu?

class parent {
  
  public void print(int a) {
    System.out.println("Prints base class integer number");
  }
  
  public void print(double a) {
    System.out.println("Prints base class double number");
  }
}
public class child extends parent{
  
  public void print(double a) {
    System.out.println("Prints child class double number");
  }

  public static void main(String[] args) {
    child c = new child();
    c.print(5);
    c.print(5.5);

  }

}
Prints base class integer number
Prints child class double number

A prima dichjarazione chjama u metudu di stampa in a classe parente postu chì passemu un valore interu. U secondu chjama u metudu di stampa annullata di a classa di basa postu chì passemu un doppiu valore è inizializatu un oggettu di classe derivata.

88. Pudemu avè funzioni virtuale in Java?

Ié, per difettu sò e funzioni sò virtuale in Java.

89. Chì hè un tipu di ritornu covariante?

Quandu annullemu un metudu in a sottuclasse dichjarendu u tippu di ritornu cum'è tippu di sottoclasse, u chjamemu un tippu di ritornu covariante. Java supporta u tippu di ritornu covariante solu da JDK 5.0 è sopra.

class Base {
  Base display() {
    return this;
  }
}
public class Derived extends Base{

  Derived display() {
    return this;
  }
  
  public void show() {
    System.out.println("Covariant return type");
  }
  public static void main(String[] args) {

    new Derived().display().show();

  }

}
Covariant return type

90. Chì hè u risultatu di u codice sottu?

class Base {
  public void display() {
    System.out.println("Base method");
  }
}
public class Derived extends Base {

  public void display() {
    System.out.println("Derived method");
  }
  
  public static void main(String[] args) {

    Base b = new Derived();
    b.display();

  }

}
Derived method

L'output stampa u metudu di a classe derivata postu chì creemu un oggettu di a classe derivata.

91. Chì hè a parolla chjave finale in Java?

A parolla chjave finale Java hè un modificatore senza accessu chì furnisce pochi restrizioni o limitazioni à l'utilizatore. In altre parolle, quandu usamu a parola chiave finale, ùn li pudemu micca riassignà o reinizializà. Questu significa chì ùn pudemu micca cambià i valori una volta inizializatu. Pudemu aduprà a parolla chjave finale Java per variabili, metudi, classe, è parametri variabili.

public class Circle {
  final double PI= 3.14;
  
  public void area(int r) {
    PI= 2.14;
    double area = PI*r*r;
    System.out.println("Area of circle: " + area);
  }
  public static void main(String[] args) {
    Circle c = new Circle();
    c.area(4);
  }
}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  The final field Circle.PI cannot be assigned

92. Chì hè u metudu finale?

Quandu usemu a parola chiave java prima di u metudu, a chjamemu metudu finale. In questu casu, ùn pudemu micca annullà u metudu finale. Pudemu chjamà u metudu finali direttamente da una sottuclasse, ma ùn pudemu micca annullallu postu chì resulterà in un errore di compilazione.

class Vehicle {
  final void speed() {
    System.out.println("Default speed");
  }
}
public class Car extends Vehicle{
  void speed() {
    System.out.println("Car speed");
  }
  public static void main(String[] args) {
  }
}
Error: LinkageError occurred while loading main class Car
  java.lang.VerifyError: class Car overrides final method Vehicle.speed()V

93. Chì hè una classa finale?

Quandu usemu a parola chiave finale mentre creemu una classe in java, a chjamemu una classe finale. Ùn pudemu micca allargà una classe finale è ùn sustene micca l'eredità. A maiò parte di e biblioteche core Java anu una classa finale cum'è a classe String per esempiu.

final class Vehicle {
  public void speed() {
    System.out.println("Default speed");
  }
}
public class Car extends Vehicle{
  public static void main(String[] args) {
    
  }
}
The type Car cannot subclass the final class Vehicle

94. Chì hè una variabile in biancu finale?

Quandu ùn assignemu alcun valore à a variabile finale durante a dichjarazione, a chjamemu una variabile finale in biancu in java. Se ùn inizializemu micca a variabile finale durante a dichjarazione, allora pudemu fà u listessu solu in un costruttore, altrimenti utteneremu un errore di compilazione. Ùn pudemu micca inizializà a variabile finale in un altru metudu. L'usu principale di una variabile in biancu finale hè quandu vulemu avè valori diversi per ogni creazione d'istanza.

95. Pudemu inizializà una variabile in biancu finale?

Ié, pudemu inizializà una variabile in biancu finale solu in un costruttore se ùn l'inizializemu micca durante a dichjarazione di variabile. Se hè una variabile finale statica, pudemu inizializà a stessa solu in un bloccu staticu.

public class Circle {
  final double PI;
  
       //Initialize final variable in the constructor
  Circle() {
    PI= 3.14;
  }
  
  public void area(int r) {
    double area = PI*r*r;
    System.out.println("Area of circle: " + area);
  }
  public static void main(String[] args) {
    Circle c = new Circle();
    c.area(4);
  }
}
Area of circle: 50.24

96. Pudete dichjarà u metudu principale Java cum'è finale?

Ié, pudemu dichjarà u metudu principale cum'è finale postu chì ùn avemu micca bisognu di annullà u metudu principale in Java.

97. Chì hè a surtita di u còdice Java sottu?

public class Test {

  public static void main(String[] args) {
    final String value;
    value = "Hello";
    System.out.println(value);

  }

}
Hello

Stampa l'uscita cum'è "Bonghjornu" postu chì l'inizializemu solu una volta.

98. Chì hè u risultatu di u còdice seguente?

class Sample {
  public final void display() {
    System.out.println("Sample display method");
  }
}
public class Test extends Sample{
  
  public final void display() {
    System.out.println("Test display method");
  }

  public static void main(String[] args) {
    Sample s = new Sample();
    s.display();

  }

}
Error: LinkageError occurred while loading main class Test
  java.lang.VerifyError: class Test overrides final method Sample.display()V

Lancia un errore di compilazione postu chì ùn pudemu micca annullà un metudu finale in Java.

99. Pudemu dichjarà un costruttore o un'interfaccia cum'è finale?

Innò, ùn pudemu micca dichjarà un costruttore o un'interfaccia cum'è finale. Lancia un errore di compilazione se pruvemu à fà cusì.

100. Chì differenza ci hè trà un metudu finale è un metudu astrattu?

A principale differenza hè chì u metudu finale ùn pò micca esse annullatu mentre u metudu astrattu deve esse annullatu in a sottoclasse chì implementa a classe astratta.

101. Chì differenza hè trà u tempu di compilazione è u polimorfisimu di runtime?

Polimorfisimu in tempu di compilazionePolimorfisimu di runtime
A chjamata accade durante u tempu di compilazioneA chjamata accade durante u runtime.
Hè chjamatu ancu cum'è polimorfisimu staticu o ligame precoceHè chjamatu ancu cum'è polimorfisimu dinamicu o ligame tardu
A sovraccarica di u metudu hè un esempiu di polimorfisimu in tempu di compilazioneU metudu supranendu hè un esempiu di polimorfisimu di runtime
Esecuzione più rapidaEsecuzione più lenta
Offre menu flessibilitàDà più flessibilità
I metudi cù u listessu nome sò prisenti in a listessa classaI metudi cù listessu nome sò prisenti in a classa derivata

102. Cosa hè u polimorfisimu di runtime?

Quandu u polimorfisimu si risolve durante u runtime, u chjamemu dinamichi or runtime polimorfisimu. In questu tippu di polimorfisimu in java, usa a variabile di riferenza di a superclasse per chjamà u metudu annullatu. Questu significa, basatu annantu à l'ughjettu chì hè riferitu da a variabile di riferimentu, chjama u metudu annullatu di quella classa currispondente. Pudemu aduprà u mètudu supranendu cuncettu per implementà Polimorfisimu Dinamicu.

103. Hè pussibule uttene un polimorfisimu di runtime cù i membri di dati?

No, ùn pudemu micca uttene un polimorfisimu di runtime annullendu i membri di i dati. Solu i metudi ponu esse annullati è micca e variabili.

class Bank {
  public double interestRate = 7.5;
}
class SBI extends Bank {
  public double interestRate = 6.4;
}
public class BankDemo {
  public static void main(String[] args) {
    Bank b = new SBI();
    System.out.println(b.interestRate);
    SBI s = new SBI();
    System.out.println(s.interestRate);
  }
}
7.5
6.4

Quandu avemu u listessu nome di variabile in a superclasse è a sottuclasse, basatu annantu à e variabili di riferenza, chjama a variabile currispundente. In questu esempiu, b hè un esempiu di a superclasse, dunque prima stampa u valore variabile di superclasse. Dopu, s hè un esempiu di una sottuclasse chì stampa u valore di a variabile di sottuclasse.

104. Chì differenza hè trà u ligame staticu è u dinamicu?

Legatura staticaRilegatura dinamica
Chjamatu dinò ubligatoriu iniziale o ubligatoriu in tempu di compilazioneChjamatu ancu u ligame tardu o ligame di runtime
U soprascrittu di u metudu hè u ligame staticuU metudu supranendu hè u ligame dinamicu
Utilizza u tipu di classe per risolve u ligameUtilizza u tipu d'oggettu per risolve u ligame
Esecuzione più rapidaEsecuzione lenta

105. Chì hè u risultatu di u prugramma seguente?

class Vehicle {
  public void speed() {
    System.out.println("Default speed");
  }
}
class Bike extends Vehicle {
  public void speed() {
    System.out.println("Bike speed");
  }
}
class Car extends Vehicle {
  public void speed() {
    System.out.println("Car speed");
  }
}
public class VehicleType {
  public static void main(String[] args) {
    //Create an instance of Vehicle
    Vehicle v = new Vehicle();
    v.speed();
    
    //Create an instance of Bike
    Vehicle b = new Bike();
    b.speed();
    
    //Create an instance of Car
    Vehicle c = new Car();
    c.speed();
  }
}
Default speed
Bike speed
Car speed

Quandu creemu un esempiu di a sottoclasse, allora chjama u metudu annullatu di a sottuclasa durante u runtime.

106. Chì hè l'operatore Java instanceOf?

L'operatore Java instanceOf hè un operatore di comparazione chì verifica se l'ughjettu hè un'istanza di qualchì tippu di classe. U valore di ritornu hè veru o falsu. Se ùn ci hè micca valore, allora ritorna falsu.

public class SpecialOperator {

  public static void main(String[] args) {
    String value = "";
    Boolean b;
    b = (value instanceof String);
    System.out.println(b);
  }

}
true

107. Chì hè l'astrazione?

Astrazione in Java, chì hè unu di i OOP cuncetti, hè u prucessu di mustrà solu l'infurmazioni richieste à l'utilizatore nascondendu altri dettagli. Mostra ciò chì face u metudu piuttostu chè cumu hè fattu. Per esempiu, cunsiderate un telefuninu mobile, sapemu solu chì appughjendu nantu à u buttone di chjamata, chjamerà u numeru necessariu. Ma ùn sapemu micca veramente l'implementazione vera di cumu funziona una chjamata. Questu hè perchè u mecanismu internu ùn hè micca visibile per noi. Pudemu ottene l'astrazione aduprendu una classe astratta o un'interfaccia.

108. Chì differenza hè tra astrazione è incapsulazione?

A principal diferenza hè l 'estrazzioni nasconde i dettagli di implementazione mentre guiper lega i dati è i metudi inseme

109. Chì hè una classa astratta?

Quandu dichjaremu una classe cun un astrattu keyword, a chjamemu un classa astratta. astrattu hè una parolla chjave modificativa senza accessu chì pudemu aduprà cun una classe è un metudu. Una classa astratta hè una classa speciale chì hè una superclasse chì cuntene metudi micca implementati. Dunque a sottoclasse chì eredita a classe astratta parente deve implementà tutti i metudi astratti.

110. Ci pò esse un metudu astrattu senza una classa astratta?

No, se ci hè un metudu astrattu, allora avemu bisognu di dichjarà quella classe cum'è una classe astratta.

111. Chì hè u risultatu di u còdice seguente?

abstract class Area {
  abstract void square(int x);
}
public class Test {

  int area;
  
  public static void main(String[] args) {
    new Area() {
      void square(int x) {
        int area = x * x;
        System.out.println("Area is: " + area);
      }
    }.square(5);

  }

}
Area is: 25

U codice sopra stampatu u risultatu cum'è 25. A classe Test implementa u quadru di metudu astrattu.

112. Pudemu dichjarà un metudu cum'è astrattu è finale?

Innò, ùn pudemu micca dichjarà un metudu cum'è astrattu è finale postu chì i metudi astratti devenu esse annullati mentre i metudi finali ùn ponu micca esse annullati.

113. Pudemu istancià una classe astratta?

Innò, ùn pudemu micca istancià una classe astratta chì significa chì ùn pudemu micca creà un'istanza o un oggettu per una classe astratta.

114. Cosa hè un'interfaccia?

L'interfaccia Java hè una parolla chjave chì ci permette di ottene una astrazione piena. Una interfaccia ci dice ciò chì face piuttostu chè cumu si face. Questu significa, una interfaccia cuntene solu dichjarazione di funzione è ùn cuntene micca implementazione di funzione. A classe chì implementa l'interfaccia cuntene a definizione di funzione. Ùn pudemu micca creà un'istanza o avè variabili d'istanza in un'interfaccia. Tutte e variabili in un'interfaccia sò publiche, statiche è finali per difettu è devenu esse inizializate durante a dichjarazione. Tutti i metudi sò publichi è astratti per difettu.

115. Pudemu dichjarà un metudu d'interfaccia cum'è staticu?

Innò, i metudi d'interfaccia ùn ponu micca esse dichjarati statichi postu chì hè astrattu per difettu.

116. Pudemu dichjarà un'interfaccia cum'è definitiva?

Innò, ùn pudemu micca dichjarà un'interfaccia cum'è finale postu chì deve esse implementata da un'altra classe. A parolla chjave finale ùn la sustene micca.

117. Chì hè una interfaccia marcatore?

Quandu definiscenu un'interfaccia viota, a chjamemu tag o interfaccia marcatore. Stu tipu d'interfaccia java ùn hà alcuna pruprietà o metudu. Poche interfacce di tag esistenti in java sò EventListener, Serializable, Remote (java.rmi.Remote). L'usu principale di l'interfaccia di tag hè chì quandu a classe implementa una tale interfaccia, pò aduprà l'appartenenza à quella interfaccia. Questu significa chì a JVM (Java Virtual Machine) esegue una operazione speciale per supportà quella interfaccia. Per esempiu, prucessu di serializazione o di deserializazione.

package java.uti;
public interface EventListener 
{ }

118. Chì sò e differenze trà una classe astratta è un'interfaccia?

Classe astrattavirtuale
A classe astratta pò avè metudi astratti è non astrattiL'interfaccia pò avè solu metudi astratti. Da Java 8, supporta i metudi predefiniti
Ùn supporta micca una eredità multiplaSupporta parechje eredità
Utilizza una parola chiave astrattaUtilizza a chjave d'interfaccia
Usi si estende a parola chiave per eredità a classe astrattaAduprà attrezzi chjave per implementà l'interfaccia
Pò allargà un'altra classe Java è ancu implementà l'interfacciaPò allargà solu un'altra interfaccia
I membri ponu avè modificatori d'accessu cum'è privati, prutetti, eccI membri ponu avè solu publicu
Pò avè variabili statiche, non statiche, finali o micca finali.Pò avè solu variabili statiche è finali

119. Pudemu dichjarà e variabili in un'interfaccia cum'è private o prutette?

Innò, ùn pudemu micca dichjarà e variabili in un'interfaccia cum'è private o prutette postu chì sò publiche per difettu.

120. Quandu un riferimentu d'ughjettu pò esse lanciatu in un riferimentu d'interfaccia?

Quandu un ughjettu implementa l'interfaccia riferita, pudemu lancià una riferenza d'oggettu à a riferenza di l'interfaccia.

121. Cume creà una classe di sola lettura in Java?

Pudemu creà una classe di sola lettura in Java fendu tutte e variabili cum'è private. A classe cuntene solu metudi getter chì sò aduprati per leghje i valori variabili privati. Postu chì ùn ci hè micca metudi setter, ùn pudemu micca mudificà i valori.

de class Account {
  private int accountnumber;
  
  public int getAccountNumber() {
    return accountnumber;
  }
}

122. Cume creà una classe solu di scrittura in Java?

Pudemu creà una classe di sola scrittura dichjarendu tutte e variabili cum'è private è avendu solu metudi di impostatore per assignà valori à queste variabili. Ùn pudemu micca recuperà i valori postu chì ùn avemu micca metudi getter.

class Account {
  private int accountnumber;
  
  public void setAccountNumber(int accno) {
    this.accountnumber = accno;
  }

}

123. Chì sò i vantaghji di l'Encapsulamentu in Java?

  • Fornisce a sicurezza ùn permettendu micca à e classi esterne di mudificà i campi privati.
  • Pudemu avè solu metudi di sola lettura o di scrittura solu dunque furnendu restrizioni à altre classi per accede. Questu significa, se una classe hà solu un arrivare metudu, pudemu leghje solu e variabili. Similmente, pudemu avè solu una ghjocu metudu per impostà solu a variabile.
  • Fornisce flessibilità è riutilizazione per mezu di i metudi getter è setter.
  • I dettagli di l'implementazione ùn sò micca visibili per altre classi.
  • Facile per prova unitaria

124. Cosa hè un pacchettu in Java?

Pacchetti in Java raggruppa più classi, interfacce, o pacchetti, ecc inseme in un locu unicu. Pudemu cunsiderà un pacchettu simile à un cartulare. Un cartulare pò cuntene parechji fugliali. Similmente, in Java, un pacchettu cuntene un gruppu di classi. U scopu principale hè di evità cunflitti di nomi di classe. Ci hè dui tippi di pacchetti in Java: integratu è definitu da l'utilizatore.

125. Chì sò i vantaghji di aduprà un pacchettu in Java?

  • Evita u nome di cunflitti di classi. Questu significa chì pudemu aduprà i stessi nomi di classe in 2 pacchetti diversi.
  • Fornisce a riutilisazione accede à una classe da 1 pacchettu in un altru.
  • Manutenzione faciule postu chì e classi seranu urganizate
  • Fornisce a prutezzione di l'accessu per e classi prutette è predefinite. Per piacè riferitevi à modificatori d'accessu per sapenne di più.
  • Aiuta à l'incapsulamentu o à piattà i dati.

126. Cumu creà un pacchettu in Java?

Se usemu IDE cum'è Eclipse, pudemu creà un pacchettu seguendu i passi sottu:

  1. Crea un novu prughjettu Java - Es: "PackageDemo".
  2. Cliccate da cliccà nantu à u prugettu -> Novu -> Package
  3. Inserite u nome di u pacchettu. Es: com.tutorial.packagedemo
  4. Cliccate nantu à Finisce

Se usamu u bloccu note, allora seguitate i passi sottu:

  1. Definisce un pacchettu nome_pacchettu. Crea una classa nome_classe è salvatelu cum'è class_name.java
  2. Cumpila u codice cù prompt di cumanda: javac -d. class_name.java
  3. Executà u codice cù prompt di cumanda: java package_name.class_name

127. Cumu pudemu accede à una classe in un pacchettu da un'altra classe?

  • Usendu u nome cumpletamente qualificatu - Aduprate un nome cumpletamente qualificatu o impurta u pacchettu chì cuntene a classa.
  • Utilizendu u percorsu relative - Specificate u percorsu chì hè in relazione cù a classe in u pacchettu.

128. Hè ubligatoriu di impurtà u pacchettu java.lang?

Innò, ùn hè micca ubligatoriu di impurtà u pacchettu java.lang postu chì hè impurtatu da a JVM per difettu.

129. Pudemu impurtà u listessu pacchettu / classa duie volte è cumu u JVM u carica?

Ié, pudemu impurtà u listessu pacchettu / classe parechje volte. Tuttavia, a JVM a caricherà solu una volta internamente, indipendentemente da quante volte l'importemu.

130. Cosa hè una impurtazione statica?

Supporta Java 5 è sopra impurtazione statica.  Questu significa quandu si usa l'importazione statica, ùn avemu micca bisognu di specificà u nome di a classa mentre accede à i so campi o metudi.

import static java.lang.System.*;
public class StaticImportDemo {
  public static void main(String[] args) {
    out.println("Exmaple of static import");
    
  }
}

131. Chì ghjè a gestione di l'eccezzioni in Java?

A gestione di l'eccezzioni in Java hè unu di i cuncetti più impurtanti in a prugrammazione Java. Ogni volta chì sviluppemu un software duvemu assicurà chì trattemu e eccezioni java currettamente. In Java, una eccezzione hè una cundizione chì ferma o finisce u prucessu di esicuzzioni quandu scontra una cundizione inaspettata. Questu interrompe u flussu di esecuzione normale è lancia un missaghju generatu da u sistema chì l'utilizatore puderia micca capisce. Pudemu gestisce sta situazione in java furnendu un missaghju significativu à l'utilizatore quandu si esce una eccezione senza interrompe u flussu di esecuzione.

132. Chì sò i sfarenti tippi d'eccezzioni chì ponu accade in Java?

Ci hè dui tippi d'eccezzioni chì ponu accade in Java:

  • Eccezzioni cuntrullate: Pudemu ancu chjamà cum'è divisa eccezzioni chì significa chì u compilatore li gestisce durante a compilazione di codici. In altre parolle, verifica l'eccezione durante a compilazione è avverte u sviluppatore chì ci hè una possibilità chì una eccezione accada. In questu casu, u sviluppatore hà da trattà in u codice.
  • Eccezzioni incontrollate: li pudemu ancu chjamà eccezioni di runtime dapoi si faci durante l'esekzione di u prugramma. Hè assai impurtante per u sviluppatore di gestisce queste per surtite in modu sicuru da l'esekuzione di codice quandu si trova una situazione inaspettata. Esempiu: ArrayIndexOutOfBoundException, NullPointerException, ecc.

133. Chì ghjè a ghjerarchia di e classi Java Exception?

A classe radice di l'Ecezzioni Java hè a classa java.lang.Throwable chì cuntene duie sottuclassi: Errore è Eccezione.

Trasmissione di eccezioni in JavaPin

134. Chì differenza ci hè trà eccezioni verificate è micca marcate?

A differenza principale hè chì l'eccezioni verificate sò gestite durante u tempu di compilazione mentre e eccezioni micca verificate sò gestite durante u runtime.

135. Chì hè a classa di basa per Eccezione è Errore?

A classa di basa per Eccezione è Errore hè a classe Throwable chì appartene à u pacchettu java.lang.

136. Hè necessariu chì ogni bloccu di prova deve esse seguitatu da un bloccu di cattura?

Innò, ùn hè micca necessariu. A bluccà pruvà deve esse seguitatu da una cattura bloccu o un bloccu infine. U metudu deve dichjarà u tippu di eccezioni chì ponu accade cù u ghjetta a parolla chjave.

public class Test {

  public static void main(String[] args) {
    try {
      int a = 5;
      System.out.println(a/0);
    }
    finally {
      System.out.println("Finally block");
    }	

  }

}
Finally block
Exception in thread "main" java.lang.ArithmeticException: / by zero
  at Test.main(Test.java:6)

137. Chì hè u risultatu di u codice sottu?

public class UncheckedException {
  
  int a = 10;
  int b = 0;
  public void divide() {
    try {
      int result = a/b;
      System.out.println("Result: " + result);
    }
    catch(Exception e) {
      System.out.println(e);
    }
    catch(ArithmeticException e) {
      System.out.println("Division by 0 is not allowed");
    }
    finally {
      System.out.println("Divide method executed");	
    }
    
  }

  public static void main(String[] args) {
    UncheckedException uce = new UncheckedException();
    uce.divide();

  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  Unreachable catch block for ArithmeticException. It is already handled by the catch block for Exception

U codice sopra ghjoca errore di compilazione postu chì avemu prima catturendu l'eccezione aduprendu a classe Eccezione. In questu casu, ùn ghjunghjerà mai à u bloccu di cattura ArithmeticException postu chì Eccezione hè a classe parent per tutti i tippi di eccezioni. Duvemu aduprà bloccu di cattura di classe Eccezione sempre cum'è l'ultimu bloccu.

138. Cosa hè infine u bloccu?

lu finally U bloccu segue sempre un bloccu try-catch. Esegue u codice impurtante indipende se esce una eccezione o micca. Hè adupratu principalmente per pulisce u codice cum'è a chjusura di un fugliale, a liberazione di l'ughjettu, ecc. Finally U bloccu hè eseguitu versu a fine dopu à u try-catch hè eseguitu. Se qualchì uscita di sistema o interruzzione si verifica prima, allora u finally U bloccu ùn serà micca eseguitu.

139. Pudemu aduprà infine u bloccu senza un bloccu di cattura?

Ié, pudemu aduprà finally bloccu senza un bloccu di cattura ma deve seguità u try bluccà invece.

140. In chì situazione u bloccu infine ùn serà mai eseguitu?

Ci hè 2 situazioni in cui u bloccu infine ùn serà mai eseguitu:

  • Quandu u sistema esce si usa cù u System.exit()
  • Quandu si verifica un errore fatale chì face u prucessu di abbandunà.

141. Chì ci hè a differenza trà e parolle chjave è ghjetti in Java?

Lancia di JavaJava tira
Adupratu in u metuduAdupratu in a dichjarazione di metudu
Hè adupratu per lancià una nova eccezzione in u metuduHè adupratu per dichjarà una eccezione chì pò accade in u metudu
Pudemu lancià solu una sola eccezione à a voltaPudemu gestisce parechje eccezioni à a volta in a dichjarazione di metudu
Pò esse adupratu solu cù eccezzioni micca marcate.Pò esse adupratu per e eccezioni verificate è micca verificate
Ùn hà micca bisognu di pruvà-catch per gestisce l'eccezioneHè a respunsabilità di u metudu chjamatu per trattà l'eccezzioni aduprendu u try-catch

142. Chì hè u risultatu di u codice sottu?

public class Test {

  public static void main(String[] args) {
    try {
      throw 10;
    }
    catch(Exception e) {
      System.out.println(e);
    }
    finally {
      System.out.println("Finally block");
    }	

  }

}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  No exception of type int can be thrown; an exception type must be a subclass of Throwable

  at Test.main(Test.java:5)

Lancia un errore di compilazione postu chì ùn pudemu micca lancià un valore interu. L'eccezione lanciata deve esse una sottoclasse di Throwable.

143. Chì hè u risultatu di u codice sottu?

import java.util.LinkedList;

class OwnException extends Exception {
  String message;
  OwnException(String s) {
    message = s;
  }
  
  public String toString() {
    return ("Exception: " + message);
  }
}
public class CustomException {

  public static void main(String[] args) {
    try {
      throw new OwnException("My own custom exception");
    }
    catch(Exception e) {
      System.out.println(e);
    }

  }

}
Exception: My own

eccezzione persunalizata


Stampa u missaghju d'eccezione chì passemu aduprendu a parolla chjave throw. Quì creemu una eccezzione persunalizata è lanciamu l'eccezione in u bloccu try.

144. Pudemu retrocede una eccezione?

Ié, pudemu ritruvà un'eccezione.

145. Pudete un metudu supranevule hè una sottuclasse dichjarà una eccezzione ancu se a classe parent ùn face micca una eccezione?

Ié, u metudu primariu in a sottuclasse pò lancià una eccezione à cundizione ch'ella sia un'eccezione micca verificata. In questu casu, ùn permette micca di scaccià l'eccessione verificata.

146. Cosa hè a propagazione di l'eccezzioni?

A propagazione di l'eccezzioni hè a prucedura induve a gestione di l'eccezzioni si move da a cima à u fondu di a pila finu à truvà u gestore ghjustu per catturà.

public class PropagationDemo {

  void display() {
    int a = 10/0;
  }
  void test() {
    display();
  }
  void show() {
    try {
      test();
    }
    catch(Exception e) {
      System.out.println("Exception handled in show method");
    }
  }
  public static void main(String[] args) {
    PropagationDemo p = new PropagationDemo();
    p.show();

  }

}
Exception handled in show method

In l'esempiu di sopra, una eccezione si verifica in u metudu display (). Siccomu ùn hè micca trattatu in questu metudu, hè propagatu à u metudu test () da induve hè statu chjamatu. Ùn hè manighjatu ancu quì, cuntrolla ulteriormente in u prossimu metudu da induve a prova hè stata chjamata. Infine, gestisce u metudu di spettaculu.

147. Chì hè u risultatu di u codice sottu?

public class Test {

  void m() {
    try {
      System.out.println("Inside m method");
      n();
    }
    catch(Exception e) {
      System.out.println("Exception caught in m method");
    }
  }
  void n() throws Exception{
    try {
      System.out.println("Inside n method");
      p();
    }
    catch(Exception e) {
      throw new Exception();
    }
    
  }
  void p() throws Exception {
    try {
      System.out.println("Inside p method");
      throw new Exception();
    }
    finally {
      System.out.println("Inside finally block");
    }
    
  }
  public static void main(String[] args) {
    Test t = new Test();
    t.m();
  }

}
Inside m method
Inside n method
Inside p method
Inside finally block
Exception caught in m method

Da u metudu principale, chjama u m () metudu chì stampa una linea è poi chjama u n () mètudu. Dentru stu metudu, stampa una altra linea è poi chjama u p () mètudu. Stampa una linea è poi tira un'eccezione. Dapoi finally U bloccu hè sempre eseguitu, esegue questu primu è trasferisce l'eccezione à u n () mètudu. Questu torna à propagà l'eccezione à u m () metudu chì gestisce l'eccezzione.

148. Chì hè u risultatu di u codice sottu?

public class Demo {

  int x;
  Demo(int x) {
    this.x = x;
  }
  
  public int sum() {
    x = x  + 5;
    try {
      x = x + 5;
      
      try {
        x = x * 5;
        throw new Exception();
      }
      catch(Exception e) { 
        x = x - 5;
      }
    }
    catch(Exception e) {
      x = x - 5;
    }
    
    return x;
  }
  public static void main(String[] args) {
    Demo d = new Demo(5);
    int result = d.sum();
    System.out.println("Value of x: " + result);

  }

}
Value of x: 70

U costruttore inizializza prima u valore x à 5 durante a creazione di l'istanza. Dopu chjama u metudu di summa induve aghjusta 5. Avà x = 10. Dintra u primu bloccu di prova, aghjusta un altru 5 chì significa x = 15. Dentru à prova annidata, si multiplica per 5 dunque x = 75. Avà, lancia una nova eccezione, chì hè catturata da u bloccu di cattura interna induve sottrae 5. Dunque u risultatu finale hè 70. U bloccu di cattura esterna ùn serà mai eseguitu postu chì ùn ci hè alcuna eccezione lanciata quì.

149. Cosa hè una piscina String?

String pool constantu hè una memoria speciale per almacenà l'uggetti String. Quandu creemu una stringa litterale, JVM verifica prima in a "piscina constante di stringa" se a stringa esiste. Se ùn esiste micca, JVM crea una nova istanza di stringa, altrimenti solu una riferenza à l'istanza cumuna serà restituita. Per esempiu, in u casu sottu, tramindui oggetti stringi tenenu u listessu valore. Dunque solu 1 oggettu hè creatu (vale à dì s1) è s2 averà a riferenza à s1. Questu significa, indipendentemente da quante variabili di stringa chì creemu sempre cù u listessu valore, solu 1 istanza serà creata in a piscina costante di stringa.

String s1 = "Java language"; 
String s2 = "Java language";

String in javaPin

150. Chì hè una Stringa immutabile in Java?

Una stringa immutabile in Java significa chì ùn pudemu micca cambià u valore di a String. Questu significa una volta chì assignemu un valore à un oggettu stringa, ùn pudemu micca cambià u so valore.

public class StringConcat {

  public static void main(String[] args) {
    String s1 = "Hello,";
    String s2 = s1.concat("How are you?");
    System.out.println(s1);
    System.out.println(s2);
  }

}
Hello,
Hello,How are you?

Ancu se cuncatenemu una nova stringa à l'ughjettu s1, u valore di l'oghjettu s1 ferma senza cambià. Ma però, pudemu almacenà u valore concatenatu à un novu oggettu string.

151. Perchè l'uggetti String sò immutabili in Java?

L'uggetti di stringa Java sò immutabili postu chì usa u cuncettu di letterali string. String letterali significanu assignà un valore di stringa à una variabile senza aduprà a nova parola chiave. Dunque avemu diverse variabili chì indicanu tutte u listessu oggettu, allora sì qualcunu cambia u valore variabile allora affetta ancu tutte l'altri. Dunque l'uggetti String sò immutabili.

152. Chì sò i diversi modi per creà un oggettu stringa?

Pudemu creà un oggettu string in i seguenti 2 modi:

  • Utilizendu a stringa litterale: Questu hè u modu più direttu per creà una stringa in Java. Pudemu creà una stringa inserendu u valore in virgulette doppie. Quì a variabile "valore" di tippu String tene a stringa chjamata "lingua Java".
    String value = "Java language";

    Quandu creemu una stringa litterale, a JVM prima cuntrolla in a "string constant pool". S'ellu esiste, allora ritorna solu a riferenza à u gruppu d'istanze altrimente crea una nova istanza.

  • Usendu a nova parola chiave: Quandu vulemu avè 2 oggetti diversi tenendu u listessu valore di stringa, allora creemu una stringa aduprendu u novu parolla chjave cum'è scritta sottu. In questu casu, JVM crea 2 sfarenti oggetti di stringa in memoria heap.
    String s1 = new String("Java");
    String s2 = new String("Java");

153. Quantu ogetti seranu creati in u codice sottu?

String a = "Java";
String b = "Java";
String c = "Java";

Solu l'ughjettu 1 serà creatu postu chì avemu creatu letterali string. Quandu una nova stringa litterale hè creata, verifica se u valore hè dighjà prisente in u pool litterale di stringa. Postu chì hè prisente, torna solu a riferenza à quella istanza.

154. Perchè Java usa u cuncettu di litturali String?

Java utilizeghja i literali String per gestisce a memoria in modu efficiente postu chì ùn crea micca novi istanze per u listessu valore.

155. Quantu ogetti seranu creati in u codice sottu?

String s = new String("Java");

Postu chì creemu una stringa aduprendu a nova parola chiave, crea 2 oggetti, unu in a memoria di l'hapea è unu in a piscina costante di stringe.

156. Chì hè u risultatu di u còdice seguente?

public class Test {

  public static void main(String[] args) {
    String s1 = "Java language";
    String s2 = new String("Java language");
    if(s1 == s2)
      System.out.println("s1 == s2");
    if(s1.equals(s2))
      System.out.println("s1.equal(s2)");

  }

}
s1.equal(s2)

Ancu se i dui oggetti stringi anu u listessu cuntenutu, e so referenze sò diverse postu chì sò creati in modi diversi. Dunque == rende falsu postu chì verifica i riferimenti è u metudu equals () ritorna veru postu chì verifica u cuntenutu.

157. Chì hè u risultatu di u codice sottu?

public class Test {

  public static void main(String[] args) {
    String s1 = "Java language";
    String s2 = new String("Java language");
    s2 = s2.intern();
    System.out.println(s1==s2);
    
  }

}
true

U metudu internu restituisce una rappresentazione canonica di a stringa chì significa chì restituisce un riferimentu à a stringa equivalente da u pool. Dunque s1 è s2 averanu u listessu riferimentu.

158. Chì sò e differenze trà String è StringBuffer?

StringStringBuffer
Hè immutabileHè mutevule
U prucessu di cuncatenazione hè più lenteU prucessu di cuncatenazione hè più veloce
Sostituisce u metudu uguale di a classe Object à comapreÙn annulla micca u metudu uguale
Consuma più memoriaConsuma menu memoria

159. Chì sò e differenze trà StringBuffer è StringBuilder?

StringBufferStringBuilder
Hè filu sicuruÙn hè micca sicura di filu
Hè sincronizatuÙn hè micca sincronizatu
A prestazione hè più lentaU rendiment hè più veloce
Hè dispunibule da JDK 1.0Hè dispunibule da JDK 1.5

160. Cumu creà una classa immutabile in Java?

Pudemu creà una classa immutabile in Java facendu tutti i campi cum'è final cù a classe cum'è final. Hè perchè ùn pudemu micca cambià i valori di u final membri

public final class Sample {

  final int accountNumber;
  
  public Sample(int accno) {
    this.accountNumber = accno;
  }

  public int getAccountNumber() {
    return accountNumber;
  }
}

161. Chì ghjè l'usu di u metudu toString () in Java?

In Java, u metudu toString () restituisce una rappresentazione stringa di l'ughjettu. U compilatore chjama internamente u metudu toString () ogni volta chì stampemu un oggettu. Questu facilita a scrittura di codice.

162. Perchè charArray () hè preferitu sopra String per archivà a password?

Una stringa hè guardata in a memoria finu à chì sia spazzatura raccolta. Dunque, se guardemu password in String, ferma in memoria per una durata più lunga è pò dà una minaccia à a sicurezza perchè pudemu estrarre u dump di memoria. D'altra parte, se una password hè archiviata in un charArray, pudemu immediatamente mette in biancu una volta aduprata chì impedisce e minacce di sicurezza.

163. Scrivi un prugramma Java per cuntà u numeru di parolle in una String.

public class CountWords {

  public static void main(String[] args) {
    String s = "Welcome to Java programming";
    String[] arr = s.split(" ");
    System.out.println("Number of words: " + arr.length);

  }

}
Number of words: 4

Pudemu ritruvà u numeru di parolle aduprendu u metudu split cù u spaziu cum'è delimitatore. Questu restituisce una serie di parolle è pudemu uttene u conte cù u metudu di lunghezza di una matrice.

164. Elencate uni pochi di classi prisenti in u pacchettu java.util.regex

E seguenti classi o interfacce sò presenti in u pacchettu java.util.regex

  • Interfaccia MatchResult
  • Classe di matcher
  • Classe di mudellu
  • Classe PatternSyntaxException

165. Cumu si distinguenu i metacarattere da i caratteri urdinarii?

I Caratteri sò caratteri speciali in termini di a spressione regulare. Pochi metacarattere sò $ ^ *, {[). Per trattà li cum'è caratteri nurmali, avemu bisognu di aduprà una barra inversa prima chì sti caratteri altri sianu cunsiderati cum'è caratteri speciali.

166. Scrivite una espressione regulare per validà una password cù e cundizioni: A password deve principià cù l'alfabetu, seguitatu da alfanumericu chì a so lunghezza deve esse trà 8 è 15.

L'espressione regulare hè ^ [a-zA-Z] [a-zA-Z0-9] {8-15} induve ^ denota una espressione regulare dopu seguitata da l'alfabetu è dopu alfanumericu. {8-15} denota chì a lunghezza deve esse trà 8 è 15.

167. Chì hè u risultatu di u còdice seguente?

import java.util.regex.Pattern;

public class RegEx {

  public static void main(String[] args) {
    System.out.println(Pattern.matches(".a..", "Java"));
    System.out.println(Pattern.matches("..a.", "Java"));
    System.out.println(Pattern.matches("a...", "Java"));
    System.out.println(Pattern.matches("...a", "Java"));

  }

}
true
false
false
true

A prima è l'ultima dichjarazione sò vere postu chì u mudellu currisponde à a stringa di input. Verifica se "a" hè presente in a seconda è a 4a pusizione di a stringa. A seconda è a terza dichjarazione sò false postu chì u mudellu ùn currisponde micca à a stringa di input chì significa "a" ùn hè micca prisente in a seconda è a prima pusizione.

168. Chì sò i vantaghji di e classi interne di Java?

  • Hè utile se una classe hà bisognu d'accessu à una sola classe chì pò esse implementata aduprendu classi interni o classi annidati
  • A classe interna pò accede à tutti i campi è i membri di a classe esterna cumpresi i campi privati.
  • Prumove l'ottimizazione di u codice è a manutenzione.

169. Chì hè una classa annidata?

Una classa in un'altra classe hè chjamata classa annidata. Raggruppa logicamente classi simili inseme per chì e classi interne possanu accede ancu à tutti i membri di e classi esterni.

public class classA {
  //code
  public class classB {
    //code
  }
}

170. Chì sò i svantaghji di e classi annidate?

  • Aumenta u numeru tutale di classi.
  • Aumenta a carica in JVM postu chì deve eseguisce certe operazioni relative à e classi.

171. Chì sò i tippi di classi interni aduprati in Java?

  • Classi interiore annidate
  • Mètudu classi interni lucali
  • Classi interiori anonimi
  • Classi annidati statichi

172. Chì differenza ci hè trà a classa annidata è a classa interna?

A principale differenza hè e classi interne sò classi annidate non statiche chì significa chì facenu parte di classi annidate.

173. Pudemu accede à a variabile lucale non finale in a classe interna locale?

Innò. Per accede à l'internu di a classa interna lucale, avemu bisognu di dichjarà a variabile lucale cum'è custante.

174. Quanti fugliali di classe sò creati per compilà u fugliale di classe esterna in u codice sottu?

public class classA {
  int a;
  class classB {
    int b;
  }
  class classC {
    int c;
  }
  
  public static void main(String[] args) {
    classA ca = new classA();
  }
}

3 fugliali di classe seranu creati - classA.class, classA $ classB.class è classA $ classC.class

175. Chì hè una classa interna anonima?

E classi anonime aiutanu à dichjarà è istancià una classe à u listessu tempu. Hè simile à una classa lucale eccettu chì ùn hà micca un nome di classe. Hè utile sè avemu bisognu di usalli una sola volta.

class Test {
  public void print() {
    System.out.println("Test print method");
  }
}

class AnonymousDemo {
  
  public void showDemo() {
    //Anonymous class
    Test t = new Test() {
      public void print() {
        System.out.println("Anonymous Demo print method");
      }
    };
    t.print();
  }
}
public class AnonymousClass {
  
  public static void main(String[] args) {
    AnonymousDemo a = new AnonymousDemo();
    a.showDemo();

  }

}
Anonymous Demo print method

Dentru a classe AnonymousDemo, creemu una classe anonima allargendu a classe Test è annullendu u metudu di stampa. Dunque, chjamendu u metudu showDemo (), chjama u metudu anonimu di stampa ().

176. Cosa hè un'interfaccia annidata?

Una interfaccia in un'altra interfaccia o una classe hè a interfaccia imbricata. Un esempiu megliu hè u Plus interfaccia. Questu hè definitu in u Map interfaccia. Hè per quessa chì l'accedemu cù l'usu Mappa. Entrata è ùn pò micca accede direttamente à l'interfaccia d'entrata. L'usu principale di l'interfaccia annidata hè chì permette di implementà solu una interfaccia particulare in una interfaccia raggruppata. Pudemu sempre accede à l'interfaccia interna solu aduprendu l'interfaccia esterna. Per impostazione predefinita, l'interfacce annidate sò statiche è publiche. Tuttavia, pudemu cambià u tipu d'accessu di l'interfaccia interna.

177. Una classa pò avè un'interfaccia?

Ié, pudemu definisce un'interfaccia in una classe. Questu hè ancu chjamatu una interfaccia annidata.

178. Una interfaccia pò avè una classe?

Ié, un'interfaccia pò avè una classe chì hè statica per difettu.

179. Cosa hè a raccolta di i rifiuti?

A raccolta di rifiuti hè un prucessu di gestione automatica di a memoria chì libera a memoria cancellendu l'oggetti inutilizati. In questu modu gestisce in modo efficace a memoria è ùn ci hè bisognu di distruzzione manuale o cancellazione di l'ughjettu. Questa hè a ragione per chì e variabili chì i valori sò dichjarati solu è micca inizializzati restituiscenu un valore 0.

180. Chì ghjè gc ()?

U metudu gc () face parte di a classa System and Runtime chì hè aduprata per invucà u cullettore di i rifiuti esplicitamente per u prucessu di pulizia. Invucendu stu metudu, libera a memoria di l'uggetti inutilizati.

public class GarbageDemo {

  public void finalize() {
    System.out.println("Garbage collected");
  }
  public static void main(String[] args) {
    GarbageDemo g1 = new GarbageDemo();
    GarbageDemo g2 = new GarbageDemo();
    
    g1 = null;
    g2 = null;
    System.gc();

  }

}

Chjama u metudu di finalizazione quandu u metudu gc () hè invucatu è libera u spaziu di l'ogetti g1 è g2. Dunque chjama u metudu di finalizà duie volte.

181. Cumu hè cuntrullata a raccolta di spazzatura?

U prucessu di raccolta di i rifiuti hè cuntrullatu da a Macchina Virtuale Java (JVM) automaticamente quandu ci hè menu memoria o manca di memoria. Pudemu ancu cuntrullallu esternamente chjamendu u metudu System.gc () per pulì l'oggetti inutilizzati è liberà cusì a memoria.

182. Cumu pudemu micca riferisce un oggettu in Java?

Ci hè 3 modi per unreferenziatu un oggettu in Java:

  • Annullà l'ughjettu o assignà un valore nullu à l'ughjettu.
    Student s = new Student();
    s = null;
  • Assignazione di riferimentu à un altru oggettu.
    Student s1 = new Student();
    Student s2 = new Student();
    s1 = s2;
  • Ughjettu anonimu.
    new Student();

183. À chì ghjova u metudu finalize ()?

U metudu finalize () face parte di u prucessu di raccolta di i rifiuti chì hè chjamatu una volta chì i rifiuti sò raccolti. U cullettore di Garbage pulisce l'uggetti chì sò creati cù a nova parola chiave. Per altri, pudemu aduprà u metudu di finalizazione per pulì. U metudu di finalizazione hè presente in a classa Object è dunque pò esse annullatu da qualsiasi classa postu chì a classe Object hè a superclasse per tutte e classi.

184. Pudemu riferisce dinò un ogettu senza riferenza?

Ié, pudemu riferisce dinò un oggettu senza riferenza.

185. Cumu si chjama u filu di u cullettore di i rifiuti?

U filu di u cullettore di i rifiuti usa u filu Daemon.

186. Chì ci hè a differenza trà finale, infine è finalizà?

finale: finale hè una parolla chjave chì hè aduprata per impone restrizioni à una classa, metudu o variabile. Ùn pudemu micca eredità una classe finale, ùn pudemu micca annullà un metudu finale, è ùn pudemu micca cambià un valore finale.

infine: infine hè un bloccu chì hè adupratu per eseguisce un codice impurtante durante a gestione di l'eccezzioni.

finalizà: finalize hè un metudu chì hè adupratu cum'è parte di a raccolta di spazzatura per liberà a memoria cancellendu o distruggendu l'oggetti inutilizzati.

187. Chì ghjè l'usu di a classe Runtime?

A classa Runtime hè una sottuclasa di a classa Object chì furnisce infurmazioni nantu à l'ambiente currente attuale. Pudemu aduprà u getRuntime () metudu per uttene una riferenza à l'ughjettu attuale di runtime. Hà parechji metudi cum'è gc (), exit (), halt (), ecc.

188. Cumu invucà un prucessu esternu in Java?

import java.io.IOException;

public class Sample {

  public static void main(String[] args) throws IOException {
    Runtime.getRuntime().exec("notepad");

  }

}

189. Chì ghjè a ghjerarchia di e classi InputStream è OutputStream?

Gerarchia StreamClassPin

190. Cosa hè un IOStream?

Java IOStream hè un prucessu per eseguisce operazioni di lettura è scrittura. Un flussu hè una sequenza di dati in forma di bytes. Un InputStream hè adupratu per leghje dati è un OutputStream hè adupratu per scrive dati. Ci hè 3 sfarenti tippi di flussi in Java:

  • Flussu di input: System.in - Questu hè adupratu per leghje dati da u flussu di input.
  • Flussu di output: System.out - Questu hè adupratu per scrive dati à u flussu di output.
  • Flussu di errore: System.err - Stampa missaghji di errore.

191. Chì ci sò e differenze trà e classi di Lettore / Scrittore è e classi InputStream / OutputStream?

Classe di lettore / scrittore:

  • Hè orientatu à i caratteri è hè chjamatu classu CharacterStream
  • Esegue l'operazione di input / output per u sistema Unicode à 16 bit.
  • E classi più aduprate sò FileReader è FileWriter.

Classe InputStream / OutputStream:

  • Hè orientatu à u byte è hè chjamatu classe ByteStream.
  • Esegue l'operazione di input / output per byte 8-bit.
  • E classi più aduprate sò FileInputStream è FileOutputStream.

192. Quali sò e super classi per tutti i flussi?

E classi di flussu ponu esse divise in dui tippi: ByteStream e CharacterStream.

E classi ByteStream cuntenenu classi InputStream è OutputStream. A superclasse per questi flussi hè java.io.InputStream è java.io.OutputStream.

U CharacterStream cuntene classi di Lettore è Scrittore. A superclasse hè java.io.Reader è java.io.Writer.

193. Cosa hè FileInputStream è FileOutputStream?

A classa FileInputStream hè aduprata per leghje i dati da u schedariu d'entrata. Leghje i dati in forma di bytes. Pò esse ancu adupratu per leghje caratteri ma FileReader hè una megliu opzione per i dati orientati à i caratteri.

A classa FileOutputStream hè aduprata per scrive dati in u fugliale.

194. Chì ghjè l'usu di e classi BufferedInputStream è BufferedOutputStream?

E classi BufferedInputStream è BufferedOutputStream sò aduprate per leghje è scrive dati aduprendu u meccanisimu buffer. Scrive i dati in un buffer invece di scrive direttamente in un flussu. Dunque rende l'operazione di lettura è scrittura più rapida.

195. Cumu stabilisce permessi per un fugliale in Java?

Pudemu cambià i permessi à un schedariu in Java cù a classa FilePermission. Sta classa cuntene permessi relativi à un repertoriu o un fugliale. Avemu bisognu di stabilisce i permessi relativi à u percorsu di u fugliale.

196. Chì sò FilterStreams?

Classi FilterStream furnisce funzionalità supplementari à e classi di flussu. Funziona cum'è un'interfaccia induve leghje i dati, i filtra è poi passa i dati filtrati à u chjamante.

197. Chì hè un filtru I / O?

U filtru I / O esegue l'operazione di filtrazione nantu à i flussi di input / output cum'è manipolazione di dati o modificazione. Leghje i dati, i filtra è poi passa i dati filtrati. Ci sò sfarenti filtri di filtri IO cum'è FilterInputStream è FilterOutputStream.

198. Chì sò i diversi modi di leghje input da a cunsula in Java?

Ci hè 3 modi diffirenti per leghje l'input da a cunsola in Java:

    • BufferedInputStream: Què leghje l'input da System.in è l'imballa in InputStreamReader è poi u passa à u BufferedReader.
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
      
      public class BufferedReaderDemo {
      
        public static void main(String[] args) throws IOException {
          System.out.println("Enter a word: ");
          BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));   
              String value = reader.readLine();   
              System.out.println("Word is: " + value);     
      
        }
      
      }
      
      Enter a word: 
      Java
      Word is: Java
      

 

  • Classe di scanner: Lu Scanner Java class hè adupratu per uttene input di l'utente da diversi flussi cum'è input di l'utente, file, è a stringa di input.

 

    • Questa classe face parte di u pacchettu java.util. Utilizendu vari metudi integrati, pò leggere diversi tipi di input.

 

import java.util.Scanner;
public class ScannerDemo1 {
  public static void main(String[] args) {
    System.out.println("Enter your name:");
    Scanner sc = new Scanner(System.in);
    String s = sc.nextLine();
    System.out.println("Your name is " + s);
    sc.close();
  }
}
Enter your name:
Ravi Kumar
Your name is Ravi Kumar
  • Classe di cunsola: Hè adupratu per uttene l'input da a console.

199. Chì hè a serializazione?

A serializazione hè u prucessu di cunvertisce u statu di l'ughjettu in un flussu byte chì include l'oggettu dati è u so tipu è u tipu di dati chì guarda. ObjectInputStream è ObjectOutputStream cuntenenu metudi per serializà è deserializà un oggettu. Stu prucessu hè JVM indipendente chì significa chì pudemu serializà in una piattaforma è deserializà in un'altra piattaforma.

200. Cumu pudete fà una classa serializabile?

Pudemu fà una classa serializabile implementendu l'interfaccia Serializable.

201. Cumu pudete evità a serializazione in a classa figliola se a classa di basa implementa l'interfaccia Serializable?

Ùn hè micca pussibule d'evità a serializazione direttamente in una classa figliola se a classa di basa implementa l'interfaccia Serializable. Ma pudemu eseguisce implementendu i metudi writeObject è readObject in a sottuclasse è lancià NotSerializableException.

202. Pudete un oggettu serializatu esse trasferitu via rete?

Ié, hè pussibile trasferisce un oggettu serializatu via rete postu chì hè memorizatu in a memoria in forma di bytes. Hè ancu pussibule di scrive in una basa di dati o un discu.

203. Chì hè a deserializazione?

A Deserializazione hè u prucessu di ristabilisce u statu di l'ughjettu da a forma byte o statu serializatu.

204. Chì hè una parolla chjave transitoria?

Una parolla chjave transitoria hè aduprata per evità u prucessu di serializazione. Questu significa chì una variabile hè dichjarata cum'è transitoria, ùn la pudemu micca serializà è ùn pudemu micca scrive u so valore o mantene u so valore.

205. Cosa hè esternalizabile?

Externalizable hè una interfaccia chì hè aduprata per scrive un statu di ughjettu in un flussu di byte in un furmatu cumpressu.

206. Chì differenza hè trà l'interfaccia Serializabile è Esternizabile?

SerializableEsternisabile
Hè una interfaccia marcatura chì significa chì ùn cuntene alcun metudu.Ùn hè micca un'interfaccia di marcatori è cuntene metudi cum'è writeExternal () è readExternal ()
Ùn chjama alcun costruttore di classe durante a serializazioneChjama u costruttore publicu predefinitu
U rendiment hè lentuU rendiment hè veloce è megliu
A classe chì mette in opera l'interfaccia dà a responsabilità à a JVM per serializà un oggettu.Fornisce a responsabilità à u sviluppatore di scrive a so logica propria.

207. Cosa hè a prugrammazione di socket in Java?

Socket programendu a cumunicazione trà 2 nodi diversi (socket) nantu à una rete. In altre parolle, stabilisce a cumunicazione trà l'applicazioni chì ghjunghjenu in diversi JRE. cum'è un cliente è un servitore. Pò esse orientatu à a cunnessione o senza cunnessione. Per a cunnessione orientata, usamu e classi Socket è SocketServer è per cunnessioni, usamu classi DatagramSocket è DatagramPacket. U cliente deve cunnosce l'indirizzu IP di u servitore è u numeru di portu per stabilisce una cunnessione.

208. Chì hè una presa?

Un socket hè un puntu finale chì facilita a cumunicazione trà 2 applicazioni chì utilizanu TCP. Usemu a classa Socket per creà un socket. Un socket usa u numeru di portu è l'indirizzu IP per stabilisce a cumunicazione.

209. Chì sò i passi per cunnette dui urdinatori cù TCP?

  • Crea un oggettu ServerSocket in u servitore chì denota u numeru di portu cù quale a cunnessione deve esse fatta.
  • Invoca u metudu accept () in u servitore chì aspetta finu à chì u cliente tenta di cunnessione cù u servitore in u portu datu.
  • Intantu, crea un socket in a classa cliente cù a classa Socket. U costruttore di classe Socket piglia u numeru di u portu di u servitore è u nome di u servitore cum'è parametri.
  • U costruttore di classi Socket prova à cunnette si à u servitore cù u nome specificatu. Se riesce, u cliente averà un oggettu socket per cunnette cù u servitore.
  • U metudu accept () di u servitore torna avà una riferenza à u novu socket chì u cliente hà creatu.

210. Scrivite un prugramma Java per stabilisce una cunnessione trà cliente è servitore.

Latu server:

import java.io.DataInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {

  public static void main(String[] args) {
    try {
      ServerSocket ss = new ServerSocket(5555);
      Socket s = ss.accept();
      DataInputStream di = new DataInputStream(s.getInputStream()); 
      String str = (String)di.readUTF();
      System.out.println("Message: " + str);
      ss.close();
    }
    catch(Exception e) {
      System.out.println(e);
    }

  }

}

Latu Cliente:

import java.io.DataOutputStream;
import java.net.Socket;

public class ClientDemo {

  public static void main(String[] args) {
    try {
      Socket s = new Socket("localhost",5555);
      DataOutputStream dos = new DataOutputStream(s.getOutputStream());
      dos.writeUTF("Socket connection program");
      dos.flush();
      s.close();
    }
    catch(Exception e) {
      System.out.println(e);
    }

  }

}
Message: Socket connection program

211. Cume cunvertisce l'indirizzu IP numericu in un nome host?

Pudemu aduprà a classe InetAddress per uttene u nome di l'ospite aduprendu metudi getByName ("ipaddress"). GetHostName ().

import java.io.*;
import java.net.*;
public class ConvertNumericToHost {

  public static void main(String[] args) {
    try {
      InetAddress ia = InetAddress.getByName("192.18.97.39");
      System.out.println("Host Name: " + ia.getHostName());
    }
    catch(Exception e) {
      System.out.println(e);
    }

  }

}
Host Name: oc-192-18-97-39.compute.oraclecloud.com

212. Chì ghjè una riflessione in Java?

A Riflessione in Java hè un mecanismu per mudificà u cumpurtamentu di i metudi, classi o interfacce in tempu di esecuzione. E classi di supportu sò presenti in u java.lang.reflect pacchettu. Offre ancu informazioni nantu à e classi è i metudi di l'ughjettu à u quale appartene.

213. Chì ghjè l'usu di java.lang.Class class?

  • Fornisce assai metudi di utilità cum'è getClass (), forName (), ecc.
  • Permette di creà un esempiu di una classe senza aduprà u novu operatore.
  • Fornisce metudi per cambià u comportamentu di runtime di una classe
  • Inoltre furnisce metudi per uttene i metadati di una classe durante u runtime.

214. Quali sò i diversi modi per istancià a classe Class?

Ci hè 3 modi diversi per creà un oggettu per u Scola classe:

  • Class.forName ("nome_classe"): forName hè u metudu di fabbrica per creà un esempiu dapoi u Scola classa ùn hà alcun costruttore. Avemu bisognu di specificà u nome di classe cumpletamente qualificatu in u parametru per u quale avemu bisognu di creà un'istanza.
  • MyClass.class: Questu hè principalmente usatu per primitivi tipi di dati quandu sapemu u so nome di classe. Se specificemu .class dopu à un nome di classe, representa un oggettu per quella classe.
  • obj.getClass (): Hè prisente in a classa Object è restituisce a classa di runtime di l'ughjettu specificatu.

215. Chì hè u risultatu di u codice sottu?

class TestDemo {
  TestDemo() {
    System.out.println("Test class constructor");
  }
  
  public void print() {
    System.out.println("Print method in Test class");
  }
}
public class ReflectionDemo {

  public static void main(String[] args) throws InstantiationException, IllegalAccessException {
    try {
      Class a = Class.forName("TestDemo");
      TestDemo t = (TestDemo)a.newInstance();
      t.print();
      
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    

  }

}
Test class constructor
Print method in Test class

216. Chì ghjè l'usu di javap?

U cumandamentu javap furnisce dettagli nantu à i costruttori, i metudi, i campi di a classe in u fugliale di classe.

217. Pudete accede à u metudu privatu da fora di a classe?

Iè, hè pussibule di cambià u cumpurtamentu di runtime di a classe basta chì a classe ùn sia micca sicura.

218. Chì sò e classi di involucri?

E classi Wrapper in Java sò aduprate per accede à tippi di dati primitivi cum'è Oggetti. Questu hè principalmente adupratu mentre aduprate cù e Collezioni cum'è ArrayList o LinkedList induve avemu bisognu di specificà a classe di involucru è micca primitiva tipo di dati. Ci hè 8 classi di involucri dispunibili per 8 primitivi tipi di dati in u pacchettu java.lang.

Tipu Primitivu di DatiClasse Wrapper
booleanuBooleanu
byteByte
longerChar
doppiadoppia
floatFloat
tramInteger
tantuLong
cortuShort

219. Chì vulete dì cù autoboxing è unboxing è induve l'utilizemu?

Autoboxing hè u prucessu in quale cunvertemu primitivi tipo di dati in ogetti. Es: int à Unteger Unboxing hè u prucessu in u quale cunvertemu l'ughjettu torna in un tipu di dati primitivi. Esempiu: Integer à int.

Entrambi i prucessi si verificanu automaticamente in Java, tuttavia, pudemu fà ancu esternamente in e situazioni seguenti:

  • Mentre aduprate Cullizzioni cum'è ArrayList o LinkedList.
  • Crià una istanza di classi parametrizzati cum'è ThreadLocal
  • Quandu assignemu un tipu primitivu à un tipu d'oggettu.

220. Chì hè u risultatu di u codice sottu?

public class WrapperDemo {

  public static void main(String[] args) {
    Double d = new Double(45.45);
    Double f = new Double(55.55);
    if(d == f) {
      System.out.println("Both Double objects are equal");
    }
    else
      System.out.println("Both Double objects are not equal");
    

  }

}
Both Double objects are not equal

A stampa stampata "Tramindui l'ughjetti Doppii ùn sò micca uguali" postu chì hà 2 referenze diverse aduprendu a nova parola chiave.

221. Chì hè a clonazione d'ogetti?

A clonazione di l'ughjettu hè u prucessu di creà una copia bassa di l'ughjettu. Pudemu aduprà u metudu clone () di a classe Object per clonà un oggettu. A classe hà da implementà l'interfaccia Clonabile induve l'ughjettu deve esse clonatu altrimente lancerà CloneNotSupportedException.

222. Chì sò i vantaghji è i svantaghji di a clonazione d'ogetti?

vantaghji:

  • I dui oggetti (l'ughjettu originale è l'ughjettu clonatu) ponu esse mudificati indipindente.
  • U metudu clone () hè u modu u più veloce per cupià un array
  • Richiede solu a creazione di una classe astratta cù u metudu clone () è dunque ùn richiede micca un codice ripetitivu.

Tu me:

  • Supporta solu a copia bassa.
  • Ùn hà nisun costruttore.
  • Avemu da includere parechje sintassi à u nostru codice per implementà u metudu di clone cum'è implementà l'interfaccia Clonabile, definisce u metudu di clone, è gestisce l'eccezione.
  • Postu chì l'interfaccia Clonabile ùn hà alcun metudu, avemu bisognu di istruisce a JVM chì avemu bisognu di fà una operazione di clonazione.

223. Chì hè un metudu nativu?

Un metudu nativu hè un metudu in Java induve pudemu scrive implementazioni in lingue diverse da Java.

224. Chì ghjè l'usu di a parolla chjave strictfp?

A parolla chjave strictfp in Java furnisce u listessu risultatu per l'operazione aritmetica in virgule flottante in ogni piattaforma. Questu significa chì dà risultati cù u listessu valore di precisione in ogni piattaforma.

225. Chì ghjè l'usu di a classe System?

Pudemu aduprà a classa di Sistema per accede à e risorse di u sistema cum'è input è output Standard. Ùn pudemu micca creà un esempiu per a classe System. Fornisce supportu cum'è input standard, output standard, è errore standard.

226. Chì hè u termine adupratu per a copia superficiale in Java?

Clonazione di l'ughjettu

227. Cosa hè una classa singleton?

Una classa singleton in Java significa chì ùn pudemu micca creà più d'una istanza per una classe. Questu significa chì pudemu creà solu un ughjettu per a classa singleton. Ancu se pruvemu à creà una seconda istanza, si riferirà à a prima istanza è esegue operazioni basate annantu à questu. Pudemu creà una classa singleton in u modu sottu:

  • Dichjarate u costruttore cum'è privatu.
  • Aduprate u metudu staticu getInstance ().

228. Scrivi un prugramma per stampà tutti i valori furniti in a linea di cummanda.

public class TestClass {

  public static void main(String[] args) {
    for(int i=0;i<args.length;i++)
      System.out.println(args[i]);

  }

}

 

C:\Users\Downloads>javac TestClass.java

C:\Users\Downloads>java TestClass welcome to java programming
welcome
to
java
programming

229. Quali cuntenitori utilizanu un layout di frontiera cum'è layout predefinitu?

E classi Finestra, Cornice è Dialogu.

230. Chì cuntenenti utilizanu FlowLayout cum'è layout predefinitu?

E classi Panel è Applet.

231. Chì sò i cumpunenti senza pari?

I cumpunenti senza pari sò i cumpunenti ligeri. Swing hà e so bibliuteche chì ùn utilizanu micca i cumpunenti di i sistemi operativi. Quessi sò chjamati cumpunenti ligeri o senza pari.

232. Chì ci hè a differenza trà una Barra di Scroll è un ScrollPane?

U Scrollbar hè un cumpunente invece chì un ScrollPane hè un cuntainer chì gestisce l'eventi è esegue operazioni di scorrimentu.

233. Cosa hè una cumpunente ligera?

I cumpunenti ligeri utilizanu puramente u codice Java per rende unità grafiche è ùn dipendenu micca da u sistema operativu nativu. Per esempiu, Swing utilizza drawLine è drawImage per fà disegni grafichi.

234. Chì hè un cumpunente di pesu pesante?

U sistema Operativu chì dipende da l'utili di scuperta UI hè chjamatu cumpunenti di pesu pesu. Per esempiu, AWT utilizza classi grafiche furnite da u sistema operativu è hè limitatu à aduprà un sottogruppu minimu di l'elementi di schermu supportati da tutte e piattaforme.

235. Chì hè un applet?

L'applets sò picculi prugrammi chì sò prisenti in u navigatore è si eseguiscenu automaticamente. Fornisce funzionalità interattive per l'applicazioni web è funziona da u latu di u cliente quandu l'applicazione web hè invocata. Pò esse eseguitu in parechje piattaforme chì supportanu i navigatori è esegue assai più veloce. L'applet ùn hà micca o definisce un metudu main (). Quandu un applet hè creatu, esegue i metodi init (), start (), è paint (), è quandu hè distruttu, esegue i metodi stop () è destroy ().

236. Pudemu scrive una classa Java chì pò esse aduprata cum'è applet è applicazione?

Iè, pudemu aduprà una classa Java cum'è applet è applicazione definendu u metudu main ().

237. Cosa hè un Locale?

Un Locale riprisenta informazioni geografiche induve pudemu ottene dettagli cum'è nome di paese, lingua, ecc. A classa Locale hè presente in u pacchettu java.util. Pudemu istancià un oggettu Locale aduprendu u metudu getDefault (). Hà parechji metudi cum'è getLanguage (), getCountry (), ecc

import java.util.Locale;

public class LocaleDemo {

  public static void main(String[] args) {
    Locale l = Locale.getDefault();
    System.out.println(l.getCountry());
    System.out.println(l.getDisplayLanguage());
    System.out.println(l.getDisplayName());
    System.out.println(l.getLanguage());

  }

}
IN
English
English (India)
en

238. Cume caricà un locale specificu?

Pudemu aduprà u metudu ResourceBundle.getBundle () per carica un locale specificu.

239. Cosa hè un Java Bean?

Java Bean hè un cumpunente di software riutilizabile chì incapsula parechji oggetti in un unicu oggettu. Hè una classe chì hà un costruttore senza argumenti cun i metodi getter è setter. A classe di bean Java deve ancu implementà java.io.Serializable.

240. À chì serve un Java Bean?

L'usu principale di Java bean hè di furnisce riutilisabilità è mantenimentu faciule di codice. Incapsula parechji oggetti in un unicu oggettu chì si chjama un fasgiolu.

241. Cosa hè a pruprietà persistente di i fasgioli?

A pruprietà persistente di u fasgiolu Java si faci quandu i campi, e pruprietà è l'infurmazioni di u statu sò salvate è recuperate da u almacenamentu.

242. Cosa hè RMI?

RMI significa Invocazione à Metudu Remotu hè una API chì hè aduprata per creà applicazioni distribuite in Java. Supporta a cumunicazione trà duie applicazioni aduprendu stubs d'ughjettu è scheletru. RMI hè un mecanismu chì permette à un ughjettu d'invucà un altru oggettu chì risiede in una JVM diversa. Pudemu aduprà u java.rmi pacchettu per implementà RMI.

243. À chì ghjova u troncu è u scheletru?

Un stub hè una classa chì hè presente nantu à u latu di u cliente è rapprisenta l'ughjettu luntanu. Funziona cum'è una porta per u cliente.

Un scheletru hè a contraparte di u stub è si trova nantu à u servitore.

244. Chì sò i passi per scrive un prugramma RMI?

Di seguito sò i passi per scrive un prugramma RMI:

  • Crea una interfaccia remota
  • Implementate l'interfaccia remota
  • Cumpila a classa di implementazione è crea un stub è un scheletru aduprendu u strumentu rmic
  • Avvia u serviziu di registru
  • Crea è avvia l'applicazione remota
  • Crea è avvia l'applicazione clientela.

245. Chì ghjè l'usu di u tunneling HTTP in RMI?

U tunneling HTTP in RMI gestisce e cunnessioni HTTP aduprendu i servitori proxy è ùn richiede alcuna configurazione per travaglià in l'ambiente firewall.

246. Cosa hè JRMP?

JRMP significa Java Java Method Protocol chì si usa per riferisce à l'uggetti remoti. Hè un protokollu specificu Java è basatu in flussu chì corre sottu RMI. Richiede sia u cliente sia u servitore per aduprà l'oggetti luntani.

247. L'applicazioni basate nantu à RMI è CORBA ponu interagisce trà elle?

Ié, l'applicazioni basate in RMI è CORBA ponu interagisce l'una cù l'altra.

248. Scrivite un prugramma Java per fà una sorta di bolla.

public class BubbleSort {

  public static void main(String[] args) {
    int[] numbers = {25,12,89,45,65,35};
    int temp;
    for(int i=0;i<numbers.length;i++) {
      for(int j=0;j<numbers.length;j++) {
        if(numbers[i] < numbers[j]) {
          temp = numbers[i];
          numbers[i] = numbers[j];
          numbers[j] = temp;
        }
      }
    }

    System.out.println("Sorted list:");
    for(int i=0;i<numbers.length;i++)
      System.out.println(numbers[i]);
  }

}
Sorted list:
12
25
35
45
65
89

249. Scrivite un prugramma Java per eseguisce a ricerca Binaria.

import java.util.Scanner;

public class BinarySearch {

  public static void main(String[] args) {
    int count, num[], searchValue,first,last,middle;
    Scanner sc = new Scanner(System.in);
    
    //Get the number of elements to create a tree
    System.out.println("Enter the number of elements: ");
    count = sc.nextInt();
    
    //Create an array
    num = new int[count];
    
    //Store the elements in an array
    System.out.println("Enter the elements: ");
    for(int i=0; i<count; i++)
      num[i] = sc.nextInt();
    
    System.out.println("Enter the search element: ");
    searchValue = sc.nextInt();
    
    first = 0;
    last = count - 1;
    middle = (first+last)/2;
    
    while(first<=last) {
      if(num[middle]< searchValue) {
        first = middle + 1;
      }
      else if(num[middle] == searchValue) {
        System.out.println("The search element is present in the location: " + (middle + 1));
        break;
      }
      else {
        last = middle - 1;
      }
      middle = (first+last)/2;
    }
    if(first>last)
      System.out.println("The search element " + searchValue + " is not found in the tree.");

  }
  
  

}
Enter the number of elements: 
5
Enter the elements: 
10
20
30
40
50
Enter the search element: 
30
The search element is present in the location: 3

250. Scrivite un prugramma Java per fà a sorte di Selezzione.

public class SelectionSort {

  public static void main(String[] args) {
    int[] numbers = {30,50,10,40,20};
    int min;
    for(int i=0;i<numbers.length;i++) {
      min = i;
      for(int j=i+1; j< numbers.length; j++) {
        if(numbers[j] < numbers[min])
          min = j;
      }
      
      int temp = numbers[min];
      numbers[min] = numbers[i];
      numbers[i] = temp;
    }
    
    System.out.println("Selection sort:");
    for(int i =0;i<numbers.length;i++) {
      System.out.println(numbers[i]);
    }

  }

}
Selection sort:
10
20
30
40
50

251. Scrivite un prugramma Java per fà una ricerca Lineare.

import java.util.Scanner;
public class LinearSearch {

  public static void main(String[] args) {
    int[] numbers = {10,40,30,20,50};
    int index=0;
    Boolean bFlag = false;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the search element: " );
    int val = sc.nextInt();
    
    for(int i=0;i<numbers.length;i++) {
      if(numbers[i] == val) {
        bFlag = true;
        index = i+1;
        break;
      }
      else
        bFlag = false;
    }
    if(bFlag)
      System.out.println("The search element " + val + " is found at position " + index);
    else
      System.out.println("The search element " + val + " is not found");

  }

}
Enter the search element: 
30
The search element 30 is found at position 3

252. Scrivite un prugramma Java per eseguisce sorta Merge.

public class MergeSort {

  public void merge(int[] arr, int first, int middle, int last) {
    int l = middle - first + 1;
    int r = last - middle;
    
    int LA[] = new int[l]; //Create left array
    int RA[] = new int[r]; //Create right array
    
    //Copy data to both arrays
    for(int i=0;i<l;++i)
      LA[i] = arr[first+i];
    
    for(int j=0;j<r;++j)
      RA[j] = arr[middle+1+j];
    
    int i=0,j=0;
    int k = first;
    
    while(i<l && j<r) {
      if(LA[i] <= RA[j]) {
        arr[k] = LA[i];
        i++;
      }
      else {
        arr[k] = RA[j];
        j++;
      }
      k++;
    }
    
    while(i<l) {
      arr[k] = LA[i];
      i++;
      k++;
    }
    
    while(j<r) {
      arr[k] = RA[j];
      j++;
      k++;
    }
    
  }
  
  public void sort(int[] arr, int first, int last) {
    if(first<last) {
      int middle = (first+last)/2;
      //Sort the first half array
      sort(arr,first,middle);
      
      //Sort the second half array
      sort(arr,middle+1,last);
      
      //Merge both the arrays
      merge(arr,first,middle,last);
    }
  }
  public static void main(String[] args) {
    int[] numbers = {10,50,40,60,30,20};
    MergeSort m = new MergeSort();
    m.sort(numbers, 0, numbers.length-1);

    System.out.println("Merge sort: ");
    for(int n=0;n<numbers.length;n++)
      System.out.println(numbers[n]);
  }

}
Merge sort: 
10
20
30
40
50
60

253. Scrivite un prugramma Java per fà una sorta rapida.

public class QuickSort {
  
  //Partioning the array
  public int partition(int[] arr, int low, int high) {
    //Pivot value
    int pivot = arr[high];
    
    //index of small element
    int i = low-1;
    
    for(int j=low;j<high;j++) {
      if(arr[j]<=pivot) {
        i++;
        
        //swap the elements
        int t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
      }
    }
    
    //Swap the next element and last element
    int t = arr[i+1];
    arr[i+1] = arr[high];
    arr[high] = t;
    
    return i+1;
  }
  
  //Quick sort functionality
  public void quicksort(int[] arr, int low, int high) {
    if(low<high) {
      int p = partition(arr,low,high);
      
      //Recursively sort the elements
      quicksort(arr,low,p-1);
      quicksort(arr,p+1,high);
    }
  }

  public static void main(String[] args) {
    int[] num = {80,30,50,10,60,20};
    
    QuickSort q = new QuickSort();
    q.quicksort(num, 0, num.length-1);
    
    //Print the sorted elements
    for(int i=0;i<num.length;i++)
      System.out.println(num[i]);
  }

}
10
20
30
50
60
80

254. Scrivite un prugramma Java per creà una lista doppiamente ligata chì cuntene n nodi.

public class DoublyLinkedList {
  
  //Create a node class
  class Node {
    int value;
    Node prev;
    Node next;
    
    Node(int value) {
      this.value = value;
    }
  }
  
  //Initialize head and tail as null
  Node head,tail = null;
  
  //Add a node to doubly linked list
  void addNode(int value) {
    
    //Create a new node;
    Node n = new Node(value);
    
    //If list is empty, head and tail points to new node n
    if(head == null) {
      head = tail = n;
      
      //The prev and next value will be null
      head.prev = null;
      tail.next = null;
    }
    
    //Add the new node n to the end of the list
    else {
      tail.next = n;
      n.prev = tail;
      tail = n;
      tail.next = null;
    }
  }
  
  void print() {
    Node current = head;
    if(head == null) {
      System.out.println("Doubly linked list is empty");
      return;
    }
    System.out.println("Elements in

Doppiu ligatu

 list:");
    while(current!= null) {
      System.out.println(current.value);
      current = current.next;
    }
  }

  public static void main(String[] args) {
    DoublyLinkedList d = new DoublyLinkedList();
    d.addNode(40);
    d.addNode(20);
    d.addNode(30);
    d.addNode(10);
    d.addNode(50);
    
    d.print();
    
  }

}
Elements in Doubly linked list:
40
20
30
10
50

255. Scrivite un prugramma Java per truvà u valore massimu è minimu node da una lista circulare ligata.

public class CircularLinkedList {
  
  public class Node {
    int value;
    Node next;
    
    public Node(int value) {
      this.value = value;
    }
  }
  
  //Initialize head and tail node as null
  public Node head = null;
  public Node tail = null;
  
  //Add new node at the end of the list	
  void add(int value) {
    Node n = new Node(value);
    
    //Check if list is empty, then assign head and tail as new node
    if(head == null) {
      head = n;
      tail = n;
      n.next = head; //Next node value will point back to head since it is circular linked list
    }
    
    //Assign new node to the tail
    else {
      tail.next = n;
      tail = n;
      tail.next = head;
    }
  }
  
  //Find minimum node value
  public void minNodeValue() {
    Node current = head;
    
    //Assign min as current node value
    int min = head.value;
    
    if(head == null) {
      System.out.println("List is empty");
    }
    
    else {
      do {
        if(min > current.value) {
          min = current.value; //Reassign min value if current value is lesser than min
        }
        current = current.next;
      }while(current != head);
      
      System.out.println("Minimum node value is: " + min);
    }
  }
  
  //Find maximum node value
  public void maxNodeValue() {
    Node current = head;
    
    //Assign max as current node value
    int max = head.value;
    
    if(head == null) {
      System.out.println("List is empty");
    }
    else {
      do {
        if(max < current.value) {
          max = current.value; //Reassign max value if current value is greater than max
        }
        current = current.next;
      }while(current != head);
      
      System.out.println("Maximum node value is: " + max);
    }
  }

  public static void main(String[] args) {
    CircularLinkedList c = new CircularLinkedList();
    c.add(20);
    c.add(30);
    c.add(10);
    c.add(50);
    c.add(40);
    
    //Find min node value
    c.minNodeValue();
    
    //Find max node value
    c.maxNodeValue();
  }

}
Minimum node value is: 10
Maximum node value is: 50

256. Scrivi un prugramma Java per truvà a differenza trà a somma di nodi di livello dispari è nodi di livellu paru di un arburu Binariu.

import java.util.LinkedList;
import java.util.Queue;

public class BinaryTreeDifference {

  public static class Node{
    int value;
    Node left;
    Node right;
    
    public Node(int value) {
      this.value = value;
      this.left = null;
      this.right = null;
    }
  }
  
  //Root of binary tree
  public Node root;
  
  public BinaryTreeDifference() {
    root = null;
  }
  
  public int diff() {
    int oLevel = 0, eLevel = 0, diffOddEven = 0;
    
    //To track number of nodes in each level
    int nodesInLevel = 0;
    
    //Tracks the current level
    int curLevel = 0;
    
    //Queue to track nodes level in a tree
    Queue<Node> queue = new LinkedList<Node>();
    
    //Check if root is null
    if(root == null) {
      System.out.println("Tree is empty");
      return 0;
    }
    
    else {
      //Add root node to queue to represent first level
      queue.add(root);
      curLevel++;
      
      while(queue.size() != 0) {
        //Holds number of elements in the queue
        nodesInLevel = queue.size();
        
        while(nodesInLevel > 0) {
          Node current = queue.remove();
          
          //Check if level is even
          if(curLevel%2 == 0)
            eLevel += current.value;
          else
            oLevel += current.value;
          
          //Add left child to queue
          if(current.left != null)
            queue.add(current.left);
          
          if(current.right != null)
            queue.add(current.right);
          nodesInLevel--;
        }
        curLevel++;
      }
      
      //Calculate the difference
      diffOddEven = Math.abs(oLevel - eLevel);
    }
    
    return diffOddEven;
    
  }
  public static void main(String[] args) {
    BinaryTreeDifference bt = new BinaryTreeDifference();
    
    bt.root = new Node(10);
    bt.root.left = new Node(20);
    bt.root.right = new Node(30);
    bt.root.left.left = new Node(40);
    bt.root.left.right = new Node(50);
    bt.root.right.left = new Node(60);
    
    System.out.println("Difference between odd and even level: " + bt.diff());
  }

}
Difference between odd and even level: 110

257. Cosa hè u multithreading?

Multithreading hè una tecnica multitasking induve unu o più prucessi sò eseguiti simultaneamente in u stessu tempu. Què risulta in una utilizzazione massima di CPU è dunque furnisce un rendimentu megliu è cunsuma menu memoria. Ogni prucessu hè chjamatu filu chì esegue in modu indipendente. Hè chjamatu ancu cum'è multithreading basatu in Thread.

258. Chì hè un filu in u multithreading?

Un filu hè un sottoprogramma o prucessu individuale chì si esegue in modu indipendente durante u prucessu multithreading. Sparte e stesse risorse ma esegue sempre separatamente. Hè leggeru è hà parechji stati cum'è NOUVEAU, BLOCCATU, CORRIBILE, ASPETTATU, TERMINATU, TIMED_WAITING. Un filu pò esse solu in un statu à a volta.

259. Chì differenza ci hè trà un filu è un prucessu?

prucessua discursata
U prugramma principale in esecuzione hè chjamatu prucessuUn filu hè un sottogruppu o parte di un prucessu
Hà indirizzi diversi è occupa diversa memoriaSparte listesse risorse è memoria
A cunversione di u cuntestu hè più lentaA cunversione di u cuntestu hè più rapida
A cumunicazione trà processi hè più lenta è caraA cumunicazione inter-filu hè più rapida è menu cara
U cambiamentu in u prucessu di i genitori ùn influenza micca u prucessu di i zitelliU cambiamentu di filu principale pò influenzà u filu zitellu

260. Chì hè a cumunicazione inter-thread?

A cumunicazione inter-filu hè u prucessu in u quale i fili sincronizzati cumunicanu cù l'altri in u stessu tempu. Questu accade quandu un filu hè in pausa in una situazione critica è un altru filu entra in a stessa situazione critica per cuntinuà u prucessu di esecuzione. Pudemu ottene questu aduprendu i metudi wait (), notification (), e notificationAll ().

261. Chì ghjè l'usu di u metudu wait () in Java?

U metudu wait () face parte di a classa Object chì hè aduprata in u prucessu di cumunicazione inter-thread. Quandu u metudu d'attesa hè eseguitu, aspetta finu à chì un altru thread invoca u metudu notification () o notificationAll () o finu à chì un tempu specificatu sia passatu.

262. Perchè duvemu chjamà u metudu wait () da un bloccu sincronizatu?

Adupremu u metudu wait () in un bloccu sincronizatu per a cumunicazione inter-thread altrimenti lancerà eccezione java.lang.IllegalMonitorStateException. Stu metudu wait () hè adupratu in un bloccu sincronizatu cun metudi di notification () o di notificationAll () per assicurà una cumunicazione curretta.

263. Chì sò i vantaghji di u multithreading?

  • Usu di risorse di sistema minimizatu
  • A risposta di u servitore hè megliu
  • Megliu cumunicazione
  • Flussu migliuratu
  • Diminuzione di i costi di manutenzione
  • Struttura di prugramma simplificata

264. Chì sò i sfarenti stati in un ciclu di vita di un filu?

Un filu pò esse in unu di i stati sottu. À u mumentu, pò esse solu in un statu.

  • NEW: Un filu hè creatu in questu statu cù u novu operatore. Un thread principia solu quandu chjama u metudu start ().
  • CORRENTI: U filu hè prontu à esecutà dopu à chjamà u metudu di iniziu. Cumencia à corre una volta chì hè sceltu da u pianificatore.
  • CORNU: U thread hè in un statu in esecuzione quandu hè pigliatu da u pianificatore.
  • Aspittendu / BLOCCATU: U filu ùn hè micca in esecuzione è aspetta per un altru thread per compie.
  • TERMINATU: U filu hè terminatu dopu chì esce da u metudu run ().

265. Chì ci hè a differenza trà pianificazione preventiva è tagliu di tempu?

Programmazione preventiva: Un compitu di alta priorità hè eseguitu finu à chì và à u statu in attesa / mortu o un altru compitu di alta priorità vene per l'esecuzione.

Affettazione di u tempu: Un compitu hè eseguitu per un tempu specificu è poi entra di novu in u gruppu di compiti pronti. U pianificatore determina quale compitu da sceglie basatu annantu à a priorità.

266. Cosa hè u cambiu di cuntestu?

A cunversione di u cuntestu significa chì u tempu di CPU hè spartutu in tutti i prucessi è cambia trà i prucessi in una manera ligata à u tempu. Ciò significa chì salva u statu di u prucessu è pò riprende da induve hè statu fermatu è cuntinuà l'esecuzione.

267. Chì differenza hè trà a classe Thread è l'interfaccia Runnable per creà un thread?

Pudemu creà un filu in 2 modi diffirenti:

  • Stende a classe Thread - Se estende una classe Thread, allora ùn pò micca estende alcuna altra classe postu chì Java ùn supporta micca una eredità multipla. Ogni filu hà un ughjettu unicu. Supporta vari metudi integrati cum'è getPriority (), isAlive (), ecc.
  • Implementazione di a classe Thread cù l'interfaccia Runnable - Se implementemu l'interfaccia Runnable, pudemu ancu allargà altre classi. Filetti multipli spartenu u listessu oggettu. Supporta solu un metudu unicu chì hè u metudu run ().

268. Cosa hè un metudu join ()?

U metudu di unione face parte di a classe Thread chì aspetta l'esecuzione di u thread attuale per finì prima chì un altru thread sia eseguitu. Per esempiu, sì t hè un ogettu di filu di u filu attuale, allora unisci assicurerà chì t hè terminatu prima di piglià a prossima struzzione.

269. Descrivi u travagliu è l'usu di u metudu sleep ().

U metudu sleep () hè adupratu per fà aspittà u filu per un certu tempu. In altre parole, mette in pausa l'esecuzione di u thread per un tempu specificu.

Quandu un filu chjama u metudu di sonnu, l'esecuzione attuale di u filu hè in pausa per un tempu specificu è esegue altre fili se dispunibili. Una volta chì u periodu d'attesa hè cumpletu, riprende u filu precedente è cumencia à esecutà finu à chì compie l'esecuzione.

270. Chì differenza hè trà wait () è sleep ()?

wait (): Stu metudu face parte di a classa Object è pò liberà a serratura.

sonnu (): Stu metudu face parte di a classe Thread è ùn pò liberà a serratura.

271. Pudemu principià un filu duie volte?

No, pudemu ricumincià un filu di novu si hè dighjà principiatu. Questu hè chì una volta chì un filu inizia è esegue, passa à u statu mortu, Dunque lancerà IllegalThreadStateException se pruvemu à riavviare un thread.

272. Pudemu chjamà u metudu run () invece di u metudu start ()?

Ié, chjamà un metudu run () direttamente hè validu ma ùn funziunerà micca cum'è filu è ùn sustene micca a cunversione di cuntestu. Questu hè chì quandu chjamemu u metudu start (), chjama internamente u metudu run () chì crea una pila separata mentre chì se chjamemu u metudu run () direttamente ùn creerà micca una nova pila.

273. Chì sò i fili daemon?

I filamenti Daemon sò fili di bassa priorità chì supportanu servizii di fondo à i fili di l'utente. I thread Daemon sò terminati automaticamente da a JVM quandu tutti l'altri thread di utilizatori sò morti. Pudemu verificà se un filu hè un filu di daemon o micca è ancu stabilisce un filu cum'è filu di daemon.

274. Pudemu fà un filu d'utilizatore cum'è filu di daemon s'ellu hè digià principiatu?

Innò, pudemu fà fili d'utilizatori cum'è fili daemon solu prima di inizià u filu, altrimente tirerà IllegalThreadStateException.

275. Cosa hè un ganciu di spegne?

Un ganciu di spegne hè un filu chì hè invucatu implicitamente prima chì a JVM si fermi nurmale o brusquement. Dunque pò esse adupratu per pulì o liberà e risorse. Hè più efficiente chè u metudu finalizer (). Pudemu aghjunghje un ganciu di spegnimentu aduprendu u codice sottu:

public void addShutDownHook(Thread hook) { }
Runtime r = Runtime.getRuntime();
r.addShutdDownHook(new MyThread());

276. Quandu duvemu interrompe un filu?

Usemu u metudu interrupt () per interrompe un thread da u statu di sonnu o di u statu d'attesa. Stu metudu tira InterruptedException.

277. Chì hè a sincronizazione?

A sincronizazione hè u prucessu di cuntrullà l'accessu di i fili à una risorsa. Questu significa chì permette solu un solu filu per accede à a risorsa in u stessu tempu. A sincronizazione hè assai impurtante da aduprà in Java quandu parechje filate prova à uttene a stessa risorsa. A sincronizazione pò esse realizata in i modi seguenti:

  • Metudu sincronizatu
  • Blocu sincronizatu
  • Sincronizazione statica

278. Chì ghjè l'usu di un bloccu sincronizatu?

Un bloccu sincronizatu hè sempre marcatu cù a sincronizati parolla chjave. I blocchi sincronizzati cuntenenu tutte e risorse cumune. Questu significa chì un filu unicu pò accede solu à e risorse sparte à u listessu tempu. I fili restanti saranu in un statu bluccatu. Stu bloccu chjude l'ughjettu per una risorsa cumuna.

synchronized(object_identifier) {
   //shared resources
}

279. Si ponu chjappà l'ogetti Java per un usu esclusivu da un filu datu?

Ié, pudemu bluccà un ogettu Java per usu esclusivu da un filu datu specificendu lu in un bloccu sincronizatu. In questu modu, solu un solu filu pò accede à l'ughjettu in un momentu particulare.

280. Cosa hè a sincronizazione statica?

Quandu usamu a parola chiave statica prima di un metudu, hè a sincronizazione statica. Questu significa chì a serratura hè nantu à a classe è micca nantu à l'ughjettu è à a volta solu un filu pò accede à a classe à un mumentu datu.

281. Chì differenza hè trà u metudu di notifica () è di notificaAll ()?

U metudu notification () sblocca un filu d'attesa unicu mentre u metudu notificationAll () sblocca tutti i thread chì sò in u statu d'attesa.

282. Chì vulete dì per impasse?

Deadlock hè una situazione in quale un filu aspetta una risorsa chì hè tenuta da un altru filu d'attesa. Questu significa chì nimu di i fili ùn hà micca a pussibilità di eseguisce è aspittà infinitu. Hè un cuncettu assai impurtante chì deve esse trattatu in codice.

283. Cume rilevà un impasse è cumu si pò evità?

Pudemu rilevà un impasse eseguendu u codice in u cmd è se esiste, un missaghju apparisce nantu à u cmd.

Evitendu a situazione di impasse

Pudemu evità una situazione di stallo cù i modi sottu:

  • Evite chjosi annidati
  • Evite serrature inutili
  • Usendu unione di filu

284. Chì ghjè un scheduler di filu in Java?

Un scheduler di filu face parte di a JVM chì decide chì filu deve esse eseguitu. In altre parolle, hè a respunsabilità di u scheduler di filu per piglià u filu per esecutà. Un scheduleru di filu hà adupratu dui meccanismi per selezziunà u filu: Pianificazione Preventiva, Affettazione di u tempu.

285. Ogni filu hà a so pila in prugrammazione multithread?

Ié, ogni filu hà a so propria pila in prugrammazione multithreaded rendendu cusì indipendente l'una da l'altra.

286. Cumu si ottiene a sicurezza di un filu?

Quandu un metudu o una classe pò esse aduprata da più fili senza prublemi, a chjamemu una filetta sicura. Pudemu uttene un prugramma sicuru di filu in i modi sottu:

  • Sincronizazione
  • keyword volatile
  • Utilizendu un mecanismu basatu in serratura
  • Atomic classi di wrapper.

287. Chì hè a cundizione di a razza?

Una cundizione di razza si verifica quandu più fili cercanu di accede à a stessa risorsa cumuna à u listessu tempu. Questa pò esse evitata aduprendu u cuncettu di sincronizazione.

288. Chì hè una parolla chjave volatile?

Una parola chiave volatile hè aduprata per uttene un prugramma sicuru di filu. Un cambiamentu in a variabile volatile hè cumunu à tutti i fili dunque una volta chì a variabile pò esse aduprata da un filu à a volta.

289. Cosa hè un gruppu di fili?

Un gruppu di fili hè un spaziu cumunu induve tutti i fili chì sò pronti è aspettanu per l'attribuzione di l'attività. U fornitore di servizii verifica u gruppu di fili è ripiglia un filu à a volta per l'esecuzione. Una volta finita l'attività, u filu tornerà torna à u gruppu di fili. Aduprendu a piscina di fili, pudemu arricchisce e prestazioni è uttene una migliore stabilità di u sistema.

290. Chì sò i cumpunenti principali di l'API di Cuncurrenza?

U java.util.concurrent cuntene assai cumpunenti chì sustenenu u sviluppu di l'API di Concorrenza cum'è elencate quì sottu:

  • Esecutore
  • Serviziu esecutore
  • ScheduledExecutorService
  • Future
  • CountdownLatch
  • CyclicBarrier
  • Semaforu
  • ThreadFactory
  • Blocking Queue
  • DelayQueue
  • Locks
  • Phaser

291. Cosa hè l'Esecutore in API di Concorrenza in Java?

L'interfaccia Esecutore di u java.util.concurrency cuntene cum'è metudu execute () per eseguisce qualchì compitu o cumandamentu datu. Se l'esecutore ùn pò micca accettà u compitu per l'esecuzione, lancerà RejectedExecutionException.

Sintassi:

public void execute(Runnable command)

292. Cosa hè BlockingQueue?

BlockingQueue sustene a prugrammazione asincrona. Hè una subinterfaccia di Coda chì supporta operazioni cum'è aspittà a dispunibilità di spaziu prima di inserisce un novu valore o d'aspittà chì a fila diventi micca viota prima di recuperà un valore.

293. Cumu implementà u prublema produttore-consumatore aduprendu BlockingQueue?

U mudellu produtore-cunsumatore hè u mudellu di integrazione più cumunu in a prugrammazione asincrona. Pudemu implementà questu aduprendu u BlockingQueue cum'è vistu in l'esempiu di seguitu:

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.Level;
import java.util.logging.Logger;

class Producer implements Runnable {
  
  private final BlockingQueue b;
  
  public Producer(BlockingQueue b) {
    this.b = b;
  }

  @Override
  public void run() {
    for(int i=0;i<5;i++) {
      try {
        System.out.println("Produced: " + i);
        b.put(i);
      }
      catch(InterruptedException e) {
        Logger.getLogger(Producer.class.getName()).log(Level.SEVERE,null,e);
      }
    }
    
  }
  
}

class Consumer implements Runnable {

  private final BlockingQueue b;
  
  public Consumer(BlockingQueue b) {
    this.b = b;
  }
  @Override
  public void run() {
    while(true) {
      try {
        System.out.println("Consumed: " + b.take());
      }
      catch(InterruptedException e) {
        Logger.getLogger(Consumer.class.getName()).log(Level.SEVERE, null,e);
      }
    }
    
  }
  
}

public class BlockingQueueDemo {

  public static void main(String[] args) {
    BlockingQueue b = new LinkedBlockingQueue();
    
    Thread p = new Thread(new Producer(b));
    Thread c = new Thread(new Consumer(b));
    
    p.start();
    c.start();

  }

}
Produced: 0
Produced: 1
Produced: 2
Produced: 3
Produced: 4
Consumed: 0
Consumed: 1
Consumed: 2
Consumed: 3
Consumed: 4

 

294. Chì differenza hè trà l'interfaccia Java Callable è l'interfaccia Runnable?

Sia l'interfaccia Java Callable sia l'interfaccia Runnable sò aduprate da e classi chì volenu eseguisce più fili. Tuttavia, ci sò alcune differenze cum'è quì sottu:

Interfaccia chjamabileInterfaccia runnable
L'interfaccia pò restituisce un risultatuL'interfaccia ùn pò micca restituisce un risultatu
Pò lancià un'eccezione verificataÙn pò micca lancià un'eccezione verificata
L'interfaccia Callable supporta solu dopu Java 5L'interfaccia Runnable pò esse aduprata ancu prima di Java 5

295. Cosa hè l'azzione atomica in Cuncurrenza in Java?

L'azione atomica hè aduprata per fà una sola mansione chì ùn richiede alcuna dipendenza o interferenza cù altre operazioni. L'operazione atomica ùn pò micca esse fermata in mezu. Questu significa una volta chì principia hà da compie cumpletamente u compitu.

Esempiu di operazioni atomiche: Tutte l'operazione di lettura è scrittura per una variabile primitiva (eccettu longa è doppia) è variabile volatile (cumprese longa è doppia).

Tutti i metudi atomichi sò prisenti in u pacchettu java.util.concurrent.

296. Cosa hè un'interfaccia di serratura in Concurrent in Java?

L'interfaccia di serratura hè aduprata per bluccà l'altri fili d'accede à un segmentu di codice chì hè adupratu attualmente da un altru filu. Supporta u meccanisimu di sincronizazione. Hè simile à un bloccu sincronizatu tuttavia ci sò poche differenze.

A principal diferenza hè chì un bloccu sincronizatu hè in un metudu mentre l'APIs di l'interfaccia Lock cum'è lock () è unlock () ponu esse metudi separati. L'interfaccia di serratura hà una opzione di timeout mentre u bloccu sincronizatu ùn hà micca.

297. Cosa hè l'interfaccia ExecutorService

ExecutorService hè una subinterfaccia di l'Esecutore è supporta l'elaborazione asincrona. Hà caratteristiche per gestisce tuttu u ciclu di vita.

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ConcurrencyDemo {

  public static void main(String[] args) {
    ExecutorService e = Executors.newFixedThreadPool(10);
    e.execute(new Runnable() {
       public void run() {
         System.out.println("Executor Service");
       }
    });
    e.shutdown();
  }

}
Executor Service

298. Chì differenza hè trà prugrammazione sincrona è asincrona in u cuncettu Thread?

In a prugrammazione sincrona, dopu avè assignatu un compitu à un filu è cuminciatu u compitu, hè dispunibule per altri compiti solu una volta compiu.

In a prugrammazione asincrona, più fili ponu compie u listessu travagliu è dunque prumove a massima usabilità.

299. Chì hè Callable è Future in Java?

L'interfaccia Java Callable hè stata introdotta da Java 5 è face parte di u pacchettu java.util.concurrent. Hà un metudu run () per supportà l'esecuzione è pò restituisce un risultatu è lancià una eccezione ancu.

L'interfaccia Java Future restituisce u risultatu di u prucessu simultaneu. L'interfaccia Callable restituisce l'ughjettu di java.util.concurrent.Future. L'interfaccia futura Java supporta l'implementazione per vari metodi cum'è cancel (), get (), isCancelled (), isDone ().

300. Chì differenza hè trà l'interfaccia ScheduledExecutorService è ExecutorService?

L'interfacce ScheduledExecutorService è ExecutorService sò parte di u pacchettu java.util.concurrent. A differenza principale hè chì u Serviziu ScheduledExecutor pò eseguisce attività periodicamente è hà metodi addiziunali per eseguisce e attività Runnable è Callable.

301. Chì hè a classe FutureTask in Java?

A classe FutureTask furnisce l'implementazione di basa di l'interfaccia Future. Hà metudi per inizià è annullà u computazione. Pudemu ritruvà i risultati solu se u calculu hè cumpletu, altrimente u arrivare u metudu bloccherà se u computazione ùn hè micca cumpleta. Ùn hè micca pussibule di riavviare o annullà u calculu una volta compiu.

302. Cosa hè un framework di Collezione in Java?

Un framework di raccolta cuntene un elencu di classi è interfacce per archivà è manipulà dati. Stu quadru cuntene classi cum'è ArrayList, Vector, Stack, HashSet, ecc, è interfacce cum'è List, Queue, etc.

303. Chì differenza ci hè trà array è cullezzione?

CasalinghoCullezione
Hè una dimensione fissa è ùn pò micca cambià a dimensione in runtimeA dimensione pò esse cambiata dinamicamente è ùn hè micca fissata.
Pò almacenà solu listessu tippu di datiPò salvà una cumbinazione di valori di tippu di dati
Ùn hà micca metudi integrati cum'è tri o ricercaHà metudi integrati per sorte è ricerca
A prestazione hè rapidaU rendiment hè lentu
L'efficienza di a memoria hè menuL'efficienza di a memoria hè di più
Ùn hè micca implementatu basatu annantu à alcuna struttura di datiOgni classe in Raccolta hè implementata basatu annantu à qualchì struttura di dati

304. Chì sò e varie interfacce aduprate in un quadru di Raccolta?

U framework di Collezione cuntene varie interfacce cum'è elencate sottu:

  • Interfaccia di cullizzioni: Questa hè l'interfaccia primaria è ogni altra interfaccia deve implementà l'interfaccia di Raccolta. java.util.Collection
  • Interfaccia List: List hè una cullizzioni urdinata di elementi chì ponu almacenà duplicati valuta è estende l'interfaccia COllection. Pudemu accede à elementi aleatorii da una Lista. java.util.List
  • Set interfaccia: Set hè un'interfaccia chì ùn pò micca almacenà i valori duplicati è pò cumprende solu metudi ereditati di l'interfaccia di Raccolta. java.util.Set
  • Interfaccia di coda: L'interfaccia di fila archivia i dati in forma di basa First-In-First-Out (FIFO). java.util.Queue
  • Interfaccia Dequeue: Hè una fila doppia è implementa l'interfaccia Queue. Supporta sia l'operazione FIFO (First-In-First-Out-Out) di a coda sia l'operazione LIFO (Last-In-First-Out) di stack. Per via di questu, pudemu inserisce è sguassà elementi da i dui estremità. java.util.Dequeue
  • Interfaccia di a carta: Un'interfaccia Map guarda elementi in forma di coppie valore-chjave. Pò salvà solu chjave uniche ma pò cuntenenu duplicatu valori. Ùn implementa micca l'interfaccia di Raccolta. java.util.Map

305. Chì differenza hè tra ArrayList è Vector?

ArrayListVector
ArrayList ùn hè micca sincronizatuU vettore hè sincronizatu
Ùn hè micca una classa lascitaHè una classa lascita
Pò aumentà a so dimensione di 50% di a dimensione di l'arrayPò aumentà a so dimensione radduppendu
Ùn hè micca sicura di filuHè filu sicuru
Utilizza solu l'iteratore per attraversàUtilizza sia Enumerazione sia Iteratore per attraversà
E prestazioni ArrayList sò più velociE prestazioni vettoriali sò relativamente più lente

306. Chì differenza hè tra ArrayList è LinkedList?

ArrayListLinkedList
Utilizza un array dinamicu per archivà elementiAduprà Double LinkedList per archivà elementi
A prestazione hè più lentaU rendiment hè più veloce
Pò esse adupratu per implementà solu ListaPò esse adupratu per implementà Lista è Coda
Offre accessu casualeÙn furnisce micca accessu casuale
Ocupa menu memoria postu chì ùn guarda solu l'ughjettuOccupeghja più memoria postu chì guarda à tempu l'ughjettu è a riferenza di l'ughjettu
get (int index) dà prestazioni di O (1)get (int index) dà prestazioni di O (n)
E prestazioni di l'operazione di rimozione in u peghju casu hè O (n) è u megliu casu hè O (1)L'operazione di rimozione dà prestazioni di O (1)
U metudu Add dà prestazioni di O (n) in u peghju casuU metudu Aggiungi dà prestazioni di O (1)

307. Chì differenza hè trà Iterator è ListIterator?

IteratoreListIterator
Hè un iteratore universaleÙn hè micca un iteratore universale
Pò esse adupratu per ogni tipu di CollezionePò esse adupratu solu per e classi di implementazione di List
Supporta solu l'operazione di leghje è sguassàSupporta aghjunghje, aghjurnà, leghje è sguassà operazioni.
Pò esse adupratu solu per a navigazione avantiPò esse adupratu per a navigazione di direzzione avanti è inversa
Ùn hè micca un iteratore bidirezionaleHè un iteratore bidirezionale
Usemu u metudu iterator ()Adupremu u metudu listiteratore ().
Ùn pudemu micca specificà l'indice per l'iterazionePudemu specificà l'indice per l'iterazione

310. Chì differenza hè trà Iteratore è Enumerazione?

EnumerazioneIteratore
Dispunibule da JDK 1.0Dispunibule da JDK 1.2
Ùn hè micca un iteratore universaleHè un iteratore universale
Pò esse adupratu per iterà solu cullezzione lascite cum'è Vector, hashtablePò esse adupratu per iterà tutte e Raccolte
Supporta solu l'operazione di letturaSupporta l'operazione di lettura è di cancellazione
Hà nomi di metudu longu
Es: hasMoreElements ()
Hà nomi di metudi corti
Es: hasNext ()

311. Chì differenza ci hè trà List è Set?

ListPiazzà
Pò salvà elementi duplicatiPò almacenà solu elementi unichi
Hè una cullezzione urdinataHè una racolta senza ordine
Hà una sola classa lascita chì hè VectorÙn hà alcuna classa lascita
Pò salvà ogni numeru di valori nulliPò salvà solu un valore nullu

312. Chì differenza hè tra HashSet è TreeSet?

TreeSetHashSet
Mantene un ordine crescenteÙn mantene nisun ordine
A computazione hè più lentaA computazione hè più rapida
U costu di u tempu hè log (n)U costu di u tempu hè custante

313. Chì differenza hè trà Set è Mappa?

PiazzàMap
Set magazzini solu valoriA mappa guarda a chjave è i valori
L'inseme pò cuntene valori unichiA carta pò cuntene chjave uniche è duplicà valori
Pò tene un valore nulluPò tene una sola chjave nulla è più valori nuli

314. Chì differenza hè tra HashSet è HashMap?

HashSetHashMap
Implementa l'interfaccia SetImplementa l'interfaccia Map
Memorizza solu valoriMemorizza i dati in forma di coppia chjave-valore
Ùn pò micca avè valori duplicatiPò cuntene valori duplicati cù chjavi unichi
Pò avè solu un valore nulluPò tene una sola chjave nulla cù più valori nuli

315. Chì differenza hè tra HashMap è TreeMap?

TreeMapHashMap
Mantene un ordine crescenteÙn mantene nisun ordine
Ùn pò micca cuntene chjave nullaPò cuntene una chjave nulla
Hè una implementazione basata nantu à a struttura di l'arburuHè una implementazione basata in hashtable
Ùn permette micca valori nulliPermette più valori nulli
A classificazione hè più lentaL'urdinamentu hè più veloce
Utilizza a struttura di dati di l'arburu rossu-neruUtilizza una struttura di dati hashtable

316. Chì differenza hè tra HashMap è HashTable?

HashMapHashtable
Ùn hè micca sincronizatuHè sincronizatu
Ùn hè micca sicuru di filu è ùn pò micca esse spartutu trà filiHè filu sicuru è pò esse spartutu trà fili
Permette una chjave nulla è più valori nuliÙn permette micca a chjave nulla è u valore nullu
Introduttu in JDK 1.2Hè una classa lascita
Usemu Iterator per attraversà HashmapUsemu Iterator o Enumerazione per attraversà Hashtable
Eredite Classe AbstractMapEredita a classa di dizziunariu
A computazione hè rapidaA computazione hè lenta

317. Chì diffarenza ci hè trà Collezione è Cullizzioni?

  • Collection hè una interfaccia mentre Collections hè una classe
  • A cullezzione furnisce struttura di dati per implementà List, Set, ecc mentre a classe Collections furnisce metudi per sorte è sincronizà elementi di raccolta.

318. Chì differenza hè trà Comparable è Comparator?

  • Comparable hà un metudu unicu compareTo () mentre Comparator cuntene un metudu unicu compare ().
  • Comparable si trova in u pacchettu java.lang mentre Comparator si trova in u pacchettu java.util
  • Ci hè solu una sequenza di sorte in Cumparabile mentre u Comparatore hà parechje sequenze di sore.

319. Cosa hè una BlockingQueue?

BlockingQueue estende l'interfaccia di Queue è furnisce operazioni per supportà u cuncettu di concorrenza. Ùn pò cuntene elementi nulli. Durante l'operazione di ricuperazione, a coda deve esse micca viota è mentre archivia l'elementi, a coda deve avè qualchì spaziu dispunibile.

320. Chì hè u vantaghju di u fugliale Properties?

U fugliale di pruprietà hè adupratu principalmente quandu vulemu archivà l'infurmazioni chì cambianu spessu. Ogni volta chì cambiemu i valori in u fugliale di pruprietà, ùn avemu micca bisognu di ricumpilà u fugliale di classe java. Dunque a manutenzione hè faciule aduprendu u fugliale Proprietà è furnisce flessibilità in termini di cunfigurazione.

321. Cosa hè un metudu hashCode ()?

U metudu hashCode () hè adupratu in a tecnica di hashing. Stu metudu restituisce un valore hashcode chì hè un numeru interu. Ritorna u listessu valore interu se e duie chjave sò uguali. Verifica se duie chjave sò uguali cù u metudu equal (). Se dui oggetti ùn producenu micca un risultu uguale aduprendu u metudu equals (), allora u metudu hashCode () restituirà un interu differente per entrambi l'oggetti.

322. Perchè duvemu annullà u metudu equals ()?

Annullemu i metudi equals () per verificà se e pruprietà di un oggettu sò uguali o micca.

323. Cumu sincronizà elementi in una Lista, Inseme è Carta?

Pudemu aduprà u metudu sincronizatu chì hè prisente in a classa di e cullezzione per sincronizà l'elementi cum'è quì sottu:

public static List synchronizedList(List l) {}
public static Set synchronizedSet(Set s) {}
public static SortedSet synchronizedSortedSet(SortedSet st) {}
public static Map synchronizedMap(Map m) {}
public static SortedMap synchronizedSortedMap(SortedMap sm) {}

324. Chì hè u vantaghju di aduprà una raccolta generica?

  • Ùn avemu micca bisognu di tipografia mentre utilizamu una raccolta generica.
  • Hè sicura di tippu è verificata à tempu di compilazione
  • Rende u codice più stabile rilevendu bug durante u tempu di compilazione

325. Cosa hè hash-collision in Hashtable è cumu pudemu trattà in Java?

Quandu duie chjavi sfarenti producenu u listessu valore hashcode, u chjamemu hash-collision. In questu casu, guarda cum'è duie entrate separate in u listessu bucket. Ci hè 2 manere per evità una collisione:

  • Incatenà siparatu
  • Indirizzamentu apertu

326. Chì hè una classa di dizziunariu?

Una classa di dizziunariu memorizza i dati in forma di coppie chjave-valore. Pudemu ritruvà u valore basatu annantu à a chjave currispundente. Hè simile à a parolla di u dizziunariu inglese induve pudemu avè u significatu di una parolla circhendu cù a parolla chjave.

327. Chì hè a dimensione predefinita di u fattore di carica in a raccolta basata su hashing?

A dimensione predefinita di u fattore di carica hè 0.75.

328. Chì hè u fast-fast?

Fail-fast si verifica in un Iteratore quandu pruvemu à mudificà a struttura durante l'iterazione. Lancia ConcurrentModificationException. Ùn ne hà bisognu spaziu in più in memoria.

329. Chì differenza hè tra Array è ArrayList?

  • Un Array hè di dimensione fissa è ùn pudemu micca cambialu mentre pudemu cambià a dimensione di ArrayList dinamicamente.
  • Arrays ponu almacenà dati è oggetti primitivi mentre ArrayList pò almacenà solu oggetti.

330. Chì differenza hè trà a lunghezza di un array è a dimensione di un ArrayList?

Per recuperà a lunghezza di una matrice, pudemu aduprà a pruprietà di a lunghezza.

int[] a = {4,5,6,7}
System.out.println(a.length);

Ma ArrayList ùn hà micca una pruprietà di lunghezza, invece, usamu u metudu size () per uttene u numeru di elementi in l'ArrayList.

ArrayList<String> al = new ArrayList<String>();
al.add("AAA");
al.add("BBB");
System.out.println(al.size());

331. Cumu cunvertisce un ArrayList in un Array è vice-versa?

Pudemu aduprà u metudu toArray () di l'ArrayList per cunvertisce un ArrayList in un Array cum'è quì sottu:

ArrayList<String> al = new ArrayList<String>();
al.toArray(new String[al.size()]);

Per cunvertisce un Array in un ArrayList, usamu u metudu asList di l'Array cum'è quì sottu:

int[] a = {4,5,6};
Arrays.asList(a);

332. Cumu fà chì Java ArrayList sia di sola lettura?

Pudemu aduprà u metudu Collections.unmodifiableCollection () per fà l'ArrayList cum'è di sola lettura. In questu casu, ùn pudemu micca eseguisce aghjunghje, eliminà, o stabilisce operazioni nantu à l'ArrayList.

333. Cume rimuovere i duplicati da una ArrayList?

Puderemu caccià i duplicati da un ArrayList in dui modi:

  • Usendu HashSet - Ùn conserva micca l'ordine d'inserzione ma elimina i duplicati
  • Usendu LinkedHashSet - Mantene l'ordine è elimina i duplicati

334. Cumu sincronizà ArrayList?

Pudemu sincronizà ArrayList cù u metudu Collections.synchronizedList () o cù CopyOnWriteArrayList .

335. Quandu aduprà ArrayList è LinkedList?

Pudemu aduprà ArrayList per operazioni di ricerca è LinkedList per operazioni d'aghjurnamentu.

336. Scrivite un prugramma Java per riversà l'elementi in una ArrayList.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

public class ArrayListSort {

  public static void main(String[] args) {
    ArrayList<Integer> i = new ArrayList<Integer>();
    i.add(5);
    i.add(1);
    i.add(10);
    i.add(3);
    i.add(8);
    System.out.println("ArrayList Elements:");
    for(int num : i)
      System.out.println(num);
    
    Iterator it = i.listIterator();
    Collections.reverse(i);
    
    System.out.println("Elements in the reverse order:");
    while(it.hasNext())
      System.out.println(it.next());
  }

}
ArrayList Elements:
5
1
10
3
8
Elements in the reverse order:
8
3
10
1
5

337. Scrivite un prugramma Java per sorte l'elementi in una ArrayList in ordine decrescente.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

public class ArrayListReverse {

  public static void main(String[] args) {
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(30);
    al.add(10);
    al.add(50);
    al.add(40);
    al.add(20);
    
    System.out.println("Elements in the ArrayList");
    for(int i: al)
      System.out.println(i);
    
    System.out.println("Sort Elements in descending order:");
    Comparator c = Collections.reverseOrder();
    Collections.sort(al, c);
    Iterator it = al.listIterator();
    while(it.hasNext())
      System.out.println(it.next());

  }

}
Elements in the ArrayList
30
10
50
40
20
Sort Elements in descending order:
50
40
30
20
10

338. Cosa hè JDBC?

JDBC hè Java Database Connectivity chì hè una API per cunnette l'applicazione Java è e basa di dati. Utilizava i cunduttori JDBC per cunnette è eseguisce dumande in una basa di dati. Pudemu ancu vede è mudificà registri in una basa di dati.

339. Cosa hè u Driver JDBC?

U driver JDBC utilizza l'API JDBC per cunnette l'applicazione Java à qualsiasi basa di dati. L'implementazione di u driver JDBC hè basata annantu à u tippu di sistema operativu è di piattaforma hardware. Di seguito sò i sfarenti tippi di driver JDBC dispunibili:

  • Driver JDBC-ODBC Bridge: Utilizza u driver ODBC per cunnette à a basa di dati. Converte i chjami di u metudu JDBC in i chjami di u metudu ODBC. Questu hè menu adupratu avà è rimpiazzatu da un driver sottile.
  • API Nativa JDBC: Converte i chjamati JDBC in chjamate native di l'API di a basa di dati. Utilizza e biblioteche di u cliente di a basa di dati. A so prestazione hè megliu cà u driver JDBC-ODBC.
  • JDBC-Net pura Java: Questu hè un driver di protocollo di rete chì utilizza u middleware per cunvertisce e chiamate JDBC in protocollo di basa di dati specificu di u venditore.
  • Driver sottile (100% pura Java): Hè un driver puru Java chì converte direttamente e chjamate JDBC in protocolli di basa di dati specifici di u venditore. Questu hè u tippu di cunduttore più raccomandatu per via di e so prestazioni più veloci.

340. Chì sò i passi per cunnette vi à una basa di dati in Java?

Quì sottu sò i passi per cunnette vi à una basa di dati in Java:

  • Importa u pacchettu JDBC: Per aduprà i driver JDBC, avemu bisognu di impurtà i pacchetti specifici in u nostru codice.
    import java.sql.*;
    
  • Caricate è Registrate i driver JDBC: Pudemu aduprà u metudu forName () per caricare è registrà u Driver JDBC. A registrazione hè solu un processatore unicu per tutta l'applicazione Java.
    Class.forName("oracle.jdbc.driver.OracleDriver");
  • Cunnette vi à a basa di dati: Avemu bisognu di stabilisce una cunnessione à a basa di dati aduprendu u metudu getConnection (). Crea una istanza d'oggettu di a classe java.sql.Connection. Accetta trè parametri, l'URL di u servore di a basa di dati, u nome d'utilizatore è a password per cunnette si à a basa di dati (se necessariu).
    Connection con = DriverManager.getConnection(URL, username, password);
  • Crea un oggettu di dichjarazione: Dopu, avemu bisognu di creà una dichjarazione chì hè usata per eseguisce e dumande in a basa di dati. Per questu, pudemu aduprà l'accessu à u metudu createStatement cù l'ughjettu di cunnessione.
    Statement s = con.createStatement();
  • Eseguite a dumanda: Usendu l'ughjettu Statement, pudemu eseguisce e dumande richieste. Questu restituisce sempre un risultatu di u tippu ResultSet.
    ResultSet rs = s.executeQuery(query);
  • Trasfurmà u risultatu: Dopu avè eseguitu a dumanda, pudemu trattà u risultatu aduprendu u mentre ciclu.
    while(rs.next())
         System.out.println(rs.getInt(1) + " " + rs.getString(2));
  • Chiudite l'uggetti: Una volta chì tutte l'operazioni sò compie, ci vole à chjode l'uggetti ResultsSet, Statement è Connection cù u metudu close ().
    rs.close();
    s.close();
    con.close();

341. Chì sò i cumpunenti API JDBC?

I cumpunenti di l'API JDBC cuntenenu diverse interfacce è classi cum'è quì sottu:

interfaccia

  • Cunnessione: L'ughjettu di cunnessione stabilisce una cunnessione à a basa di dati necessaria.
  • Statement: Usendu l'ughjettu di cunnessione, pudemu creà un oggettu Statement per eseguisce a dumanda.
  • PreparedStatement: Questu hè adupratu per eseguisce dumande parametrizzate.
  • ResultSet: Ritorna u risultatu di a dumanda chì hè eseguita.
  • ResultSetMetaData: Contene informazioni di a tavula cum'è u numeru di colonne, nome di colonna, tippu di colonna, ecc
  • DatabaseMetaData: Fornisce informazioni nantu à a basa di dati cum'è nome di basa di dati, nome di driver, u numeru totale di tavule, Etc.
  • CallableStatement: Utile per chjamà procedure è funzioni archiviate

Corsi

  • DriverManager: Tene traccia di tutti i driver dispunibili è stabilisce una cunnessione à a basa di dati. Questu hè u cumpunente di classa principale di l'API JDBC.
  • SQLException: Fornisce informazioni relative à errori in a basa di dati.
  • Blob: Hè un grande oggettu binariu chì rapprisenta una raccolta di dati binari.
  • Clob: Hè un grande oggettu Carattere chì guarda i fugliali di caratteri.

342. Chì sò e dichjarazioni JDBC?

A dichjarazione JDBC hè aduprata per eseguisce u Quistioni SQL è recuperà i dati. Hà metudi cum'è execute (), executeUpdate (), executeQuery (), ecc per eseguisce vari cumandamenti SQL.

Ci hè 3 tippi di Statement JDBC:

  • Statement: Esegue una dumanda SQL statica in runtime è hè una fabbrica di u ResultSet.
  • PreparedStatement: Esegue dumande parametrizzate in runtime.
  • CallableStatement: Hè adupratu per accede à e prucedure o funzioni almacenate.

343. Chì hè u tippu di ritornu di u metudu Class.forName ()?

The Class.ForName () restituisce un oggettu di tipu java.lang.Object class.

344. Chì sò e differenze trà Statement è Statement Prepared?

affirmazioniStatu Preparatu
Hè adupratu per eseguisce dumande SQLHè adupratu per eseguisce dumande parametrizzate
Quandu usemu Statement, a dumanda hè compilata ogni volta quandu eseguemu u prugrammaQuandu usamu PreparedStatement, a dumanda hè compilata solu una volta.
Ùn richiede micca parametriHè necessariu passà parametri à a dumanda

345. Cumu stabilisce u valore nullu in JDBC PreparedStatement?

Pudemu aduprà u metudu setNull () di l'interfaccia PreparedStatement per impostà un indice à valore nulu cum'è quì sottu.

void setNull(int parameterIndex, int sqlType) throws SQLException

346. Chì sò i vantaghji di PreparedStatement annantu à l'interfaccia Statement?

  • E prestazioni di PreparedStatement sò più veloci di Statement postu chì a dumanda hè compilata una sola volta mentre chì, in Statement, a dumanda hè compilata ogni volta quandu eseguemu u prugramma.
  • Pudemu passà parametri à a quistione mentre usanu PreparedStatement mentre pudemu aduprà solu dumande statiche in a Statement.
  • PreparedStatement riutilizza u cache postu chì a dumanda hè simile sempre mentre questu ùn hè micca u casu in Statement.

347. Chì ci hè a differenza trà execute, executeQuery, è executeUpdate?

pruvàeseguisceQueryeseguiteUpdate
Pò esse adupratu per eseguisce qualsiasi operazione di dichjarazione SQL cum'è aghjurnamentu è selezzionePò esse adupratu per fà solu operazione selezziunataPò esse adupratu per eseguisce solu operazioni cum'è aghjurnamentu, cancellazione o inserimentu.
Restituisce un valore booleanoRestituisce un ResultSet chì cuntene i dati recuperati eseguendu a dumandaRestituisce un valore interu chì raprisenta u numeru di registri affettati da l'esecuzione di a dumanda

348. Chì sò i sfarenti tippi di ResultSet?

Ci hè 3 tippi di ResultSet basatu nantu à a direzzione in cui pò navigà in i registri:

  • ResultSet.TYPE_Forward_ONLY: Pò navigà solu in direzzione avanti.
  • ResultSet.TYPE_SCROLL_INSENSITIVE: Pò navigà tramindui in direzzione avanti è inversa. Ùn hè micca sensibile à i cambiamenti fatti.
  • ResultSet.TYPE_SCROLL_SENSITIVE: Pò navigà tramindui in direzzione avanti è inversa. Hè sensibile à i cambiamenti fatti.

349. Chì sò e differenze trà ResultSet è RowSet?

ResultSetRowSet
Mantene sempre a cunnessione cù a basa di datiPò esse cunnessu è disconnessu in ogni mumentu
Ùn pò micca esse serializatuPò esse serializatu
Ùn pò micca passà un ughjettu ResultSet nantu à a retePudete passà l'ughjettu RowSet nantu à una rete
Ùn hè micca un ughjettu JavaBeanHè un ogettu JavaBean
Per difettu ResultSet ùn hè micca scrollabile è aggiornabile.Per difettu RowSet hè scrollabile è aggiornabile.
ResultSet hè restituitu da u metudu executeQuery ()RowSet hè tornatu da u metudu RowSetProvider.newFactory (). CreateJdbcRowSet ().

350. Cumu eseguisce e prucedure almacenate cù u CallableStatement?

Quì sottu sò i passi per eseguisce e procedure conservate.

  • Crea una prucedura in a basa di dati
  • Stabilisce una cunnessione di rete
  • Crea un oggettu di u CallableStatement
  • Impostate i valori è eseguite a dumanda

esempiu:

Di seguito hè un prucedimentu di campione chì creemu in a basa di dati.

create or replace procedure "SAMPLE"(id IN NUMBER, name IN VARCHAR2)
is
begin
insert into employee values(id,name);
end

Sottu hè a struttura di a tavula

CREATE TABLE EMPLOYEE(ID NUMBER(10), NAME VARCHAR2(100))

Codice Java per eseguisce una prucedura memorizzata cù u CallableStatement.

import java.sql.*;
public class StoredProcedureDemo {

  public static void main(String[] args) throws Exception{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
    
    CallableStatement cs = c.prepareCall("{call sample(?,?)}");
    cs.setInt(1, 100);
    cs.setString(2, "Ravi");
    
    cs.execute();
    
    System.out.println("Success");

  }

}

351. Chì ghjè u rolu di a classa DriverDanager JDBC?

A classa JDBC DriverManager tene traccia di tutti i driver dispunibili chì si sò registrati cù u metudu registerDriver. Agisce cum'è un'interfaccia trà l'utente è u cunduttore è aiuta à stabilisce una cunnessione tra u cunduttore è a basa di dati.

352. Chì hè a funzione di l'interfaccia di cunnessione JDBC?

L'interfaccia di cunnessione JDBC aiuta à stabilisce una cunnessione à a basa di dati è mantene a sessione. Hè ancu adupratu per a gestione di e transazzioni. Hè adupratu cù Statement, PreparedStatement, CallableStatement, è DatabaseMetaData.

353. Cosa hè un'interfaccia JDBC ResultSet?

L'interfaccia JDBC ResultSet cuntene i dati recuperati eseguendu a dumanda. Ogni ughjettu ResultSet rapprisenta a fila in una tavula di dati. Hà diversi tippi aduprendu chì navigamu avanti è indietro in una tavula di dati.

354. Cosa hè l'interfaccia JDBC ResultSetMetaData?

L'interfaccia JDBC ResultSetMetaData cuntene informazioni relative à a tavula cum'è u numeru di colonne, nome di colonna, tippu di colonna, ecc.

355. Chì hè l'interfaccia JDBC DatabaseMetaData?

L'interfaccia JDBC DatabaseMetaData cuntene informazioni relative à a basa di dati cum'è nome di basa di dati, nome di driver, versione di driver, numeru di tavule, ecc. Pudemu aduprà u metudu getMetaData aduprendu l'ughjettu di cunnessione per creà un esempiu di DatabaseMetaData.

356. Chì interfaccia hè incaricata di a gestione di e transazzione in JDBC?

L'interfaccia di cunnessione hà metudi cum'è commit (), rollback () chì sò rispunsevuli di a gestione di e transazzioni in JDBC.

357. Cosa hè a trasfurmazione batch è cumu si pò fà a trasfurmazione batch in JDBC?

Loto a trasfurmazione hè u prucessu per eseguisce parechje dumande sùbitu in un batch è dunque risultati dopu a prestazione. Statement and PreparedStatement cuntene metudi chì sustenenu a trasfurmazione batch. Quì sottu sò i passi per eseguisce a trasfurmazione batch:

  • Caricate a classa di cunduttore
  • Crea una cunnessione
  • Crea una dichjarazione
  • Aghjunghjite dumande in u batch
  • Eseguite u batch
  • Chiudite a cunnessione
import java.sql.*;
public class BatchProcessing {

  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
    c.setAutoCommit(false);
    
    Statement s = c.createStatement();
    
    //Add queries to the batch
    s.addBatch("insert into employees value(111,'Akash')");
    s.addBatch("insert into employees value(222,'Bharat')");
    
    //Execute the batch
    s.executeBatch();
    
    c.commit();
    c.close();

  }

}

358. Chì sò i tipi di dati CLOB è BLOB in JDBC?

BLOB significa Binary Large Object è conserva dati binari cum'è voce, immagine è media mista in a basa di dati. Pò esse adupratu in basi di dati cum'è MySQL, Oracle, DB2. Pò cuntene finu à 3 GB di dati in MySQL è 128 GB in a basa di dati Oracle.

CLOB significa Carattere Ughjettu Grande è guarda i dati basati nantu à i caratteri cum'è i fugliali in a basa di dati. Hè cunsideratu cum'è una stringa di caratteri. Pò tene finu à 2 GB in MySQL è 128 GB in a basa di dati Oracle.

359. Chì sò i sfarenti tippi di chjusi in JDBC?

Una serratura hè un mecanismu chì impedisce à l'altri utilizatori di aduprà risorse particulare. Quì sottu sò i sfarenti tippi di serrature in JDBC:

  • Serratura di fila è di chjave: Hè adupratu quandu aghjurnemu e file in a tavula di dati.
  • Serrature di pagina: Hè adupratu per bluccà a pagina soprattuttu quandu qualchì transazzione hè sempre in traccia in quella pagina particulare. Chjave tutta a pagina chì usa a fila per l'aghjurnamentu, a cancellazione o l'inserimentu di dati.
  • Serrature da tavulinu: Hè adupratu per chjode a tavula. Ci hè dui tippi di serrature di tavula cum'è sparte è esclusive. Una serratura cumuna ci permette di leghje a tavula ma impedisce l'aghjurnamenti. Una serratura esclusiva impedisce a lettura è a scrittura.
  • Serrature di basa di dati: Chjave a basa di dati è impedisce l'operazioni di leghje è d'aghjurnamentu di altre transazzione quandu a basa di dati hè aperta.

360. Cumu almacenà è recuperà immagini da a basa di dati?

Crea una tavula cù duie culonne cum'è NOME è FOTO.

CREATE TABLE "IMAGETABLE"("NAME" VARCHAR2(1000), "PHOTO" BLOB)

Aduprendu PreparedStatement pudemu almacenà è recuperà e immagini da a basa di dati. Quì sottu hè u codice per guardà l'imagine.

import java.sql.*;
import java.io.*;
public class StoreImage{

  public static void main(String[] args) {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
      
      PreparedStatement p = c.prepareStatement("insert into imagetable(?,?)");
      p.setString(1, "Ravi");
      
      FileInputStream f = new FileInputStream("C:\\photo.jpg");
      p.setBinaryStream(2, f, f.available());
      
      //Store the image
      int i = p.executeUpdate();
      System.out.println(i + " row is affected");
      
      c.close();
      
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    

  }

}

Sottu hè u codice per ritruvà l'immagine da a basa di dati.

import java.sql.*;
import java.io.*;
public class ImageRetrieval {

  public static void main(String[] args) {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
      
      PreparedStatement p = c.prepareStatement("select * from imagetable");
      ResultSet r = p.executeQuery();
      
      if(r.next()) {
        Blob b = r.getBlob(2); //Retrieve 2nd column data since image is in 2nd column
        byte[] barr = b.getBytes(1, (int)b.length()); //1 denotes 1st image
        
        FileOutputStream f = new FileOutputStream("C:\\newphoto.jpg");
        f.write(barr);
        
        f.close();
      }
      System.out.println("Image retrieved");
      
      c.close();
      
    }
    catch(Exception e) {
      e.printStackTrace();
    }

  }

}

361. Cumu almacenà i fugliali in a basa di dati Oracle?

Pudemu aduprà u tippu di dati CLOB per archivà i fugliali in a basa di dati cù u PreparedStatement.

Sottu hè u codice per creà una tavula cù 2 colonne ID è NOME

CREATE TABLE FILETABLE("ID" NUMBER, "NAME" CLOB)

Quì sottu hè u codice per guardà u schedariu in a basa di dati.

import java.sql.*;
import java.io.*;

public class StoreFile {

  public static void main(String[] args) {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
      
      PreparedStatement p = c.prepareStatement("insert into filetablevalues(?,?)");
      
      File f = new File("D:\\File1.txt");
      FileReader fr = new FileReader(f);
      
      p.setInt(1, 100);
      p.setCharacterStream(2, fr, (int)f.length());
      
      int i = p.executeUpdate();
      System.out.println(i + " row is affected");
      
      c.close();
      
    }
    catch(Exception e) {
      e.printStackTrace();
    }

  }

}

362. Cumu recuperà i fugliali da una basa di dati Oracle?

Pudemu aduprà u metudu getClob () di u PreparedStatement per recuperà i fugliali da a basa di dati.

Sottu hè a tavula chì avemu creatu.

CREATE TABLE FILETABLE("ID" NUMBER, "NAME" CLOB)

Quì sottu hè u codice per ricuperà u fugliale da a basa di dati.

import java.io.*;
import java.sql.*;
public class FileRetrieval {

  public static void main(String[] args) {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
      
      PreparedStatement p = c.prepareStatement("select * from filetable");
      
      ResultSet r = p.executeQuery();
      r.next(); //Points to the first row
      
      Clob clob = r.getClob(2); //2 denotes the 2nd column that contains the file
      Reader reader = clob.getCharacterStream();
      
      FileWriter f = new FileWriter("D:\\File2.txt");
      int i;
      while((i=reader.read())!= -1) {
        f.write((char)i);
      }
      f.close();
      c.close();
      
      System.out.println("File Retrieved");
    }
    catch(Exception e) {
      e.printStackTrace();
    }

  }

}

363. Quali sò e differenze trà procedure è funzioni memorizate?

Procedura archiviatafunzioni
Esegue logica cummercialeEsegue calculi
Hè facultativu di avè un tipu di ritornuHè ubligatoriu di avè un tippu di ritornu
Supporta i parametri di input è outputSupporta solu parametri di input
Pò restituisce 0 o parechji valoriPò restituisce solu 1 valore
E procedure ùn ponu esse chjamate da a funzioneA funzione pò esse chjamata da una prucedura
A prucedura permette di dichjarà SELECT è DML (INSERT, UPDATE, DELETE)A funzione permette solu dichjarazione SELECT

364. Cumu mantene l'integrità di a basa di dati cù JDBC?

Pudemu mantene u integrità di a basa di dati assicurendu e pruprietà ACID. ACID significa Atomicità, Consistenza, Isolamentu è durabilità. Pudemu gestisce e transazzioni aduprendu i metudi cum'è setAutoCommit (), commit (), rollback () chì hè presente in l'interfaccia di cunnessione.

import java.sql.*;
public class IntegrityDemo {

  public static void main(String[] args) throws Exception{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
    
    c.setAutoCommit(false);
    
    Statement s = c.createStatement();
    s.executeUpdate("insert into employees values(111,'Ravi')");
    s.executeUpdate("insert into employees values(222,'Abhishek')");
    
    c.commit();
    c.close();

  }

}

365. Cosa hè JDBC RowSet?

JDBC RowSet hè un involucru di u ResultSet. Pò tene dati tabulari cum'è u ResultSet è hè faciule da aduprà. E classi di implementazione di l'interfaccia RowSet sò:

  • JdbcRowSet
  • CachedRowSet
  • WebRowSet
  • JoinRowSet
  • FilteredRowSet

366. Chì differenza hè trà java.util.Date è java.sql.Date?

A principal diferenza hè chì java.sql.Date rapprisenta solu l'infurmazioni di Data senza u tempu è java.util.Date rapprisenta sia Data è ora infurmazione.

367. Chì hè u metudu JDBC setMaxRows?

U metudu setMaxRows () limita u numeru di file chì a basa di dati pò restituisce aduprendu a dumanda.

 

Translate »
1