100+ ερωτήσεις και απαντήσεις συνέντευξης Java (2024)

Ακολουθούν ερωτήσεις και απαντήσεις συνέντευξης Java για πιο φρέσκους αλλά και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.

 

Ερωτήσεις και απαντήσεις για συνέντευξη προγραμματισμού Java για νεοφώτιστους

1) Ποια είναι η διαφορά μεταξύ μιας Inner Class και μιας Sub-Class;

Μια εσωτερική κλάση είναι μια κλάση που είναι ένθετη μέσα σε μια άλλη κλάση. Μια εσωτερική κλάση έχει δικαιώματα πρόσβασης για την κλάση που την ενθέτει και μπορεί να έχει πρόσβαση σε όλες τις μεταβλητές και τις μεθόδους που ορίζονται στην εξωτερική κλάση.

Μια υποκλάση είναι μια κλάση που κληρονομεί από μια άλλη κλάση που ονομάζεται super class. Η υποκλάση μπορεί να έχει πρόσβαση σε όλες τις δημόσιες και προστατευμένες μεθόδους και πεδία της super class της.

👉 Δωρεάν λήψη PDF: Ερωτήσεις & Απαντήσεις Συνέντευξης Java >>


2) Ποιοι είναι οι διάφοροι προσδιοριστές πρόσβασης για τις κλάσεις Java;

Στην Java, οι προσδιοριστές πρόσβασης είναι οι λέξεις-κλειδιά που χρησιμοποιούνται πριν από ένα όνομα κλάσης που καθορίζει το εύρος πρόσβασης. Οι τύποι προσδιοριστών πρόσβασης για κλάσεις είναι:

1) Δημόσιο: Η τάξη, η μέθοδος, το πεδίο είναι προσβάσιμα από οπουδήποτε.

2) Προστατεύεται: Το Method,Field μπορεί να προσπελαστεί από την ίδια κλάση στην οποία ανήκουν ή από τις υποκλάσεις και από την κλάση του ίδιου πακέτου, αλλά όχι από έξω.

3) Προεπιλογή: Η πρόσβαση στη μέθοδο, το πεδίο, την κλάση είναι δυνατή μόνο από το ίδιο πακέτο και όχι από το εξωτερικό του εγγενούς πακέτου.

4) Ιδιωτικό: Το Method,Field μπορεί να προσπελαστεί από την ίδια τάξη στην οποία ανήκουν.


3) Ποιος είναι ο σκοπός των στατικών μεθόδων και των στατικών μεταβλητών;

Όταν υπάρχει απαίτηση κοινής χρήσης μιας μεθόδου ή μιας μεταβλητής μεταξύ πολλών αντικειμένων μιας κλάσης αντί να δημιουργούμε ξεχωριστά αντίγραφα για κάθε αντικείμενο, χρησιμοποιούμε στατική λέξη-κλειδί για να δημιουργήσουμε μια μέθοδο ή μια μεταβλητή κοινόχρηστη για όλα τα αντικείμενα.


4) Τι είναι η ενθυλάκωση δεδομένων και ποια η σημασία της;

Η ενθυλάκωση είναι μια έννοια στον Αντικειμενοστραφή Προγραμματισμό για το συνδυασμό ιδιοτήτων και μεθόδων σε μια ενιαία μονάδα.

Η ενθυλάκωση βοηθά τους προγραμματιστές να ακολουθήσουν μια αρθρωτή προσέγγιση για την ανάπτυξη λογισμικού, καθώς κάθε αντικείμενο έχει το δικό του σύνολο μεθόδων και μεταβλητών και εξυπηρετεί τις λειτουργίες του ανεξάρτητα από άλλα αντικείμενα. Η ενθυλάκωση εξυπηρετεί επίσης τον σκοπό απόκρυψης δεδομένων.


5) Τι είναι η τάξη singleton; Δώστε ένα πρακτικό παράδειγμα χρήσης του.

Μια κλάση singleton στη java μπορεί να έχει μόνο μία παρουσία και επομένως όλες οι μέθοδοι και οι μεταβλητές της ανήκουν σε μία μόνο παρουσία. Η έννοια της κλάσης Singleton είναι χρήσιμη για περιπτώσεις όπου υπάρχει ανάγκη περιορισμού του αριθμού των αντικειμένων για μια κλάση.

Το καλύτερο παράδειγμα σεναρίου χρήσης singleton είναι όταν υπάρχει όριο για να υπάρχει μόνο μία σύνδεση σε μια βάση δεδομένων λόγω ορισμένων περιορισμών προγραμμάτων οδήγησης ή λόγω τυχόν ζητημάτων αδειοδότησης.


6) Τι είναι οι βρόχοι στην Java; Ποιοι είναι οι τρεις τύποι βρόχων;

Ο βρόχος χρησιμοποιείται στον προγραμματισμό για την επανειλημμένη εκτέλεση μιας εντολής ή ενός μπλοκ εντολών. Υπάρχουν τρία τύποι βρόχων στην Java:

1) Για βρόχους

Οι βρόχοι for χρησιμοποιούνται στη java για να εκτελούν εντολές επανειλημμένα για δεδομένο αριθμό φορών. Οι βρόχοι For χρησιμοποιούνται όταν είναι γνωστός στον προγραμματιστή ο αριθμός των φορών για την εκτέλεση των εντολών.

2) while Loops

Ο βρόχος while χρησιμοποιείται όταν ορισμένες εντολές πρέπει να εκτελούνται επανειλημμένα μέχρι να εκπληρωθεί μια συνθήκη. Στους βρόχους while, η συνθήκη ελέγχεται πρώτα πριν από την εκτέλεση των εντολών.

3) Do while Loops

Το Do while Loop είναι το ίδιο με το while με μόνη διαφορά ότι η συνθήκη ελέγχεται μετά την εκτέλεση του μπλοκ εντολών. Επομένως, σε περίπτωση βρόχου do while, οι εντολές εκτελούνται τουλάχιστον μία φορά.


7) Τι είναι ένας άπειρος βρόχος; Πώς δηλώνεται ο άπειρος βρόχος;

Ένας άπειρος βρόχος εκτελείται χωρίς καμία προϋπόθεση και τρέχει άπειρα. Ένας άπειρος βρόχος μπορεί να σπάσει ορίζοντας οποιαδήποτε λογική θραύσης στο σώμα των μπλοκ δηλώσεων.

Ο άπειρος βρόχος δηλώνεται ως εξής:

for (;;)
{
    // Statements to execute

    // Add any loop breaking logic
}

8) Ποια είναι η διαφορά μεταξύ της δήλωσης συνέχειας και διακοπής;

Η διακοπή και η συνέχεια είναι δύο σημαντικές λέξεις-κλειδιά που χρησιμοποιούνται στους βρόχους. Όταν χρησιμοποιείται μια λέξη-κλειδί break σε έναν βρόχο, ο βρόχος διακόπτεται αμέσως, ενώ όταν χρησιμοποιείται η λέξη-κλειδί συνέχεια, η τρέχουσα επανάληψη διακόπτεται και ο βρόχος συνεχίζεται με την επόμενη επανάληψη.

Στο παρακάτω παράδειγμα, ο βρόχος σπάει όταν ο μετρητής φτάσει στο 4.

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

if (counter == 4) {

    break;
}

}

Στο παρακάτω παράδειγμα, όταν ο μετρητής φτάσει το 4, ο βρόχος μεταβαίνει στην επόμενη επανάληψη και τυχόν δηλώσεις μετά τη λέξη-κλειδί συνέχεια παραλείπονται για την τρέχουσα επανάληψη.

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

if (counter == 4) {

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

9) Ποια είναι η διαφορά μεταξύ double και float μεταβλητές στην Java;

Στη java, το float παίρνει 4 byte στη μνήμη ενώ Double παίρνει 8 byte στη μνήμη. Float είναι μονής ακρίβειας κινητής υποδιαστολής δεκαδικός αριθμός ενώ Double is double δεκαδικός αριθμός ακριβείας.


10) Τι είναι η τελική λέξη-κλειδί στην Java; Δώσε ένα παράδειγμα.

Στη java, μια σταθερά δηλώνεται χρησιμοποιώντας τη λέξη-κλειδί Final. Η τιμή μπορεί να εκχωρηθεί μόνο μία φορά και μετά την εκχώρηση, η τιμή μιας σταθεράς δεν μπορεί να αλλάξει.

Στο παρακάτω παράδειγμα, μια σταθερά με το όνομα const_val δηλώνεται και εκχωρείται τιμή:

Ιδιωτικό τελικό int const_val=100

Όταν μια μέθοδος δηλώνεται ως τελική, ΔΕΝ μπορεί να παρακαμφθεί από τις υποκλάσεις. Αυτή η μέθοδος είναι ταχύτερη από οποιαδήποτε άλλη μέθοδο, επειδή επιλύονται σε χρόνο συμμόρφωσης.

Όταν μια τάξη μειώνεταιares ως τελικό, δεν μπορεί να υποκατηγορηθεί. Παράδειγμα String, Integer και άλλες κλάσεις περιτυλίγματος.


11) Τι είναι τριαδικό operaβραχώδης κορυφή? Δώσε ένα παράδειγμα.

Τριαδικός operator , που ονομάζεται επίσης υπό όρους operaΤο tor χρησιμοποιείται για να αποφασίσει ποια τιμή θα εκχωρηθεί σε μια μεταβλητή με βάση μια αξιολόγηση Boolean. Συμβολίζεται ως ?

Στο παρακάτω παράδειγμα, εάν η κατάταξη είναι 1, η κατάσταση εκχωρείται με την τιμή "Τέλος", αλλιώς "Σε εκκρεμότητα".

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

12) Πώς μπορείτε να δημιουργήσετε τυχαία numbers στην Java;

  • Χρησιμοποιώντας Math.random() μπορείτε να δημιουργήσετε τυχαία numbers στην περιοχή μεγαλύτερη ή ίση με 0.1 και μικρότερη από 1.0
  • Χρήση Τυχαίας κλάσης στο πακέτο java.util

13) Τι είναι η προεπιλεγμένη θήκη διακόπτη; Δώστε παράδειγμα.

Σε δήλωση διακόπτη, η προεπιλεγμένη περίπτωση εκτελείται όταν καμία άλλη συνθήκη διακόπτη δεν ταιριάζει. Η προεπιλεγμένη περίπτωση είναι μια προαιρετική περίπτωση. Μπορεί να δηλωθεί μόνο όταν έχουν κωδικοποιηθεί όλες οι άλλες περιπτώσεις διακόπτη.

Στο παρακάτω παράδειγμα, όταν η βαθμολογία δεν είναι 1 ή 2, χρησιμοποιείται η προεπιλεγμένη περίπτωση.

public class switchExample {
    int score = 4;
    public static void main(String args[]) {
        switch (score) {
            case 1:
                system.out.println("Score is 1");
                break;
            case 2:
                system.out.println("Score is 2");
                break;
            default:
                system.out.println("Default Case");
        }
    }
}

14) Ποια είναι η βασική κλάση στην Java από την οποία προέρχονται όλες οι κλάσεις;

java.lang.object


15) Μπορεί η μέθοδος main() στην Java να επιστρέψει δεδομένα;

Στη java, η μέθοδος main() δεν μπορεί να επιστρέψει δεδομένα και ως εκ τούτου, δηλώνεται πάντα με έναν τύπο άκυρης επιστροφής.


16) Τι είναι τα πακέτα Java; Ποια είναι η σημασία των πακέτων;

Στην Java, το πακέτο είναι μια συλλογή κλάσεων και διεπαφών που είναι ομαδοποιημένες καθώς σχετίζονται μεταξύ τους. Η χρήση πακέτων βοηθά τους προγραμματιστές να διαμορφώσουν τον κώδικα και να ομαδοποιήσουν τον κώδικα για σωστή επαναχρησιμοποίηση. Μόλις ο κώδικας έχει συσκευαστεί στα πακέτα, μπορεί να εισαχθεί σε άλλες κλάσεις και να χρησιμοποιηθεί.


17) Μπορούμε να δηλώσουμε μια κλάση ως Abstract χωρίς να έχουμε καμία αφηρημένη μέθοδο;

Ναι, μπορούμε να δημιουργήσουμε μια αφηρημένη κλάση χρησιμοποιώντας αφηρημένη λέξη-κλειδί πριν από το όνομα της τάξης, ακόμα κι αν δεν έχει καμία αφηρημένη μέθοδο. Ωστόσο, εάν μια κλάση έχει έστω και μία αφηρημένη μέθοδο, πρέπει να δηλωθεί ως αφηρημένη άλληwise θα βγάλει σφάλμα.


18) Ποια είναι η διαφορά μεταξύ μιας Abstract Class και μιας διεπαφής στην Java;

Η κύρια διαφορά μεταξύ μιας αφηρημένης κλάσης και της διεπαφής είναι ότι μια διεπαφή μπορεί να έχει μόνο δήλωση δημοσίων στατικών μεθόδων χωρίς συγκεκριμένη υλοποίηση, ενώ μια αφηρημένη κλάση μπορεί να έχει μέλη με οποιονδήποτε προσδιοριστή πρόσβασης (δημόσιο, ιδιωτικό κ.λπ.) με ή χωρίς συγκεκριμένη υλοποίηση.

Μια άλλη βασική διαφορά στη χρήση αφηρημένων κλάσεων και διεπαφών είναι ότι μια κλάση που υλοποιεί μια διεπαφή πρέπει να υλοποιεί όλες τις μεθόδους της διεπαφής ενώ μια κλάση που κληρονομεί από μια αφηρημένη κλάση δεν απαιτεί την υλοποίηση όλων των μεθόδων της υπερκλάσης της.

Μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές αλλά μπορεί να επεκτείνει μόνο μια αφηρημένη κλάση.


19) Ποιες είναι οι επιπτώσεις της απόδοσης των διεπαφών σε αφηρημένες κλάσεις;

Οι διεπαφές είναι πιο αργές στην απόδοση σε σύγκριση με τις αφηρημένες κλάσεις, καθώς απαιτούνται επιπλέον έμμεσες οδηγίες για τις διεπαφές. Ένας άλλος βασικός παράγοντας που πρέπει να λάβουν υπόψη οι προγραμματιστές είναι ότι οποιαδήποτε κλάση μπορεί να επεκτείνει μόνο μια αφηρημένη κλάση ενώ μια κλάση μπορεί να υλοποιήσει πολλές διεπαφές.

Η χρήση διεπαφών επιβαρύνει επίσης τους προγραμματιστές, καθώς κάθε φορά που μια διεπαφή υλοποιείται σε μια κλάση. Ο προγραμματιστής αναγκάζεται να εφαρμόσει κάθε μέθοδο διεπαφής.


20) Η εισαγωγή ενός πακέτου εισάγει τα υποπακέτα του και σε Java;

Στη Java, όταν εισάγεται ένα πακέτο, τα υποπακέτα του δεν εισάγονται και ο προγραμματιστής πρέπει να τα εισαγάγει ξεχωριστά εάν απαιτείται.

Για παράδειγμα, εάν ένας προγραμματιστής εισάγει ένα πανεπιστήμιο πακέτου.*, φορτώνονται όλες οι τάξεις στο πακέτο που ονομάζεται πανεπιστήμιο, αλλά δεν φορτώνονται τάξεις από το υποπακέτο. Για να φορτώσει τις κλάσεις από το υποπακέτο του (ας πούμε τμήμα), ο προγραμματιστής πρέπει να το εισαγάγει ρητά ως εξής:

Εισαγωγή πανεπιστημίου.τμήμα.*


21) Μπορούμε να δηλώσουμε την κύρια μέθοδο της τάξης μας ως ιδιωτική;

Στη Java, η κύρια μέθοδος πρέπει να είναι δημόσια στατική για να εκτελείται σωστά οποιαδήποτε εφαρμογή. Εάν η κύρια μέθοδος δηλωθεί ως ιδιωτική, ο προγραμματιστής δεν θα λάβει κανένα σφάλμα μεταγλώττισης, ωστόσο, δεν θα εκτελεστεί και θα δώσει ένα σφάλμα χρόνου εκτέλεσης.


22) Πώς μπορούμε να περάσουμε όρισμα σε μια συνάρτηση με αναφορά αντί για τιμή pass by;

Στη java, μπορούμε να περάσουμε όρισμα σε μια συνάρτηση μόνο με τιμή και όχι με αναφορά.


23) Πώς γίνεται η σειριοποίηση ενός αντικειμένου στη java;

Στη java, για να μετατρέψετε ένα αντικείμενο σε ροή byte μέσω σειριοποίησης, μια διεπαφή με το όνομα Serializable υλοποιείται από την κλάση. Όλα τα αντικείμενα μιας κλάσης που υλοποιεί σειριοποιήσιμη διεπαφή σειριοποιούνται και η κατάστασή τους αποθηκεύεται σε ροή byte.


24) Πότε πρέπει να χρησιμοποιήσουμε τη σειριοποίηση;

Η σειριοποίηση χρησιμοποιείται όταν τα δεδομένα πρέπει να μεταδοθούν μέσω του δικτύου. Χρησιμοποιώντας τη σειριοποίηση, η κατάσταση του αντικειμένου αποθηκεύεται και μετατρέπεται σε ροή byte. Η ροή byte μεταφέρεται μέσω του δικτύου και το αντικείμενο δημιουργείται εκ νέου στον προορισμό.


25) Είναι υποχρεωτικό για ένα Try Block να ακολουθείται από ένα Catch Block στην Java για χειρισμό εξαίρεσης;

Ο αποκλεισμός δοκιμής πρέπει να ακολουθείται από τον αποκλεισμό Catch ή τον αποκλεισμό Τέλος ή και τα δύο. Οποιαδήποτε εξαίρεση απορρίπτεται από το μπλοκ δοκιμής πρέπει είτε να συλληφθεί στο μπλοκ σύλληψης είτε οποιεσδήποτε συγκεκριμένες εργασίες πρέπει να εκτελεστούν προτού η άμβλωση του κώδικα τοποθετηθεί στο μπλοκ Τέλος.


Ερωτήσεις και απαντήσεις συνέντευξης Java για έμπειρους

26) Υπάρχει κάποιος τρόπος να παραλείψετε το Τέλος εξαίρεσης, ακόμη και αν παρουσιαστεί κάποια εξαίρεση στο μπλοκ εξαίρεσης;

Εάν εγείρεται μια εξαίρεση στο μπλοκ "Δοκιμάστε", ο έλεγχος περνά στο μπλοκ αλίευσης εάν υπάρχει άλλοwise να μπλοκάρει επιτέλους. Τέλος, το μπλοκ εκτελείται πάντα όταν εμφανίζεται μια εξαίρεση και ο μόνος τρόπος για να αποφευχθεί η εκτέλεση οποιωνδήποτε εντολών στο Τέλος μπλοκ είναι η βίαιη ματαίωση του κώδικα γράφοντας following γραμμή κώδικα στο τέλος του μπλοκ δοκιμής:

System.exit(0);

27) Όταν καλείται ο κατασκευαστής μιας κλάσης;

Ο κατασκευαστής μιας κλάσης καλείται κάθε φορά που δημιουργείται ένα αντικείμενο με νέα λέξη-κλειδί.

Για παράδειγμα, στο ακόλουθοwing Τα αντικείμενα κατηγορίας δύο δημιουργούνται χρησιμοποιώντας νέα λέξη-κλειδί και ως εκ τούτου, ο κατασκευαστής καλείται δύο φορές.

public class const_example {

    const_example() {

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

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

28) Μπορεί μια κλάση να έχει πολλαπλούς κατασκευαστές;

Ναι, μια κλάση μπορεί να έχει πολλούς κατασκευαστές με διαφορετικές παραμέτρους. Ποιος κατασκευαστής χρησιμοποιείται για τη δημιουργία αντικειμένων εξαρτάται από τα ορίσματα που διαβιβάζονται κατά τη δημιουργία των αντικειμένων.


29) Μπορούμε να παρακάμψουμε στατικές μεθόδους μιας κλάσης;

Δεν μπορούμε να παρακάμψουμε στατικές μεθόδους. Οι στατικές μέθοδοι ανήκουν σε μια κλάση και όχι σε μεμονωμένα αντικείμενα και επιλύονται κατά τη στιγμή της μεταγλώττισης (όχι κατά την εκτέλεση). κώδικας.


30) Στο παρακάτω παράδειγμα, ποια θα είναι η έξοδος;

public class superclass {

    public void displayResult() {

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

    }

}

public class subclass extends superclass {

    public void displayResult() {

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

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

Ans: Η έξοδος θα είναι:

Εμφάνιση από την υποκατηγορία

Εκτύπωση από superclass


31) Είναι το String τύπος δεδομένων στη java;

Η συμβολοσειρά δεν είναι ένας πρωτόγονος τύπος δεδομένων στη java. Όταν δημιουργείται μια συμβολοσειρά σε java, είναι στην πραγματικότητα ένα αντικείμενο της κλάσης Java.Lang.String που δημιουργείται. Μετά τη δημιουργία αυτού του αντικειμένου συμβολοσειράς, όλες οι ενσωματωμένες μέθοδοι της κλάσης String μπορούν να χρησιμοποιηθούν στο αντικείμενο συμβολοσειράς.


32) Στο παρακάτω παράδειγμα, πόσα αντικείμενα συμβολοσειράς δημιουργούνται;

String s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

Στο παραπάνω παράδειγμα, δημιουργούνται δύο αντικείμενα της κλάσης Java.Lang.String. Τα s1 και s3 είναι αναφορές στο ίδιο αντικείμενο.


33) Γιατί οι συμβολοσειρές στην Java ονομάζονται αμετάβλητες;

Στη java, τα αντικείμενα συμβολοσειράς ονομάζονται αμετάβλητα, καθώς μόλις εκχωρηθεί τιμή σε μια συμβολοσειρά, δεν μπορεί να αλλάξει και αν αλλάξει, δημιουργείται ένα νέο αντικείμενο.

Στο παρακάτω παράδειγμα, η αναφορά str αναφέρεται σε ένα αντικείμενο συμβολοσειράς που έχει τιμή "Τιμή ένα".

String str="Value One";

Όταν της εκχωρηθεί μια νέα τιμή, δημιουργείται ένα νέο αντικείμενο String και η αναφορά μετακινείται στο νέο αντικείμενο.

str="New Value";

34) Ποια είναι η διαφορά μεταξύ ενός πίνακα και του διανύσματος;

Ένας πίνακας ομαδοποιεί δεδομένα του ίδιου αρχέγονου τύπου και είναι στατικής φύσης ενώ τα διανύσματα είναι δυναμικής φύσης και μπορούν να κρατήσουν δεδομένα διαφορετικών τύπων δεδομένων.


35) Τι είναι το multi-threading;

Το Multi Threading είναι μια έννοια προγραμματισμού για την εκτέλεση πολλαπλών εργασιών με ταυτόχρονο τρόπο μέσα σε ένα μόνο πρόγραμμα. Τα νήματα μοιράζονται την ίδια στοίβα διεργασιών και εκτελούνται παράλληλα. Βοηθά στη βελτίωση της απόδοσης οποιουδήποτε προγράμματος.


36) Γιατί χρησιμοποιείται το Runnable Interface στην Java;

Η διασύνδεση με δυνατότητα εκτέλεσης χρησιμοποιείται στη java για την υλοποίηση εφαρμογών πολλαπλών νημάτων. Η διεπαφή Java.Lang.Runnable υλοποιείται από μια κλάση για την υποστήριξη πολλαπλών νημάτων.


37) Ποιοι είναι οι δύο τρόποι υλοποίησης του multi-threading στην Java;

Οι εφαρμογές πολλαπλών νημάτων μπορούν να αναπτυχθούν σε Java χρησιμοποιώντας οποιοδήποτε από τα παρακάτωwing δύο μεθοδολογίες:

1) Χρησιμοποιώντας Java.Lang.Runnable Interface. Οι τάξεις υλοποιούν αυτήν τη διεπαφή για να ενεργοποιήσουν τη λειτουργία πολλαπλών νημάτων. Υπάρχει μια μέθοδος Run() σε αυτή τη διεπαφή που εφαρμόζεται.

2) Γράφοντας μια κλάση που επεκτείνει την κλάση Java.Lang.Thread.


38) Όταν απαιτούνται πολλές αλλαγές στα δεδομένα, ποια πρέπει να προτιμάται για χρήση; String ή StringBuffer?

Από το StringBuffers είναι δυναμικής φύσης και μπορούμε να αλλάξουμε τις τιμές του StringBuffer αντικείμενα σε αντίθεση με το String που είναι αμετάβλητο, είναι πάντα μια καλή επιλογή να χρησιμοποιείτε το StringBuffer όταν τα δεδομένα αλλάζουν υπερβολικά. Εάν χρησιμοποιήσουμε το String σε μια τέτοια περίπτωση, για κάθε αλλαγή δεδομένων θα δημιουργείται ένα νέο αντικείμενο String το οποίο θα είναι επιπλέον επιβάρυνση.


39) Ποιος είναι ο σκοπός της χρήσης του Break σε κάθε περίπτωση δήλωσης Switch;

Το Break χρησιμοποιείται μετά από κάθε υπόθεση (εκτός από την τελευταία) σε έναν διακόπτη, έτσι ώστε ο κωδικός να σπάει μετά την έγκυρη υπόθεση και να μην ρέει και στις υποθέσεις διαδικασίας.

Εάν το διάλειμμα δεν χρησιμοποιείται μετά από κάθε περίπτωση, όλες οι περιπτώσεις μετά την έγκυρη περίπτωση εκτελούνται επίσης με αποτέλεσμα λάθος αποτελέσματα.


40) Πώς γίνεται η αποκομιδή σκουπιδιών στην Java;

Στη java, όταν ένα αντικείμενο δεν αναφέρεται πλέον, συλλογή απορριμάτων λαμβάνει χώρα και το αντικείμενο καταστρέφεταιyed αυτομάτως. Για αυτόματη συλλογή σκουπιδιών, η java καλεί είτε τη μέθοδο System.gc() είτε τη μέθοδο Runtime.gc().


41) Πώς μπορούμε να εκτελέσουμε οποιονδήποτε κώδικα ακόμη και πριν από την κύρια μέθοδο;

Εάν θέλουμε να εκτελέσουμε οποιεσδήποτε εντολές πριν ακόμη δημιουργήσουμε αντικείμενα κατά τη φόρτωση της κλάσης, μπορούμε να χρησιμοποιήσουμε ένα στατικό μπλοκ κώδικα στην κλάση. Οποιεσδήποτε δηλώσεις μέσα σε αυτό το στατικό μπλοκ κώδικα θα εκτελεστούν μία φορά τη στιγμή της φόρτωσης της κλάσης, ακόμη και πριν από τη δημιουργία αντικειμένων στην κύρια μέθοδο.


42) Μπορεί μια τάξη να είναι ταυτόχρονα super class και sub-class; Δώστε παράδειγμα.

Εάν χρησιμοποιείται μια ιεραρχία κληρονομικότητας, μια κλάση μπορεί να είναι μια υπερκλάση για μια άλλη κλάση και μια υποκλάση για μια άλλη ταυτόχρονα.

Στο παρακάτω παράδειγμα, η κλάση ηπείρου είναι υποκατηγορία παγκόσμιας κλάσης και είναι η υπερκατηγορία της κατηγορίας χώρας.

public class world {

..........

}
public class continenet extends world {

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

}
public class country extends continent {

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

}

43) Πώς δημιουργούνται τα αντικείμενα μιας κλάσης αν δεν ορίζεται κατασκευαστής στην κλάση;

Ακόμα κι αν δεν ορίζεται ρητός κατασκευαστής σε μια κλάση java, τα αντικείμενα δημιουργούνται επιτυχώς καθώς ο προεπιλεγμένος κατασκευαστής χρησιμοποιείται σιωπηρά για τη δημιουργία αντικειμένων. Αυτός ο κατασκευαστής δεν έχει παραμέτρους.


44) Στο multi-threading πώς μπορούμε να διασφαλίσουμε ότι ένας πόρος δεν χρησιμοποιείται από πολλαπλά νήματα ταυτόχροναneoάχρηστο;

Στο multi-threading, η πρόσβαση στους πόρους που είναι κοινόχρηστοι μεταξύ πολλαπλών νημάτων μπορεί να ελεγχθεί χρησιμοποιώντας την έννοια του syncχρονισμός. Χρησιμοποιώντας syncσυγχρονισμένη λέξη-κλειδί, μπορούμε να διασφαλίσουμε ότι μόνο ένα νήμα μπορεί να χρησιμοποιεί κοινόχρηστο πόρο τη φορά και άλλα μπορούν να αποκτήσουν τον έλεγχο του πόρου μόνο αφού απαλλαγεί από το άλλο που τον χρησιμοποιεί.


45) Μπορούμε να καλέσουμε τον κατασκευαστή μιας κλάσης περισσότερες από μία φορές για ένα αντικείμενο;

Ο κατασκευαστής καλείται αυτόματα όταν δημιουργούμε ένα αντικείμενο χρησιμοποιώντας νέα λέξη-κλειδί. Καλείται μόνο μία φορά για ένα αντικείμενο τη στιγμή της δημιουργίας του αντικειμένου και ως εκ τούτου, δεν μπορούμε να καλέσουμε ξανά τον κατασκευαστή για ένα αντικείμενο μετά τη δημιουργία του.


46) Υπάρχουν δύο κλάσεις που ονομάζονται classA και classB. Και οι δύο κατηγορίες είναι στην ίδια συσκευασία. Μπορεί ένα ιδιωτικό μέλος της classA να είναι προσβάσιμο από ένα αντικείμενο της classB;

Τα ιδιωτικά μέλη μιας κλάσης δεν είναι προσβάσιμα εκτός του πεδίου εφαρμογής αυτής της κλάσης και οποιαδήποτε άλλη κλάση ακόμη και στο ίδιο πακέτο δεν μπορεί να έχει πρόσβαση σε αυτά.


47) Μπορούμε να έχουμε δύο μεθόδους σε μια κλάση με το ίδιο όνομα;

Μπορούμε να ορίσουμε δύο μεθόδους σε μια κλάση με το ίδιο όνομα αλλά με διαφορετικό αριθμό/τύπο παραμέτρων. Ποια μέθοδος θα κληθεί θα εξαρτηθεί από τις παραμέτρους που έχουν περάσει.

Για παράδειγμα, στην παρακάτω κλάση έχουμε δύο μεθόδους εκτύπωσης με το ίδιο όνομα αλλά διαφορετικές παραμέτρους. Ανάλογα με τις παραμέτρους, η κατάλληλη θα ονομάζεται:

public class methodExample {

    public void print() {

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

    }

    public void print(String name) {

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

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

48) Πώς μπορούμε να κάνουμε αντίγραφο ενός αντικειμένου java;

Μπορούμε να χρησιμοποιήσουμε την έννοια της κλωνοποίησης για να δημιουργήσουμε αντίγραφο ενός αντικειμένου. Χρησιμοποιώντας τον κλώνο, δημιουργούμε αντίγραφα με την πραγματική κατάσταση ενός αντικειμένου.

Η Clone() είναι μια μέθοδος Cloneable διεπαφής και ως εκ τούτου, η Cloneable διεπαφή πρέπει να υλοποιηθεί για τη δημιουργία αντιγράφων αντικειμένων.


49) Ποιο είναι το όφελος από τη χρήση της κληρονομιάς;

Το βασικό πλεονέκτημα της χρήσης της κληρονομικότητας είναι η επαναχρησιμοποίηση του κώδικα, καθώς η κληρονομικότητα επιτρέπει στις υποκλάσεις να επαναχρησιμοποιήσουν τον κώδικα της σούπερ κλάσης τους. Ο πολυμορφισμός (επεκτασιμότητα) είναι ένα άλλο μεγάλο πλεονέκτημα που επιτρέπει την εισαγωγή νέων λειτουργιών χωρίς να επηρεάζονται οι υπάρχουσες παράγωγες κλάσεις.


50) Ποιος είναι ο προεπιλεγμένος προσδιοριστής πρόσβασης για μεταβλητές και μεθόδους μιας κλάσης;

Ο προεπιλεγμένος προσδιοριστής πρόσβασης για τις μεταβλητές και τη μέθοδο προστατεύεται από πακέτο, δηλαδή οι μεταβλητές και η κλάση είναι διαθέσιμες σε οποιαδήποτε άλλη κλάση αλλά στο ίδιο πακέτο, όχι εκτός του πακέτου.


51) Δώστε ένα παράδειγμα χρήσης των Pointers στην τάξη Java.

Δεν υπάρχουν δείκτες στην Java. Επομένως, δεν μπορούμε να χρησιμοποιήσουμε την έννοια των δεικτών στην Java.


52) Πώς μπορούμε να περιορίσουμε την κληρονομικότητα για μια κλάση, ώστε να μην μπορεί να κληρονομηθεί καμία κλάση από αυτήν;

Εάν θέλουμε μια κλάση να μην επεκταθεί περαιτέρω από καμία τάξη, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί τέλος με το όνομα της τάξης.

Στο following Για παράδειγμα, η τάξη Stone είναι Τελική και δεν μπορεί να επεκταθεί

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

53) Ποιο είναι το εύρος πρόσβασης του προσδιοριστή Protected Access;

Όταν μια μέθοδος ή μια μεταβλητή δηλώνεται με προσδιοριστή προστατευμένης πρόσβασης, γίνεται προσβάσιμη στην ίδια κλάση, σε οποιαδήποτε άλλη κλάση του ίδιου πακέτου καθώς και σε μια υποκλάση.

Αλλαγή Τάξη Πακέτο Υποδιαίρεση τάξεως Κόσμος
δημόσιο Y Y Y Y
προστατεύονται Y Y Y N
κανένας τροποποιητής Y Y N N
ιδιωτικός Y N N N

54) Ποια είναι η διαφορά μεταξύ Stack και Queue;

Η στοίβα και η ουρά χρησιμοποιούνται και οι δύο ως σύμβολο κράτησης θέσης για μια συλλογή δεδομένων. Η κύρια διαφορά μεταξύ μιας στοίβας και μιας ουράς είναι ότι η στοίβα βασίζεται στην αρχή Last in First out (LIFO) ενώ μια ουρά βασίζεται στην αρχή FIFO (First In First Out).


55) Στη java, πώς μπορούμε να απαγορεύσουμε τη σειριοποίηση μεταβλητών;

Εάν θέλουμε ορισμένες μεταβλητές μιας κλάσης να μην είναι σειριακές, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί παροδικός ενώ τα δηλώνει. Για παράδειγμα, η μεταβλητή trans_var παρακάτω είναι μια μεταβατική μεταβλητή και δεν μπορεί να σειριοποιηθεί:

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

56) Πώς μπορούμε να χρησιμοποιήσουμε πρωτόγονους τύπους δεδομένων ως αντικείμενα;

Οι πρωτόγονοι τύποι δεδομένων όπως το int μπορούν να αντιμετωπιστούν ως αντικείμενα με τη χρήση των αντίστοιχων κλάσεων περιτυλίγματος. Για παράδειγμα, ο Ακέραιος είναι μια κλάση περιτυλίγματος για τον πρωτόγονο τύπο δεδομένων int. Μπορούμε να εφαρμόσουμε διαφορετικές μεθόδους σε μια κλάση wrapper, όπως και κάθε άλλο αντικείμενο.


57) Ποιοι τύποι εξαιρέσεων συλλαμβάνονται κατά το χρόνο μεταγλώττισης;

Οι επιλεγμένες εξαιρέσεις μπορούν να ληφθούν κατά τη στιγμή της μεταγλώττισης του προγράμματος. Οι επιλεγμένες εξαιρέσεις πρέπει να αντιμετωπίζονται χρησιμοποιώντας το μπλοκ try catch στον κώδικα προκειμένου να μεταγλωττιστεί με επιτυχία ο κώδικας.


58) Περιγράψτε διαφορετικές καταστάσεις ενός νήματος.

Ένα νήμα στην Java μπορεί να βρίσκεται σε οποιοδήποτε από τα παρακάτωwing αναφέρει τα εξής:

  • Έτοιμο: Όταν δημιουργείται ένα νήμα, είναι σε κατάσταση ετοιμότητας.
  • Εκτέλεση: Ένα νήμα που εκτελείται αυτήν τη στιγμή βρίσκεται σε κατάσταση εκτέλεσης.
  • Αναμονή: Ένα νήμα που περιμένει ένα άλλο νήμα για να ελευθερώσει ορισμένους πόρους βρίσκεται σε κατάσταση αναμονής.
  • Νεκρό: Ένα νήμα που έχει πεθάνει μετά την εκτέλεση είναι σε νεκρή κατάσταση.

59) Μπορούμε να χρησιμοποιήσουμε έναν προεπιλεγμένο κατασκευαστή μιας κλάσης ακόμα κι αν έχει οριστεί ένας ρητός κατασκευαστής;

Η Java παρέχει έναν προεπιλεγμένο κατασκευαστή χωρίς ορίσματα, εάν δεν έχει οριστεί ρητός κατασκευαστής σε μια κλάση Java. Αλλά αν έχει οριστεί ένας ρητός κατασκευαστής, δεν μπορεί να γίνει κλήση του προεπιλεγμένου κατασκευαστή και ο προγραμματιστής μπορεί να χρησιμοποιήσει μόνο αυτούς τους κατασκευαστές που ορίζονται στην κλάση.


60) Μπορούμε να παρακάμψουμε μια μέθοδο χρησιμοποιώντας το ίδιο όνομα μεθόδου και ορίσματα αλλά διαφορετικούς τύπους επιστροφής;

Η βασική προϋπόθεση της παράκαμψης μεθόδου είναι ότι το όνομα της μεθόδου, τα ορίσματα καθώς και ο τύπος επιστροφής πρέπει να είναι ακριβώς τα ίδια με αυτά της μεθόδου που παρακάμπτεται. Επομένως, η χρήση διαφορετικού τύπου επιστροφής δεν παρακάμπτει μια μέθοδο.


61) Ποια θα είναι η έξοδος του following κομμάτι κώδικα;

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

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

Σε αυτή την περίπτωση postfix ++ operaΧρησιμοποιείται το tor που επιστρέφει πρώτα την τιμή και μετά αυξάνει. Άρα η έξοδος θα είναι 4.


61) Κάποιος λέει ότι μεταγλωττίζει μια τάξη java με επιτυχία χωρίς καν να έχει μια κύρια μέθοδο σε αυτήν; Είναι δυνατόν?

Η κύρια μέθοδος είναι ένα σημείο εισόδου της κλάσης Java και απαιτείται για την εκτέλεση του προγράμματος ωστόσο. μια κλάση μεταγλωττίζεται με επιτυχία ακόμα κι αν δεν έχει κύρια μέθοδο. Δεν μπορεί να τρέξει όμως.


62) Μπορούμε να ονομάσουμε μια μη στατική μέθοδο από μέσα μια στατική μέθοδο;

Οι μη στατικές μέθοδοι ανήκουν σε αντικείμενα μιας κλάσης και έχουν εύρος επιπέδου αντικειμένου και για να καλέσετε τις μη στατικές μεθόδους από ένα στατικό μπλοκ (όπως από μια στατική κύρια μέθοδο), πρέπει πρώτα να δημιουργηθεί ένα αντικείμενο της κλάσης. Στη συνέχεια, χρησιμοποιώντας την αναφορά αντικειμένου, αυτές οι μέθοδοι μπορούν να επικαλεστούν.


63) Ποιες είναι οι δύο μεταβλητές περιβάλλοντος που πρέπει να οριστούν για την εκτέλεση οποιωνδήποτε προγραμμάτων Java;

Τα προγράμματα Java μπορούν να εκτελεστούν σε ένα μηχάνημα μόνο μία φορά στη συνέχειαwing δύο μεταβλητές περιβάλλοντος έχουν ρυθμιστεί σωστά:

  1. μεταβλητή PATH
  2. μεταβλητή CLASSPATH

64) Μπορούν οι μεταβλητές να χρησιμοποιηθούν στην Java χωρίς προετοιμασία;

Στην Java, εάν μια μεταβλητή χρησιμοποιείται σε έναν κώδικα χωρίς προηγούμενη προετοιμασία από μια έγκυρη τιμή, το πρόγραμμα δεν μεταγλωττίζεται και δίνει ένα σφάλμα καθώς δεν εκχωρείται προεπιλεγμένη τιμή σε μεταβλητές στην Java.


65) Μπορεί μια κλάση στην Java να κληρονομηθεί από περισσότερες από μία κλάσεις;

Στην Java, μια κλάση μπορεί να προέλθει από μία μόνο κλάση και όχι από πολλές κλάσεις. Οι πολλαπλές κληρονομιές δεν υποστηρίζονται από την Java.


66) Μπορεί ένας κατασκευαστής να έχει διαφορετικό όνομα από ένα όνομα κλάσης στην Java;

Ο κατασκευαστής στην Java πρέπει να έχει το ίδιο όνομα με το όνομα της κλάσης και εάν το όνομα είναι διαφορετικό, δεν λειτουργεί ως κατασκευαστής και ο μεταγλωττιστής το θεωρεί ως κανονική μέθοδο.


67) Ποια θα είναι η έξοδος των Round(3.7) και Ceil(3.7);

Το Round(3.7) επιστρέφει 4 και το Ceil(3.7) επιστρέφει 4.


68) Μπορούμε να χρησιμοποιήσουμε το goto στην Java για να μεταβούμε σε μια συγκεκριμένη γραμμή;

Στην Java, δεν υπάρχει λέξη-κλειδί goto και η java δεν υποστηρίζει αυτή τη δυνατότητα μετάβασης σε μια συγκεκριμένη γραμμή με ετικέτα.


69) Μπορεί να ξεκινήσει ξανά ένα νεκρό νήμα;

Στη java, ένα νήμα που είναι σε νεκρή κατάσταση δεν μπορεί να ξεκινήσει ξανά. Δεν υπάρχει τρόπος να επανεκκινήσετε ένα νεκρό νήμα.


70) Είναι το following σωστή δήλωση τάξης;

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

Απ.: Η παραπάνω δήλωση κλάσης είναι εσφαλμένη καθώς μια αφηρημένη κλάση δεν μπορεί να δηλωθεί ως Τελική.


71) Απαιτείται JDK σε κάθε μηχάνημα για την εκτέλεση ενός προγράμματος Java;

Το JDK είναι κιτ ανάπτυξης Java και απαιτείται μόνο για ανάπτυξη και για την εκτέλεση ενός προγράμματος Java σε ένα μηχάνημα, το JDK δεν απαιτείται. Απαιτείται μόνο JRE.


72) Ποια είναι η διαφορά μεταξύ σύγκρισης που γίνεται με τη μέθοδο ίσων και == operaβραχώδης κορυφή?

Στην Java, η μέθοδος equals() χρησιμοποιείται για τη σύγκριση των περιεχομένων δύο αντικειμένων συμβολοσειρών και επιστρέφει true αν τα δύο έχουν την ίδια τιμή ενώ == operator συγκρares οι αναφορές δύο αντικειμένων συμβολοσειρών.

Στο following Για παράδειγμα, η equals() επιστρέφει true καθώς τα δύο αντικείμενα συμβολοσειρών έχουν τις ίδιες τιμές. Ωστόσο == operaΤο tor επιστρέφει false καθώς και τα δύο αντικείμενα συμβολοσειράς αναφέρονται σε διαφορετικά αντικείμενα:

public class equalsTest {

    public static void main(String args[]) {

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

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

        if (str1.equals(str2))

        { // this condition is true

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

        }

        if (str1 == str2) {

            //This condition is true

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

        } else

        {

            // This condition is NOT true

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

        }

    }

}

73) Είναι δυνατόν να οριστεί μια μέθοδος στην κλάση Java αλλά να παρέχεται η υλοποίησή της στον κώδικα μιας άλλης γλώσσας όπως η C;

Ναι, μπορούμε να το κάνουμε αυτό χρησιμοποιώντας εγγενείς μεθόδους. Σε περίπτωση ανάπτυξης που βασίζεται σε εγγενείς μεθόδους, ορίζουμε δημόσιες στατικές μεθόδους στην κλάση Java χωρίς την υλοποίησή της και στη συνέχεια η υλοποίηση γίνεται σε άλλη γλώσσα όπως η C ξεχωριστά.


74) Πώς ορίζονται οι καταστροφείς στην Java;

Στην Java, δεν ορίζονται καταστροφείς στην κλάση, καθώς δεν χρειάζεται να γίνει κάτι τέτοιο. Η Java έχει τον δικό της μηχανισμό συλλογής σκουπιδιών που κάνει τη δουλειά αυτόματα καταστρέφοντας τα αντικείμενα όταν δεν αναφέρονται πλέον.


Ερωτήσεις και απαντήσεις συνέντευξης Java για 5+ χρόνια εμπειρίας

75) Μπορεί μια μεταβλητή να είναι τοπική και στατική ταυτόχρονα;

Όχι, μια μεταβλητή δεν μπορεί να είναι στατική και τοπική ταυτόχρονα. Ο ορισμός μιας τοπικής μεταβλητής ως στατικής δίνει σφάλμα μεταγλώττισης.


76) Μπορούμε να έχουμε στατικές μεθόδους σε μια διεπαφή;

Οι στατικές μέθοδοι δεν μπορούν να παρακαμφθούν σε καμία κλάση, ενώ όλες οι μέθοδοι σε μια διεπαφή είναι από προεπιλογή αφηρημένες και υποτίθεται ότι υλοποιούνται στις κλάσεις που υλοποιούν τη διεπαφή. Επομένως, δεν έχει νόημα να υπάρχουν στατικές μέθοδοι σε μια διεπαφή σε Java.


77) Σε μια κλάση που υλοποιεί μια διεπαφή, μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής που ορίζεται στη διεπαφή;

Όχι, δεν μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής μιας διεπαφής στην κλάση υλοποίησης, καθώς όλες οι μεταβλητές που ορίζονται στη διεπαφή είναι από προεπιλογή δημόσιες, οι στατικές και οι τελικές και οι τελικές μεταβλητές είναι σαν σταθερές που δεν μπορούν να αλλάξουν later.


78) Είναι σωστό να πούμε ότι λόγω της δυνατότητας συλλογής σκουπιδιών στην Java, ένα πρόγραμμα java δεν σβήνει ποτέ από τη μνήμη;

Παρόλο που η αυτόματη συλλογή σκουπιδιών παρέχεται από την Java, δεν διασφαλίζει ότι ένα πρόγραμμα Java δεν θα σβήσει από τη μνήμη, καθώς υπάρχει πιθανότητα η δημιουργία αντικειμένων Java να γίνεται με ταχύτερο ρυθμό σε σύγκριση με τη συλλογή σκουπιδιών με αποτέλεσμα την πλήρωση όλους τους διαθέσιμους πόρους μνήμης.

Έτσι, η συλλογή σκουπιδιών βοηθά στη μείωση των πιθανοτήτων εξάντλησης της μνήμης ενός προγράμματος, αλλά δεν το διασφαλίζει.


79) Μπορούμε να έχουμε οποιονδήποτε άλλο τύπο επιστροφής εκτός από το void για την κύρια μέθοδο;

Όχι, η κύρια μέθοδος κλάσης Java μπορεί να έχει μόνο τύπο άκυρης επιστροφής για την επιτυχή εκτέλεση του προγράμματος.

Ωστόσο, εάν πρέπει οπωσδήποτε να επιστρέψετε μια τιμή με την ολοκλήρωση της κύριας μεθόδου, μπορείτε να χρησιμοποιήσετε το System.exit(κατάσταση int)


80) Θέλω να προσεγγίσω ξανά και να χρησιμοποιήσω ένα αντικείμενο αφού έχει συλλεχθεί τα σκουπίδια. Πώς είναι δυνατόν;

Μόλις ένα αντικείμενο έχει καταστραφείyed από σκουπιδοσυλλέκτη, δεν υπάρχει πλέον στο σωρό και δεν είναι δυνατή η πρόσβαση ξανά. Δεν υπάρχει τρόπος να το αναφέρω ξανά.


81) Στον προγραμματισμό νημάτων Java, ποια μέθοδος είναι απαραίτητη για όλα τα νήματα;

Η Run() είναι μια μέθοδος διεπαφής Runnable που πρέπει να υλοποιηθεί από όλα τα νήματα.


82) Θέλω να ελέγξω τις συνδέσεις βάσης δεδομένων στο πρόγραμμά μου και θέλω μόνο ένα νήμα να μπορεί να κάνει σύνδεση βάσης δεδομένων κάθε φορά. Πώς μπορώ να εφαρμόσω αυτή τη λογική;

Απ.: Αυτό μπορεί να υλοποιηθεί με τη χρήση της έννοιας του syncχρονισμός. Ο κώδικας που σχετίζεται με τη βάση δεδομένων μπορεί να τοποθετηθεί σε μια μέθοδο που hs syncχρονομετρημένος λέξη-κλειδί έτσι ώστε μόνο ένα νήμα να έχει πρόσβαση σε αυτό κάθε φορά.


83) Πώς μπορεί να γίνει μια εξαίρεση χειροκίνητα από έναν προγραμματιστή;

Για να ρίξετε μια εξαίρεση σε ένα μπλοκ κώδικα με μη αυτόματο τρόπο, βολή χρησιμοποιείται λέξη-κλειδί. Στη συνέχεια, αυτή η εξαίρεση συλλαμβάνεται και αντιμετωπίζεται στο μπλοκ catch.

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

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

84) Θέλω η κλάση μου να αναπτυχθεί με τέτοιο τρόπο ώστε καμία άλλη κλάση (ακόμη και παράγωγη κλάση) να μην μπορεί να δημιουργήσει τα αντικείμενά της. Πώς μπορώ να το κάνω;

Εάν δηλώσουμε τον κατασκευαστή μιας κλάσης ως ιδιωτική, δεν θα είναι προσβάσιμη από καμία άλλη κλάση και επομένως, καμία άλλη κλάση δεν θα είναι σε θέση να την υποκαταστήσει και ο σχηματισμός του αντικειμένου της θα περιοριστεί μόνο στον εαυτό της.


85) Πώς αποθηκεύονται τα αντικείμενα στην Java;

Στη java, κάθε αντικείμενο όταν δημιουργείται παίρνει έναν χώρο μνήμης από έναν σωρό. Όταν ένα αντικείμενο καταστρέφεταιyed από έναν συλλέκτη σκουπιδιών, ο χώρος που του εκχωρείται από το σωρό εκχωρείται εκ νέου στο σωρό και γίνεται διαθέσιμος για τυχόν νέα αντικείμενα.


86) Πώς μπορούμε να βρούμε το πραγματικό μέγεθος ενός αντικειμένου στο σωρό;

Στη java, δεν υπάρχει τρόπος να μάθετε το ακριβές μέγεθος ενός αντικειμένου στο σωρό.


87) Ποιο από τα παρακάτωwing οι τάξεις θα έχουν περισσότερη μνήμη εκχωρημένη;

Κλάση Α: Τρεις μέθοδοι, τέσσερις μεταβλητές, κανένα αντικείμενο

Κλάση Β: Πέντε μέθοδοι, τρεις μεταβλητές, κανένα αντικείμενο

Η μνήμη δεν εκχωρείται πριν από τη δημιουργία αντικειμένων. Δεδομένου ότι και για τις δύο κλάσεις, δεν δημιουργήθηκαν αντικείμενα, επομένως δεν εκχωρείται μνήμη σε σωρό για καμία κλάση.


88) Τι συμβαίνει εάν μια εξαίρεση δεν αντιμετωπίζεται σε ένα πρόγραμμα;

Εάν μια εξαίρεση δεν αντιμετωπιστεί σε ένα πρόγραμμα χρησιμοποιώντας μπλοκ try catch, το πρόγραμμα ματαιώνεται και καμία εντολή δεν εκτελείται μετά την πρόταση που προκάλεσε εξαίρεση.wing.


89) Έχω ορισμένους πολλαπλούς κατασκευαστές σε μια κλάση. Είναι δυνατόν να καλέσουμε έναν κατασκευαστή από το σώμα ενός άλλου κατασκευαστή;

Εάν μια κλάση έχει πολλούς κατασκευαστές, είναι δυνατό να καλέσετε έναν κατασκευαστή από το σώμα ενός άλλου χρησιμοποιώντας Αυτό().


90) Τι σημαίνει ανώνυμη τάξη;

Μια ανώνυμη κλάση είναι μια κλάση που ορίζεται χωρίς όνομα σε μία γραμμή κώδικα χρησιμοποιώντας νέα λέξη-κλειδί.

Για παράδειγμα, στον παρακάτω κώδικα έχουμε ορίσει μια ανώνυμη κλάση σε μία γραμμή κώδικα:

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

91) Υπάρχει τρόπος να αυξηθεί το μέγεθος ενός πίνακα μετά τη δήλωση του;

Οι πίνακες είναι στατικοί και αφού καθορίσουμε το μέγεθός τους, δεν μπορούμε να τον αλλάξουμε. Εάν θέλουμε να χρησιμοποιήσουμε τέτοιες συλλογές όπου μπορεί να χρειαστούμε αλλαγή μεγέθους (αριθμός στοιχείων), θα πρέπει να προτιμήσουμε το διάνυσμα έναντι του πίνακα.


92) Εάν μια εφαρμογή έχει πολλές κλάσεις σε αυτήν, είναι εντάξει να υπάρχει μια κύρια μέθοδος σε περισσότερες από μία κλάσεις;

Εάν υπάρχει κύρια μέθοδος σε περισσότερες από μία κλάσεις σε μια εφαρμογή java, δεν θα προκαλέσει κανένα πρόβλημα καθώς το σημείο εισόδου για οποιαδήποτε εφαρμογή θα είναι μια συγκεκριμένη κλάση και ο κωδικός θα ξεκινά μόνο από την κύρια μέθοδο της συγκεκριμένης κλάσης.


93) Θέλω να διατηρήσω δεδομένα αντικειμένων για later χρήση. Ποια είναι η καλύτερη προσέγγιση για να γίνει αυτό;

Ο καλύτερος τρόπος για να διατηρήσετε δεδομένα για μελλοντική χρήση είναι να χρησιμοποιήσετε την έννοια της σειριοποίησης.


94) Τι είναι μια τοπική κλάση στην Java;

Στην Java, αν ορίσουμε μια νέα κλάση μέσα σε ένα συγκεκριμένο μπλοκ, ονομάζεται τοπική κλάση. Μια τέτοια κλάση έχει τοπική εμβέλεια και δεν μπορεί να χρησιμοποιηθεί εκτός του μπλοκ όπου ορίζεται.


95) Χορδή και χορδήBuffer και τα δύο αντιπροσωπεύουν αντικείμενα String. Μπορούμε να συγκρίνουμε το String και το StringBuffer στην Java;

Αν και String και StringBuffer και τα δύο αντιπροσωπεύουν αντικείμενα String, δεν μπορούμε να τα συγκρίνουμε μεταξύ τους και αν προσπαθήσουμε να τα συγκρίνουμε, λαμβάνουμε ένα σφάλμα.


96) Για ποιο API παρέχεται από την Java operaθέσεις σε σύνολο αντικειμένων;

Η Java παρέχει ένα API συλλογής που παρέχει πολλές χρήσιμες μεθόδους που μπορούν να εφαρμοστούν σε ένα σύνολο αντικειμένων. Μερικές από τις σημαντικές κλάσεις που παρέχονται από το Collection API περιλαμβάνουν το ArrayList, το HashMap, το TreeSet και το TreeMap.


97) Μπορούμε να ρίξουμε οποιονδήποτε άλλο τύπο σε Boolean Type με casting τύπου;

Όχι, δεν μπορούμε ούτε να μεταδώσουμε κανένα άλλο πρωτόγονο τύπο σε τύπο δεδομένων Boole ούτε μπορούμε να μεταδώσουμε τύπο δεδομένων Boole σε οποιονδήποτε άλλο πρωτόγονο τύπο δεδομένων.


98) Μπορούμε να χρησιμοποιήσουμε διαφορετικούς τύπους επιστροφής για μεθόδους όταν παρακαμφθούν;

Η βασική απαίτηση της παράκαμψης μεθόδου στην Java είναι η παράκαμψη της μεθόδου να έχει το ίδιο όνομα και παραμέτρους. Αλλά μια μέθοδος μπορεί να παρακαμφθεί με διαφορετικό τύπο επιστροφής, εφόσον ο νέος τύπος επιστροφής επεκτείνει τον αρχικό τύπο.

Για παράδειγμα, η μέθοδος επιστρέφει έναν τύπο αναφοράς.

Class B extends A {

    A method(int x) {

        //original method

    }

    B method(int x) {

        //overridden method

    }

}

99) Ποια είναι η βασική κλάση όλων των κλάσεων εξαίρεσης;

Στην Ιάβα, Java.lang.Throwable είναι η υπερκλάση όλων των κλάσεων εξαίρεσης και όλες οι κλάσεις εξαίρεσης προέρχονται από αυτή τη βασική κλάση.


100) Ποια είναι η σειρά κλήσης των κατασκευαστών στην κληρονομιά;

Σε περίπτωση κληρονομικότητας, όταν δημιουργείται ένα νέο αντικείμενο μιας παράγωγης κλάσης, πρώτα καλείται ο κατασκευαστής της υπερκλάσης και μετά ο κατασκευαστής της παραγόμενης κλάσης.

Προετοιμασία για τη συνέντευξη εργασίας σας!!! Περάσουν από Εκμάθηση Java για να είμαστε καλύτερα προετοιμασμένοι.

Αυτό το λεπτομερές Java Mock Test Quiz θα σας βοηθήσει να ξεκαθαρίσετε τις αμφιβολίες σχετικά με τις ερωτήσεις συνέντευξης Java και θα σας βοηθήσει επίσης να διακόψετε τη συνέντευξη.

Αυτά τα Java και Java 8 ερωτήσεις συνέντευξης θα βοηθήσει επίσης στο viva σας (στοματικά)