100 + Java Συνέντευξη Ερωτήσεις και Απαντήσεις (2025)
Java Προγραμματισμός Συνέντευξη Ερωτήσεις και Απαντήσεις για νεοφώτιστους
1) Ποια είναι η διαφορά μεταξύ μιας Inner Class και μιας Sub-Class;
Μια εσωτερική κλάση είναι μια κλάση που είναι ένθετη μέσα σε μια άλλη κλάση. Μια εσωτερική κλάση έχει δικαιώματα πρόσβασης για την κλάση που την ενθέτει και μπορεί να έχει πρόσβαση σε όλες τις μεταβλητές και τις μεθόδους που ορίζονται στην εξωτερική κλάση.
Μια υποκλάση είναι μια κλάση που κληρονομεί από μια άλλη κλάση που ονομάζεται super class. Η υποκλάση μπορεί να έχει πρόσβαση σε όλες τις δημόσιες και προστατευμένες μεθόδους και πεδία της super class της.
👉 Δωρεάν λήψη PDF: Java Συνέντευξη Συνέντευξη Ερωτήσεις & Απαντήσεις >>
2) Σε τι χρησιμεύουν οι διάφοροι προσδιοριστές πρόσβασης Java τάξεις;
In 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) Ποια είναι η διαφορά μεταξύ διπλών και float μεταβλητών σε Java?
Στη java, το float παίρνει 4 byte στη μνήμη ενώ Double παίρνει 8 byte στη μνήμη. Float είναι μονής ακρίβειας κινητής υποδιαστολής δεκαδικός αριθμός ενώ Double είναι δεκαδικός αριθμός διπλής ακρίβειας.
10) Τι περιλαμβάνει η Τελική Λέξη-κλειδί Java? Δώστε ένα παράδειγμα.
Στη java, μια σταθερά δηλώνεται χρησιμοποιώντας τη λέξη-κλειδί Final. Η τιμή μπορεί να εκχωρηθεί μόνο μία φορά και μετά την εκχώρηση, η τιμή μιας σταθεράς δεν μπορεί να αλλάξει.
Στο παρακάτω παράδειγμα, μια σταθερά με το όνομα const_val δηλώνεται και εκχωρείται τιμή:
Ιδιωτικό τελικό int const_val=100
Όταν μια μέθοδος δηλώνεται ως τελική, ΔΕΝ μπορεί να παρακαμφθεί από τις υποκλάσεις. Αυτή η μέθοδος είναι ταχύτερη από οποιαδήποτε άλλη μέθοδο, επειδή επιλύονται σε χρόνο συμμόρφωσης.
Όταν μια κλάση δηλώνεται ως τελική, δεν μπορεί να υποταχθεί. Παράδειγμα String, Integer και άλλες κλάσεις περιτυλίγματος.
11) Τι είναι ο τριαδικός τελεστής; Δώστε ένα παράδειγμα.
Ο τριμερής τελεστής , που ονομάζεται επίσης τελεστής υπό όρους, χρησιμοποιείται για να αποφασίσει ποια τιμή θα εκχωρηθεί σε μια μεταβλητή με βάση μια αξιολόγηση 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) Πώς μπορείτε να δημιουργήσετε τυχαίους αριθμούς σε Java?
- Χρησιμοποιώντας το Math.random() μπορείτε να δημιουργήσετε τυχαίους αριθμούς στο εύρος μεγαλύτερο ή ίσο με 0.1 και μικρότερο από 1.0
- Χρήση Τυχαίας κλάσης στο πακέτο java.util
13) Τι είναι η προεπιλεγμένη θήκη διακόπτη; Δώστε παράδειγμα.
Σε δήλωση διακόπτη, η προεπιλεγμένη περίπτωση εκτελείται όταν καμία άλλη συνθήκη διακόπτη δεν ταιριάζει. Η προεπιλεγμένη περίπτωση είναι μια προαιρετική περίπτωση. Μπορεί να δηλωθεί μόνο όταν έχουν κωδικοποιηθεί όλες οι άλλες περιπτώσεις διακόπτη.
Στο παρακάτω παράδειγμα, όταν η βαθμολογία δεν είναι 1 ή 2, χρησιμοποιείται η προεπιλεγμένη περίπτωση.
public class SwitchExample { public static void main(String args[]) { int score = 4; // Declare the score variable inside the main method switch (score) { case 1: System.out.println("Score is 1"); break; case 2: System.out.println("Score is 2"); break; default: System.out.println("Default Case"); } } }
14) Σε τι ανήκει η βασική κατηγορία Java από το οποίο προέρχονται όλες οι τάξεις;
java.lang.object
15) Η μέθοδος Can main() in Java μπορεί να επιστρέψει δεδομένα;
Στη java, η μέθοδος main() δεν μπορεί να επιστρέψει δεδομένα και ως εκ τούτου, δηλώνεται πάντα με έναν τύπο άκυρης επιστροφής.
16) Τι είναι Java Πακέτα; Ποια είναι η σημασία των πακέτων;
In Java, το πακέτο είναι μια συλλογή κλάσεων και διεπαφών που είναι ομαδοποιημένες καθώς σχετίζονται μεταξύ τους. Η χρήση πακέτων βοηθά τους προγραμματιστές να διαμορφώσουν τον κώδικα και να ομαδοποιήσουν τον κώδικα για σωστή επαναχρησιμοποίηση. Μόλις ο κώδικας έχει συσκευαστεί στα πακέτα, μπορεί να εισαχθεί σε άλλες κλάσεις και να χρησιμοποιηθεί.
17) Μπορούμε να δηλώσουμε μια κλάση ως Abstract χωρίς να έχουμε καμία αφηρημένη μέθοδο;
Ναι, μπορούμε να δημιουργήσουμε μια αφηρημένη κλάση χρησιμοποιώντας αφηρημένη λέξη-κλειδί πριν από το όνομα της τάξης, ακόμα κι αν δεν έχει καμία αφηρημένη μέθοδο. Ωστόσο, εάν μια κλάση έχει έστω και μία αφηρημένη μέθοδο, πρέπει να δηλωθεί ως αφηρημένη, διαφορετικά θα δώσει ένα σφάλμα.
18) Ποια είναι η διαφορά μεταξύ μιας Abstract Class και της Interface σε 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 in; Java για χειρισμό εξαίρεσης;
Ο αποκλεισμός δοκιμής πρέπει να ακολουθείται από τον αποκλεισμό Catch ή τον αποκλεισμό Τέλος ή και τα δύο. Οποιαδήποτε εξαίρεση απορρίπτεται από το μπλοκ δοκιμής πρέπει είτε να συλληφθεί στο μπλοκ σύλληψης είτε οποιεσδήποτε συγκεκριμένες εργασίες πρέπει να εκτελεστούν προτού η άμβλωση του κώδικα τοποθετηθεί στο μπλοκ Τέλος.
Java Ερωτήσεις και απαντήσεις συνέντευξης για έμπειρους
26) Υπάρχει κάποιος τρόπος να παραλείψετε το Τέλος εξαίρεσης, ακόμη και αν παρουσιαστεί κάποια εξαίρεση στο μπλοκ εξαίρεσης;
Εάν εγείρεται μια εξαίρεση στο μπλοκ Try, ο έλεγχος περνά στο catch block, εάν υπάρχει διαφορετικά για να αποκλειστεί τελικά. Τέλος, το μπλοκ εκτελείται πάντα όταν εμφανίζεται μια εξαίρεση και ο μόνος τρόπος για να αποφευχθεί η εκτέλεση οποιωνδήποτε εντολών στο μπλοκ Τέλος είναι να ακυρώσετε τον κώδικα αναγκαστικά γράφοντας την ακόλουθη γραμμή κώδικα στο τέλος του μπλοκ δοκιμής:
System.exit(0);
27) Όταν καλείται ο κατασκευαστής μιας κλάσης;
Ο κατασκευαστής μιας κλάσης καλείται κάθε φορά που δημιουργείται ένα αντικείμενο με νέα λέξη-κλειδί.
Για παράδειγμα, στην ακόλουθη κλάση δημιουργούνται δύο αντικείμενα χρησιμοποιώντας νέα λέξη-κλειδί και ως εκ τούτου, ο κατασκευαστής καλείται δύο φορές.
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) Why Strings in 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 χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες δύο μεθοδολογίες:
1) Με τη χρήση Java.Lang.Runnable Interface. Οι τάξεις υλοποιούν αυτήν τη διεπαφή για να ενεργοποιήσουν τη λειτουργία πολλαπλών νημάτων. Υπάρχει μια μέθοδος Run() σε αυτή τη διεπαφή που εφαρμόζεται.
2) Γράφοντας μια τάξη που εκτείνεται Java.Lang.Κλάση νήματος.
38) Όταν απαιτούνται πολλές αλλαγές στα δεδομένα, ποια πρέπει να προτιμάται για χρήση; String ή StringBuffer?
Από το StringBuffers είναι δυναμικής φύσης και μπορούμε να αλλάξουμε τις τιμές του StringBuffer αντικείμενα σε αντίθεση με το String που είναι αμετάβλητο, είναι πάντα μια καλή επιλογή να χρησιμοποιείτε το StringBuffer όταν τα δεδομένα αλλάζουν υπερβολικά. Εάν χρησιμοποιήσουμε το String σε μια τέτοια περίπτωση, για κάθε αλλαγή δεδομένων θα δημιουργείται ένα νέο αντικείμενο String το οποίο θα είναι επιπλέον επιβάρυνση.
39) Ποιος είναι ο σκοπός της χρήσης του Break σε κάθε περίπτωση δήλωσης Switch;
Το Break χρησιμοποιείται μετά από κάθε υπόθεση (εκτός από την τελευταία) σε έναν διακόπτη, έτσι ώστε ο κωδικός να σπάει μετά την έγκυρη υπόθεση και να μην ρέει και στις υποθέσεις διαδικασίας.
Εάν το διάλειμμα δεν χρησιμοποιείται μετά από κάθε περίπτωση, όλες οι περιπτώσεις μετά την έγκυρη περίπτωση εκτελούνται επίσης με αποτέλεσμα λάθος αποτελέσματα.
40) Πώς γίνεται η αποκομιδή σκουπιδιών στο Java?
Στη java, όταν ένα αντικείμενο δεν αναφέρεται πλέον, συλλογή απορριμάτων λαμβάνει χώρα και το αντικείμενο καταστρέφεται αυτόματα. Για αυτόματη συλλογή σκουπιδιών, η 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 πώς μπορούμε να διασφαλίσουμε ότι ένας πόρος δεν χρησιμοποιείται από πολλά νήματα ταυτόχρονα;
Στο multi-threading, η πρόσβαση στους πόρους που είναι κοινόχρηστοι μεταξύ πολλαπλών νημάτων μπορεί να ελεγχθεί χρησιμοποιώντας την έννοια του συγχρονισμού. Χρησιμοποιώντας συγχρονισμένη λέξη-κλειδί, μπορούμε να διασφαλίσουμε ότι μόνο ένα νήμα μπορεί να χρησιμοποιεί κοινόχρηστο πόρο τη φορά και άλλα μπορούν να αποκτήσουν τον έλεγχο του πόρου μόνο αφού απαλλαγεί από το άλλο που τον χρησιμοποιεί.
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 in Java τάξη.
Δεν υπάρχουν δείκτες μέσα Java. Επομένως, δεν μπορούμε να χρησιμοποιήσουμε την έννοια των δεικτών Java.
52) Πώς μπορούμε να περιορίσουμε την κληρονομικότητα για μια κλάση, ώστε να μην μπορεί να κληρονομηθεί καμία κλάση από αυτήν;
Εάν θέλουμε μια κλάση να μην επεκταθεί περαιτέρω από καμία τάξη, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί τέλος με το όνομα της τάξης.
Στο παρακάτω παράδειγμα, η κλάση 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 μπορεί να βρίσκεται σε μία από τις ακόλουθες καταστάσεις:
- Έτοιμο: Όταν δημιουργείται ένα νήμα, είναι σε κατάσταση ετοιμότητας.
- Εκτέλεση: Ένα νήμα που εκτελείται αυτήν τη στιγμή βρίσκεται σε κατάσταση εκτέλεσης.
- Αναμονή: Ένα νήμα που περιμένει ένα άλλο νήμα για να ελευθερώσει ορισμένους πόρους βρίσκεται σε κατάσταση αναμονής.
- Νεκρό: Ένα νήμα που έχει πεθάνει μετά την εκτέλεση είναι σε νεκρή κατάσταση.
59) Μπορούμε να χρησιμοποιήσουμε έναν προεπιλεγμένο κατασκευαστή μιας κλάσης ακόμα κι αν έχει οριστεί ένας ρητός κατασκευαστής;
Java παρέχει έναν προεπιλεγμένο κατασκευαστή χωρίς ορίσματα εάν δεν ορίζεται ρητός κατασκευαστής στο a Java τάξη. Αλλά αν έχει οριστεί ένας ρητός κατασκευαστής, δεν μπορεί να γίνει κλήση του προεπιλεγμένου κατασκευαστή και ο προγραμματιστής μπορεί να χρησιμοποιήσει μόνο αυτούς τους κατασκευαστές που ορίζονται στην κλάση.
60) Μπορούμε να παρακάμψουμε μια μέθοδο χρησιμοποιώντας το ίδιο όνομα μεθόδου και ορίσματα αλλά διαφορετικούς τύπους επιστροφής;
Η βασική προϋπόθεση της παράκαμψης μεθόδου είναι ότι το όνομα της μεθόδου, τα ορίσματα καθώς και ο τύπος επιστροφής πρέπει να είναι ακριβώς τα ίδια με αυτά της μεθόδου που παρακάμπτεται. Επομένως, η χρήση διαφορετικού τύπου επιστροφής δεν παρακάμπτει μια μέθοδο.
61) Ποια θα είναι η έξοδος του παρακάτω κομματιού κώδικα;
public class operatorExample { public static void main(String args[]) { int x = 4; system.out.println(x++); } }
Σε αυτήν την περίπτωση χρησιμοποιείται ο τελεστής postfix ++ που επιστρέφει πρώτα την τιμή και μετά αυξάνει. Άρα η έξοδος θα είναι 4.
61) Κάποιος λέει ότι μεταγλωττίζει μια τάξη java με επιτυχία χωρίς καν να έχει μια κύρια μέθοδο σε αυτήν; Είναι δυνατόν?
κύρια μέθοδος είναι ένα σημείο εισόδου του Java κλάση και απαιτείται για την εκτέλεση του προγράμματος ωστόσο. μια κλάση μεταγλωττίζεται με επιτυχία ακόμα κι αν δεν έχει κύρια μέθοδο. Δεν μπορεί να τρέξει όμως.
62) Μπορούμε να ονομάσουμε μια μη στατική μέθοδο από μέσα μια στατική μέθοδο;
Οι μη στατικές μέθοδοι ανήκουν σε αντικείμενα μιας κλάσης και έχουν εύρος επιπέδου αντικειμένου και για να καλέσετε τις μη στατικές μεθόδους από ένα στατικό μπλοκ (όπως από μια στατική κύρια μέθοδο), πρέπει πρώτα να δημιουργηθεί ένα αντικείμενο της κλάσης. Στη συνέχεια, χρησιμοποιώντας την αναφορά αντικειμένου, αυτές οι μέθοδοι μπορούν να επικαλεστούν.
63) Ποιες είναι οι δύο μεταβλητές περιβάλλοντος που πρέπει να οριστούν για να εκτελεστεί οποιαδήποτε Java προγράμματα;
Java Τα προγράμματα μπορούν να εκτελεστούν σε ένα μηχάνημα μόνο όταν οι ακόλουθες δύο μεταβλητές περιβάλλοντος έχουν ρυθμιστεί σωστά:
- μεταβλητή PATH
- μεταβλητή CLASSPATH
64) Μπορούν να χρησιμοποιηθούν μεταβλητές σε Java χωρίς αρχικοποίηση;
In Java, εάν μια μεταβλητή χρησιμοποιείται σε έναν κώδικα χωρίς προηγούμενη προετοιμασία από μια έγκυρη τιμή, το πρόγραμμα δεν μεταγλωττίζει και δίνει ένα σφάλμα καθώς δεν εκχωρείται προεπιλεγμένη τιμή σε μεταβλητές στο Java.
65) Μπορεί μια τάξη να μπει Java να κληρονομηθεί από περισσότερες από μία τάξεις;
In Java, μια κλάση μπορεί να προκύψει μόνο από μία κλάση και όχι από πολλές κλάσεις. Οι πολλαπλές κληρονομιές δεν υποστηρίζονται από Java.
66) Μπορεί ένας κατασκευαστής να έχει διαφορετικό όνομα από ένα όνομα κλάσης Java?
Κατασκευαστής μέσα Java πρέπει να έχει το ίδιο όνομα με το όνομα της κλάσης και αν το όνομα είναι διαφορετικό, δεν λειτουργεί ως κατασκευαστής και ο μεταγλωττιστής το θεωρεί ως κανονική μέθοδο.
67) Ποια θα είναι η έξοδος των Round(3.7) και Ceil(3.7);
Το Round(3.7) επιστρέφει 4 και το Ceil(3.7) επιστρέφει 4.
68) Μπορούμε να χρησιμοποιήσουμε το goto in Java να πάω σε μια συγκεκριμένη γραμμή;
In Java, δεν υπάρχει λέξη-κλειδί goto και η java δεν υποστηρίζει αυτήν τη δυνατότητα μετάβασης σε μια συγκεκριμένη γραμμή με ετικέτα.
69) Μπορεί να ξεκινήσει ξανά ένα νεκρό νήμα;
Στη java, ένα νήμα που είναι σε νεκρή κατάσταση δεν μπορεί να ξεκινήσει ξανά. Δεν υπάρχει τρόπος να επανεκκινήσετε ένα νεκρό νήμα.
70) Είναι σωστή η ακόλουθη δήλωση κλάσης;
public abstract final class testClass { // Class methods and variables }
Απ.: Η παραπάνω δήλωση κλάσης είναι εσφαλμένη καθώς μια αφηρημένη κλάση δεν μπορεί να δηλωθεί ως Τελική.
71) Απαιτείται JDK σε κάθε μηχάνημα για την εκτέλεση ενός Java πρόγραμμα?
Το JDK είναι το κιτ ανάπτυξης Java και απαιτείται μόνο για ανάπτυξη και εκτέλεση α Java πρόγραμμα σε μηχάνημα, δεν απαιτείται JDK. Απαιτείται μόνο JRE.
72) Ποια είναι η διαφορά μεταξύ της σύγκρισης που γίνεται με τη μέθοδο ίσων και του τελεστή ==;
In JavaΗ μέθοδος equals() χρησιμοποιείται για τη σύγκριση των περιεχομένων δύο αντικειμένων συμβολοσειρών και επιστρέφει true αν τα δύο έχουν την ίδια τιμή ενώ ο τελεστής == συγκρίνει τις αναφορές δύο αντικειμένων συμβολοσειρών.
Στο παρακάτω παράδειγμα, η equals() επιστρέφει true καθώς τα δύο αντικείμενα συμβολοσειράς έχουν τις ίδιες τιμές. Ωστόσο, ο τελεστής == επιστρέφει 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?
In Java, δεν υπάρχουν ορισμένοι καταστροφείς στην κλάση καθώς δεν χρειάζεται να γίνει κάτι τέτοιο. Java έχει το δικό του μηχανισμό συλλογής σκουπιδιών που κάνει τη δουλειά αυτόματα καταστρέφοντας τα αντικείμενα όταν δεν αναφέρονται πλέον.
Java Ερωτήσεις και απαντήσεις συνέντευξης για 5+ χρόνια εμπειρίας
75) Μπορεί μια μεταβλητή να είναι τοπική και στατική ταυτόχρονα;
Όχι, μια μεταβλητή δεν μπορεί να είναι στατική και τοπική ταυτόχρονα. Ο ορισμός μιας τοπικής μεταβλητής ως στατικής δίνει σφάλμα μεταγλώττισης.
76) Μπορούμε να έχουμε στατικές μεθόδους σε μια διεπαφή;
Οι στατικές μέθοδοι δεν μπορούν να παρακαμφθούν σε καμία κλάση, ενώ όλες οι μέθοδοι σε μια διεπαφή είναι από προεπιλογή αφηρημένες και υποτίθεται ότι υλοποιούνται στις κλάσεις που υλοποιούν τη διεπαφή. Επομένως, δεν έχει νόημα να υπάρχουν στατικές μέθοδοι σε μια διεπαφή Java.
77) Σε μια κλάση που υλοποιεί μια διεπαφή, μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής που ορίζεται στη διεπαφή;
Όχι, δεν μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής μιας διεπαφής στην κλάση υλοποίησης, καθώς όλες οι μεταβλητές που ορίζονται στη διεπαφή είναι από προεπιλογή δημόσιες, οι στατικές και οι Τελικές και οι τελικές μεταβλητές είναι σαν σταθερές που δεν μπορούν να αλλάξουν αργότερα.
78) Είναι σωστό να πούμε ότι λόγω της δυνατότητας συλλογής σκουπιδιών σε Java, ένα πρόγραμμα java δεν σβήνει ποτέ από τη μνήμη;
Παρόλο που παρέχεται αυτόματη αποκομιδή σκουπιδιών από Java, δεν διασφαλίζει ότι α Java το πρόγραμμα δεν θα σβήσει από τη μνήμη καθώς υπάρχει πιθανότητα η δημιουργία του Java τα αντικείμενα εκτελούνται με ταχύτερο ρυθμό σε σύγκριση με τη συλλογή σκουπιδιών με αποτέλεσμα την πλήρωση όλων των διαθέσιμων πόρων μνήμης.
Έτσι, η συλλογή σκουπιδιών βοηθά στη μείωση των πιθανοτήτων εξάντλησης της μνήμης ενός προγράμματος, αλλά δεν το διασφαλίζει.
79) Μπορούμε να έχουμε οποιονδήποτε άλλο τύπο επιστροφής εκτός από το void για την κύρια μέθοδο;
ΟΧΙ, Java Η κύρια μέθοδος κλάσης μπορεί να έχει μόνο τύπο κενού επιστροφής για να εκτελεστεί επιτυχώς το πρόγραμμα.
Ωστόσο, εάν πρέπει οπωσδήποτε να επιστρέψετε μια τιμή με την ολοκλήρωση της κύριας μεθόδου, μπορείτε να χρησιμοποιήσετε το System.exit(κατάσταση int)
80) Θέλω να προσεγγίσω ξανά και να χρησιμοποιήσω ένα αντικείμενο αφού έχει συλλεχθεί τα σκουπίδια. Πώς είναι δυνατόν;
Από τη στιγμή που ένα αντικείμενο έχει καταστραφεί από τον συλλέκτη σκουπιδιών, δεν υπάρχει πλέον στο σωρό και δεν είναι δυνατή η πρόσβαση σε αυτό ξανά. Δεν υπάρχει τρόπος να το αναφέρω ξανά.
81) Σε Java Προγραμματισμός νημάτων, ποια μέθοδος είναι απαραίτητη για όλα τα νήματα;
Η Run() είναι μια μέθοδος διεπαφής Runnable που πρέπει να υλοποιηθεί από όλα τα νήματα.
82) Θέλω να ελέγξω τις συνδέσεις βάσης δεδομένων στο πρόγραμμά μου και θέλω μόνο ένα νήμα να μπορεί να κάνει σύνδεση βάσης δεδομένων κάθε φορά. Πώς μπορώ να εφαρμόσω αυτή τη λογική;
Απ.: Αυτό μπορεί να υλοποιηθεί με τη χρήση της έννοιας του συγχρονισμού. Ο κώδικας που σχετίζεται με τη βάση δεδομένων μπορεί να τοποθετηθεί σε μια μέθοδο που hs συγχρονισμένη λέξη-κλειδί έτσι ώστε μόνο ένα νήμα να έχει πρόσβαση σε αυτό κάθε φορά.
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, κάθε αντικείμενο όταν δημιουργείται παίρνει έναν χώρο μνήμης από έναν σωρό. Όταν ένα αντικείμενο καταστρέφεται από έναν συλλέκτη σκουπιδιών, ο χώρος που του εκχωρείται από το σωρό εκχωρείται εκ νέου στον σωρό και γίνεται διαθέσιμος για τυχόν νέα αντικείμενα.
86) Πώς μπορούμε να βρούμε το πραγματικό μέγεθος ενός αντικειμένου στο σωρό;
Στη java, δεν υπάρχει τρόπος να μάθετε το ακριβές μέγεθος ενός αντικειμένου στο σωρό.
87) Σε ποια από τις παρακάτω κλάσεις θα έχει εκχωρηθεί περισσότερη μνήμη;
Κλάση Α: Τρεις μέθοδοι, τέσσερις μεταβλητές, κανένα αντικείμενο
Κλάση Β: Πέντε μέθοδοι, τρεις μεταβλητές, κανένα αντικείμενο
Η μνήμη δεν εκχωρείται πριν από τη δημιουργία αντικειμένων. Δεδομένου ότι και για τις δύο κλάσεις, δεν δημιουργήθηκαν αντικείμενα, επομένως δεν εκχωρείται μνήμη σε σωρό για καμία κλάση.
88) Τι συμβαίνει εάν μια εξαίρεση δεν αντιμετωπίζεται σε ένα πρόγραμμα;
Εάν μια εξαίρεση δεν αντιμετωπιστεί σε ένα πρόγραμμα χρησιμοποιώντας μπλοκ try catch, το πρόγραμμα ματαιώνεται και καμία πρόταση δεν εκτελείται μετά την πρόταση που προκάλεσε τη δημιουργία εξαίρεσης.
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) Θέλω να διατηρήσω δεδομένα αντικειμένων για μελλοντική χρήση. Ποια είναι η καλύτερη προσέγγιση για να γίνει αυτό;
Ο καλύτερος τρόπος για να διατηρήσετε δεδομένα για μελλοντική χρήση είναι να χρησιμοποιήσετε την έννοια της σειριοποίησης.
94) Τι περιλαμβάνει μια τοπική τάξη Java?
In Java, αν ορίσουμε μια νέα κλάση μέσα σε ένα συγκεκριμένο μπλοκ, ονομάζεται τοπική κλάση. Μια τέτοια κλάση έχει τοπική εμβέλεια και δεν μπορεί να χρησιμοποιηθεί εκτός του μπλοκ όπου ορίζεται.
95) Χορδή και χορδήBuffer και τα δύο αντιπροσωπεύουν αντικείμενα String. Μπορούμε να συγκρίνουμε το String και το StringBuffer in Java?
Αν και String και StringBuffer και τα δύο αντιπροσωπεύουν αντικείμενα String, δεν μπορούμε να τα συγκρίνουμε μεταξύ τους και αν προσπαθήσουμε να τα συγκρίνουμε, λαμβάνουμε ένα σφάλμα.
96) Από ποιο API παρέχεται Java για πράξεις σε σύνολο αντικειμένων;
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) Ποια είναι η βασική κλάση όλων των κλάσεων εξαίρεσης;
In Java, Java.lang.Throwable
είναι η υπερκλάση όλων των κλάσεων εξαίρεσης και όλες οι κλάσεις εξαίρεσης προέρχονται από αυτή τη βασική κλάση.
100) Ποια είναι η σειρά κλήσης των κατασκευαστών στην κληρονομιά;
Σε περίπτωση κληρονομικότητας, όταν δημιουργείται ένα νέο αντικείμενο μιας παράγωγης κλάσης, πρώτα καλείται ο κατασκευαστής της υπερκλάσης και μετά ο κατασκευαστής της παραγόμενης κλάσης.
Προετοιμασία για τη συνέντευξη εργασίας σας!!! Περάσουν από Java Εκμάθηση για να είμαστε καλύτερα προετοιμασμένοι.
Αυτό είναι λεπτομερές Java Το Mock Test Quiz θα σας βοηθήσει να ξεκαθαρίσετε τις αμφιβολίες σχετικά με Java ερωτήσεις συνέντευξης και θα σας βοηθήσουν επίσης να διακόψετε τη συνέντευξη.
Αυτοί Java και Java 8 ερωτήσεις συνέντευξης θα βοηθήσει επίσης στο viva σας (στοματικά)