Λήψη PDF
Έχουμε συγκεντρώσει τις πιο συχνές ερωτήσεις και απαντήσεις συνέντευξης Java που θα σας βοηθήσουν να προετοιμαστείτε για τις βασικές ερωτήσεις συνέντευξης Java που μπορεί να σας ρωτήσει ένας ερευνητής κατά τη συνέντευξή σας. Σε αυτήν τη λίστα βασικών ερωτήσεων συνέντευξης Java, έχουμε καλύψει όλες τις συνήθεις ερωτήσεις βασικής και προχωρημένης συνέντευξης Core Java με λεπτομερείς απαντήσεις για να σας βοηθήσουμε να καθαρίσετε τη συνέντευξη εργασίας.
Η ακόλουθη λίστα περιέχει 100 σημαντικές ερωτήσεις συνέντευξης Core Java για νέους, καθώς και ερωτήσεις συνέντευξης Java και απαντήσεις για έμπειρους προγραμματιστές για να τους βοηθήσουν να προετοιμαστούν για τη συνέντευξη. Αυτός ο λεπτομερής οδηγός ερωτήσεων συνέντευξης για τον προγραμματισμό Java θα σας βοηθήσει να σπάσετε εύκολα τη συνέντευξη εργασίας σας.
Core Java Συνέντευξη Ερωτήσεις και Απαντήσεις για Νωπά και Έμπειρους
Ε1. Ποια είναι η διαφορά μεταξύ μιας εσωτερικής τάξης και μιας υποκατηγορίας;
Απ .: Μια εσωτερική τάξη είναι μια τάξη που βρίσκεται μέσα σε μια άλλη τάξη. Μια εσωτερική κλάση έχει δικαιώματα πρόσβασης για την τάξη που την τοποθετεί και μπορεί να έχει πρόσβαση σε όλες τις μεταβλητές και τις μεθόδους που ορίζονται στην εξωτερική τάξη.
Μια υποκατηγορία είναι μια τάξη που κληρονομεί από μια άλλη τάξη που ονομάζεται super class. Η υποκατηγορία μπορεί να έχει πρόσβαση σε όλες τις δημόσιες και προστατευμένες μεθόδους και πεδία της σούπερ κατηγορίας της
Ε2. Ποιοι είναι οι διάφοροι προσδιοριστές πρόσβασης για τάξεις Java;
Απ .: Στην Java, οι προσδιοριστές πρόσβασης είναι οι λέξεις-κλειδιά που χρησιμοποιήθηκαν πριν από ένα όνομα κλάσης που καθορίζει το εύρος πρόσβασης. Οι τύποι προσδιοριστών πρόσβασης για τάξεις είναι:
1. Δημόσιο: Κατηγορία, Μέθοδος, Πεδίο είναι προσβάσιμο από οπουδήποτε.
2. Προστατευμένο: Μέθοδος, η πρόσβαση στο Πεδίο από την ίδια κλάση στην οποία ανήκουν ή από τις υποκατηγορίες και από την κατηγορία του ίδιου πακέτου, αλλά όχι από έξω.
3. Προεπιλογή: Η μέθοδος, το πεδίο, η κλάση είναι προσβάσιμα μόνο από το ίδιο πακέτο και όχι από το εξωτερικό του πακέτου.
4. Ιδιωτικό: Μέθοδος, πρόσβαση στο πεδίο από την ίδια τάξη στην οποία ανήκουν.
Ε3. Ποιος είναι ο σκοπός των στατικών μεθόδων και των στατικών μεταβλητών;
Απ .: Όταν υπάρχει απαίτηση για κοινή χρήση μιας μεθόδου ή μιας μεταβλητής μεταξύ πολλών αντικειμένων μιας κλάσης αντί να δημιουργούμε ξεχωριστά αντίγραφα για κάθε αντικείμενο, χρησιμοποιούμε στατική λέξη-κλειδί για να κάνουμε κοινή χρήση μιας μεθόδου ή μεταβλητής για όλα τα αντικείμενα.
Ε4. Τι είναι η ενθυλάκωση δεδομένων και ποια είναι η σημασία της;
Απ .: Το Encapsulation είναι μια ιδέα στον Προγραμματισμένο Προσανατολισμό Αντικειμένου για το συνδυασμό ιδιοτήτων και μεθόδων σε μία μόνο ενότητα.
Το Encapsulation βοηθά τους προγραμματιστές να ακολουθήσουν μια αρθρωτή προσέγγιση για την ανάπτυξη λογισμικού, καθώς κάθε αντικείμενο έχει το δικό του σύνολο μεθόδων και μεταβλητών και εξυπηρετεί τις λειτουργίες του ανεξάρτητα από άλλα αντικείμενα. Το Encapsulation εξυπηρετεί επίσης σκοπούς απόκρυψης δεδομένων.
Ε5. Τι είναι η τάξη των singleton; Δώστε ένα πρακτικό παράδειγμα της χρήσης του.
Μια τάξη singleton στο java μπορεί να έχει μόνο μία παρουσία και ως εκ τούτου όλες οι μέθοδοι και οι μεταβλητές της ανήκουν σε μία μόνο παρουσία. Η έννοια της τάξης Singleton είναι χρήσιμη για καταστάσεις όπου υπάρχει ανάγκη περιορισμού του αριθμού αντικειμένων για μια τάξη.
Το καλύτερο παράδειγμα του σεναρίου χρήσης του singleton είναι όταν υπάρχει ένα όριο που έχει μόνο μία σύνδεση σε μια βάση δεδομένων λόγω ορισμένων περιορισμών του προγράμματος οδήγησης ή λόγω τυχόν ζητημάτων αδειοδότησης.
Ε6. Τι είναι οι βρόχοι στην Java; Ποιοι είναι οι τρεις τύποι βρόχων;
Απ .: Ο βρόχος χρησιμοποιείται στον προγραμματισμό για να εκτελεί μια δήλωση ή ένα μπλοκ δηλώσεων επανειλημμένα. Υπάρχουν τρεις τύποι βρόχων στην Java:
1) Για βρόχους
Για τους βρόχους χρησιμοποιούνται στο java για να εκτελούν επαναλαμβανόμενες δηλώσεις για συγκεκριμένες φορές. Για βρόχους χρησιμοποιούνται όταν ο προγραμματιστής είναι γνωστός πόσες φορές για την εκτέλεση των δηλώσεων.
2) Ενώ βρόχους
Ενώ ο βρόχος χρησιμοποιείται όταν ορισμένες δηλώσεις πρέπει να εκτελούνται επανειλημμένα έως ότου εκπληρωθεί μια συνθήκη. Στο while loop, η κατάσταση ελέγχεται πρώτα πριν από την εκτέλεση των δηλώσεων.
3) Κάντε ενώ κάνετε βρόχους
Το Do While Loop είναι ίδιο με το While loop με μόνο διαφορά ότι η κατάσταση ελέγχεται μετά την εκτέλεση του μπλοκ δηλώσεων Ως εκ τούτου, σε περίπτωση βρόχου do while, οι δηλώσεις εκτελούνται τουλάχιστον μία φορά.
Ε7: Τι είναι ένας άπειρος βρόχος; Πώς δηλώνεται ο άπειρος βρόχος;
Απ .: Ένας άπειρος βρόχος τρέχει χωρίς καμία συνθήκη και τρέχει απεριόριστα. Ένας άπειρος βρόχος μπορεί να σπάσει καθορίζοντας οποιαδήποτε λογική διακοπής στο σώμα των μπλοκ δήλωσης.
Ο άπειρος βρόχος δηλώνεται ως εξής:
for (;;){// Statements to execute// Add any loop breaking logic}
Ε8. Ποια είναι η διαφορά μεταξύ δήλωσης συνέχισης και διακοπής;
Απ .: η διακοπή και η συνέχεια είναι δύο σημαντικές λέξεις-κλειδιά που χρησιμοποιούνται στο Loops. Όταν μια λέξη-κλειδί διακοπής χρησιμοποιείται σε έναν βρόχο, ο βρόχος σπάει αμέσως, ενώ όταν χρησιμοποιείται η λέξη-κλειδί συνέχισης, η τρέχουσα επανάληψη διακόπτεται και ο βρόχος συνεχίζεται με την επόμενη επανάληψη
Στο παρακάτω παράδειγμα, ο βρόχος σπάει όταν ο μετρητής φτάσει στο 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 είναι ένας δεκαδικός αριθμός κινητής υποδιαστολής μονής ακρίβειας, ενώ ο διπλός δεκαδικός αριθμός διπλής ακρίβειας
Ε10. Τι είναι η τελική λέξη-κλειδί στην Java; Δώσε ένα παράδειγμα.
Απ .: Στην java, δηλώνεται μια σταθερά χρησιμοποιώντας τη λέξη-κλειδί Final. Η τιμή μπορεί να εκχωρηθεί μόνο μία φορά και μετά την ανάθεση, η τιμή μιας σταθεράς δεν μπορεί να αλλάξει.
Στο παρακάτω παράδειγμα, μια σταθερά με το όνομα const_val δηλώνεται και εκχωρείται τιμή:
Ιδιωτικός τελικός int const_val = 100
Όταν μια μέθοδος δηλώνεται ως τελική, ΔΕΝ μπορεί να παρακαμφθεί από τις υποκατηγορίες. Αυτή η μέθοδος είναι ταχύτερη από οποιαδήποτε άλλη μέθοδο, επειδή επιλύονται σε συμμορφωμένο χρόνο.
Όταν μια τάξη δηλώνεται ως τελική, δεν μπορεί να υποκατηγορηθεί. Παράδειγμα String, Integer και άλλες τάξεις περιτυλίγματος.
Ε11. Τι είναι ο τριαδικός χειριστής; Δώσε ένα παράδειγμα.
Απ .: Ο χειριστής Ternary, που ονομάζεται επίσης τελεστής υπό όρους χρησιμοποιείται για να αποφασίσει ποια τιμή θα εκχωρήσει σε μια μεταβλητή βάσει μιας αξιολόγησης 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 {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. Μπορεί η κύρια () μέθοδος στην Java να επιστρέψει δεδομένα;
Απ: Στην java, η κύρια μέθοδος () δεν μπορεί να επιστρέψει δεδομένα και ως εκ τούτου, δηλώνεται πάντα με κενό τύπο επιστροφής.
Ε16. Τι είναι τα πακέτα Java; Ποια είναι η σημασία των πακέτων;
Απ .: Στην Java, το πακέτο είναι μια συλλογή από τάξεις και διεπαφές που ομαδοποιούνται μεταξύ τους καθώς σχετίζονται μεταξύ τους. Η χρήση πακέτων βοηθά τους προγραμματιστές να διαμορφώσουν τον κώδικα και να ομαδοποιήσουν τον κώδικα για σωστή επαναχρησιμοποίηση. Μόλις ο κώδικας έχει συσκευαστεί στα Πακέτα, μπορεί να εισαχθεί σε άλλες κατηγορίες και να χρησιμοποιηθεί.
Ε17. Μπορούμε να δηλώσουμε μια τάξη ως Περίληψη χωρίς να έχουμε καμία αφηρημένη μέθοδο;
Απ .: Ναι μπορούμε να δημιουργήσουμε μια αφηρημένη τάξη χρησιμοποιώντας αφηρημένη λέξη-κλειδί πριν από το όνομα της τάξης ακόμα κι αν δεν έχει καμία αφηρημένη μέθοδο. Ωστόσο, εάν μια τάξη έχει ακόμη μια αφηρημένη μέθοδο, πρέπει να δηλωθεί ως αφηρημένη, διαφορετικά θα δώσει σφάλμα.
Ε18. Ποια είναι η διαφορά μεταξύ ενός Abstract Class και Interface στην Java;
Απ .: Η πρωταρχική διαφορά μεταξύ μιας αφηρημένης κλάσης και μιας διεπαφής είναι ότι μια διεπαφή μπορεί να διαθέτει μόνο δήλωση δημόσιων στατικών μεθόδων χωρίς συγκεκριμένη εφαρμογή, ενώ μια αφηρημένη τάξη μπορεί να έχει μέλη με οποιονδήποτε προσδιοριστή πρόσβασης (δημόσιο, ιδιωτικό κλπ) με ή χωρίς συγκεκριμένη εφαρμογή.
Μια άλλη βασική διαφορά στη χρήση αφηρημένων κλάσεων και διεπαφών είναι ότι μια κλάση που εφαρμόζει μια διεπαφή πρέπει να εφαρμόζει όλες τις μεθόδους της διεπαφής, ενώ μια κλάση που κληρονομεί από μια αφηρημένη τάξη δεν απαιτεί εφαρμογή όλων των μεθόδων της σούπερ κλάσης.
Μια κλάση μπορεί να εφαρμόσει πολλαπλές διεπαφές αλλά μπορεί να επεκτείνει μόνο μία αφηρημένη κλάση.
Ε19. Ποιες είναι οι επιπτώσεις απόδοσης των Interfaces σε σχέση με αφηρημένες τάξεις;
Απ .: Οι διεπαφές είναι πιο αργές στην απόδοση σε σύγκριση με τις αφηρημένες τάξεις, καθώς απαιτούνται επιπλέον οδηγίες για διεπαφές. Ένας άλλος βασικός παράγοντας που πρέπει να λάβουν υπόψη οι προγραμματιστές είναι ότι κάθε κλάση μπορεί να επεκτείνει μόνο μία αφηρημένη κλάση, ενώ μια τάξη μπορεί να εφαρμόσει πολλές διεπαφές.
Η χρήση διεπαφών επιβαρύνει επίσης τους προγραμματιστές, καθώς κάθε φορά που εφαρμόζεται μια διεπαφή σε μια τάξη. Ο προγραμματιστής αναγκάζεται να εφαρμόσει κάθε μέθοδο διασύνδεσης.
Ε20. Η εισαγωγή ενός πακέτου εισάγει και τα υπο-πακέτα της στην Java;
Απ .: Στην Ιάβα, όταν εισάγεται ένα πακέτο, τα υπο-πακέτα του δεν εισάγονται και ο προγραμματιστής πρέπει να τα εισαγάγει ξεχωριστά εάν απαιτείται.
Για παράδειγμα, εάν ένας προγραμματιστής εισαγάγει πακέτο πανεπιστημίου. *, Φορτώνονται όλα τα μαθήματα στο πακέτο που ονομάζονται πανεπιστήμιο, αλλά δεν φορτώνονται μαθήματα από το υπο-πακέτο Για να φορτώσει τα μαθήματα από το υπο-πακέτο του (ας πούμε τμήμα), ο προγραμματιστής πρέπει να το εισαγάγει ρητά ως εξής:
Εισαγωγή πανεπιστημίου. Τμήμα. *
Ε21. Μπορούμε να δηλώσουμε ότι η κύρια μέθοδος της τάξης μας είναι ιδιωτική;
Απ .: Στην Ιάβα, η κύρια μέθοδος πρέπει να είναι δημόσια στατική, προκειμένου να εκτελείται σωστά οποιαδήποτε εφαρμογή. Εάν η κύρια μέθοδος δηλωθεί ως ιδιωτική, ο προγραμματιστής δεν θα λάβει κανένα σφάλμα σύνταξης, ωστόσο, δεν θα εκτελεστεί και θα δώσει σφάλμα χρόνου εκτέλεσης.
Ε22. Πώς μπορούμε να μεταφέρουμε το όρισμα σε μια συνάρτηση με αναφορά αντί να περάσουμε από την τιμή;
Απ: Στην java, μπορούμε να μεταφέρουμε το όρισμα σε μια συνάρτηση μόνο από τιμή και όχι με αναφορά.
Ε23. Πώς ένα αντικείμενο σειριοποιείται σε Java;
Απ .: Στην Java, για να μετατρέψετε ένα αντικείμενο σε ροή byte μέσω σειριοποίησης, μια διεπαφή με το όνομα Serializable εφαρμόζεται από την κλάση. Όλα τα αντικείμενα μιας κλάσης που εφαρμόζει σειριοποιήσιμη διεπαφή παίρνουν σειριοποιημένα και η κατάστασή τους αποθηκεύεται σε ροή byte.
Ε24. Πότε πρέπει να χρησιμοποιούμε σειριοποίηση;
Απ .: Η σειριοποίηση χρησιμοποιείται όταν τα δεδομένα πρέπει να μεταδοθούν μέσω του δικτύου. Χρησιμοποιώντας σειριοποίηση, η κατάσταση του αντικειμένου αποθηκεύεται και μετατρέπεται σε ροή byte. Η ροή byte μεταφέρεται μέσω του δικτύου και το αντικείμενο επαναδημιουργείται στον προορισμό.
Ε25. Είναι υποχρεωτικό να ακολουθείται ένα Block Block από Catch Block στην Java για εξαίρεση;
Απ .: Το μπλοκ δοκιμής πρέπει να ακολουθηθεί είτε από μπλοκ Catch είτε μπλοκ τελικά ή και τα δύο. Οποιαδήποτε εξαίρεση που απορρίπτεται από το μπλοκ δοκιμής πρέπει είτε να παγιδευτεί στο μπλοκ αλίευσης είτε αλλιώς συγκεκριμένες εργασίες που πρέπει να εκτελεστούν πριν από την άμβλωση κώδικα στο μπλοκ Τέλος
Ε26. Υπάρχει τρόπος να παραλείψετε Τέλος το μπλοκ εξαίρεσης ακόμα κι αν υπάρχει κάποια εξαίρεση στο μπλοκ εξαιρέσεων;
Απ .: Εάν δημιουργηθεί μια εξαίρεση στο μπλοκ Try, ο έλεγχος περνά για να πιάσει μπλοκ αν υπάρχει διαφορετικά για να μπλοκάρει τελικά. Τέλος, το μπλοκ εκτελείται πάντα όταν συμβαίνει μια εξαίρεση και ο μόνος τρόπος για να αποφευχθεί η εκτέλεση οποιωνδήποτε δηλώσεων στο Τέλος μπλοκ είναι η ματαίωση του κωδικού γράφοντας την ακόλουθη γραμμή κώδικα στο τέλος του μπλοκ δοκιμής:
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();}}
Απ . : Η παραγωγή θα είναι:
Εμφάνιση από υποκατηγορία
Εμφάνιση από superclass
Ε31. Είναι το String ένας τύπος δεδομένων στην Java;
Απ .: Η συμβολοσειρά δεν είναι πρωτόγονος τύπος δεδομένων στην Java. Όταν δημιουργείται μια συμβολοσειρά σε java, στην πραγματικότητα είναι ένα αντικείμενο της κλάσης Java.Lang.String που δημιουργείται. Μετά τη δημιουργία αυτού του αντικειμένου συμβολοσειράς, όλες οι ενσωματωμένες μέθοδοι της κλάσης συμβολοσειρών μπορούν να χρησιμοποιηθούν στο αντικείμενο συμβολοσειράς.
Ε32. Στο παρακάτω παράδειγμα, πόσα String Objects δημιουργούνται;
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 ονομάζονται αμετάβλητες;
Απ: Στην Ιάβα, τα αντικείμενα συμβολοσειράς ονομάζονται αμετάβλητα, καθώς μια τιμή έχει αντιστοιχιστεί σε μια συμβολοσειρά, δεν μπορεί να αλλάξει και αν αλλάξει, δημιουργείται ένα νέο αντικείμενο.
Στο παρακάτω παράδειγμα, το str αναφέρεται σε ένα αντικείμενο συμβολοσειράς που έχει τιμή "Value one".
String str="Value One";
Όταν εκχωρείται μια νέα τιμή, δημιουργείται ένα νέο αντικείμενο συμβολοσειράς και η αναφορά μετακινείται στο νέο αντικείμενο.
str="New Value";
Ε34. Ποια είναι η διαφορά μεταξύ ενός πίνακα και του διανύσματος;
Απ .: Ένας πίνακας ομαδοποιεί δεδομένα του ίδιου πρωτόγονου τύπου και έχει στατικό χαρακτήρα ενώ τα διανύσματα είναι δυναμικής φύσης και μπορούν να συγκρατούν δεδομένα διαφορετικών τύπων δεδομένων.
Ε35. Τι είναι το multi-threading;
Απ .: Το multi threading είναι μια ιδέα προγραμματισμού για την εκτέλεση πολλαπλών εργασιών με ταυτόχρονο τρόπο σε ένα μόνο πρόγραμμα. Τα νήματα μοιράζονται την ίδια στοίβα διαδικασιών και εκτελούνται παράλληλα. Βοηθά στη βελτίωση της απόδοσης οποιουδήποτε προγράμματος.
Ε36. Γιατί το Runnable Interface χρησιμοποιείται στην Java;
Απ .: Η διεπαφή Runnable χρησιμοποιείται στην Java για την εφαρμογή εφαρμογών πολλαπλών νημάτων. Java.Lang.Runnable διεπαφή εφαρμόζεται από μια κλάση για την υποστήριξη πολλαπλών νημάτων.
Ε37. Ποιοι είναι οι δύο τρόποι εφαρμογής πολλαπλών σπειρωμάτων στην Java;
Απ .: Οι εφαρμογές πολλαπλών νημάτων μπορούν να αναπτυχθούν στην Java χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες δύο μεθοδολογίες:
1. Χρησιμοποιώντας Java.Lang.Runnable Interface. Τα μαθήματα εφαρμόζουν αυτήν τη διεπαφή για να επιτρέψουν πολλαπλές κλωστές Υπάρχει μια μέθοδος Run () σε αυτήν τη διεπαφή που εφαρμόζεται.
2. Γράφοντας μια τάξη που επεκτείνει την κλάση Java.Lang.Thread.
Ε38. Όταν απαιτούνται πολλές αλλαγές στα δεδομένα, ποια θα πρέπει να προτιμάται να χρησιμοποιείται; String ή StringBuffer;
Απ .: Επειδή το StringBuffers έχει δυναμικό χαρακτήρα και μπορούμε να αλλάξουμε τις τιμές των αντικειμένων StringBuffer σε αντίθεση με το String που είναι αμετάβλητο, είναι πάντα καλή επιλογή να χρησιμοποιείτε το StringBuffer όταν τα δεδομένα αλλάζουν πάρα πολύ. Εάν χρησιμοποιούμε το String σε μια τέτοια περίπτωση, για κάθε αλλαγή δεδομένων θα δημιουργηθεί ένα νέο αντικείμενο String το οποίο θα είναι επιπλέον επιβάρυνση.
Ε39. Ποιος είναι ο σκοπός της χρήσης Break σε κάθε περίπτωση του Switch Statement;
Απ .: Το διάλειμμα χρησιμοποιείται μετά από κάθε περίπτωση (εκτός από την τελευταία) σε έναν διακόπτη, έτσι ώστε ο κώδικας να σπάει μετά την έγκυρη περίπτωση και να μην ρέει επίσης στις υπόθεση.
Εάν το διάλειμμα δεν χρησιμοποιείται μετά από κάθε περίπτωση, όλες οι περιπτώσεις μετά την έγκυρη περίπτωση εκτελούνται επίσης με αποτέλεσμα λανθασμένα αποτελέσματα.
Ε40. Πώς γίνεται η συλλογή απορριμμάτων στην Java;
Απ .: Στην Ιάβα, όταν ένα αντικείμενο δεν αναφέρεται πλέον, πραγματοποιείται συλλογή απορριμμάτων και το αντικείμενο καταστρέφεται αυτόματα. Για αυτόματη συλλογή απορριμμάτων, κλήσεις java είτε η μέθοδος System.gc () είτε η μέθοδος Runtime.gc ().
Ε41. Πώς μπορούμε να εκτελέσουμε οποιονδήποτε κώδικα πριν από την κύρια μέθοδο;
Απ .: Εάν θέλουμε να εκτελέσουμε οποιεσδήποτε δηλώσεις πριν ακόμη δημιουργήσουμε αντικείμενα κατά το χρόνο φόρτωσης της κλάσης, μπορούμε να χρησιμοποιήσουμε ένα στατικό μπλοκ κώδικα στην τάξη. Τυχόν δηλώσεις μέσα σε αυτό το στατικό μπλοκ κώδικα θα εκτελεστούν μία φορά κατά τη φόρτωση της κλάσης, ακόμη και πριν από τη δημιουργία αντικειμένων στην κύρια μέθοδο.
Ε42. Μπορεί η τάξη να είναι σούπερ τάξη και δευτερεύουσα τάξη ταυτόχρονα; Δώστε παράδειγμα.
Απ .: Εάν χρησιμοποιείται μια ιεραρχία κληρονομιάς, μια τάξη μπορεί να είναι μια σούπερ τάξη για μια άλλη τάξη και μια υποκατηγορία για μια άλλη ταυτόχρονα.
Στο παρακάτω παράδειγμα, η κλάση της ηπείρου είναι υποκατηγορία της παγκόσμιας κλάσης και είναι η σούπερ τάξη της χώρας.
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. Ποιο είναι το όφελος από τη χρήση της κληρονομιάς;
Απ .: Το βασικό όφελος από τη χρήση της κληρονομιάς είναι η επαναχρησιμοποίηση του κώδικα, καθώς η κληρονομιά επιτρέπει στις υποκατηγορίες να επαναχρησιμοποιούν τον κωδικό της σούπερ κλάσης. Ο πολυμορφισμός (Extensibility) είναι ένα άλλο μεγάλο όφελος που επιτρέπει την εισαγωγή νέων λειτουργιών χωρίς να επηρεάζονται οι υπάρχουσες παράγωγες τάξεις.
Ε50. Ποιος είναι ο προεπιλεγμένος προσδιοριστής πρόσβασης για μεταβλητές και μεθόδους μιας κλάσης;
Απ .: Ο προεπιλεγμένος προσδιοριστής πρόσβασης για μεταβλητές και μέθοδος προστατεύεται από πακέτο, δηλαδή μεταβλητές και η κλάση είναι διαθέσιμη σε οποιαδήποτε άλλη κλάση αλλά στο ίδιο πακέτο, όχι έξω από το πακέτο.
Ε51. Δώστε ένα παράδειγμα χρήσης Pointers στην τάξη Java.
Απ .: Δεν υπάρχουν δείκτες στην Ιάβα. Επομένως, δεν μπορούμε να χρησιμοποιήσουμε την έννοια των δεικτών στην Java.
Ε52. Πώς μπορούμε να περιορίσουμε την κληρονομιά για μια τάξη, έτσι ώστε καμία τάξη να μην μπορεί να κληρονομηθεί από αυτήν;
Απ .: Εάν θέλουμε μια τάξη να μην επεκταθεί περαιτέρω από οποιαδήποτε τάξη, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί Τελικό με το όνομα της τάξης.
Στο παρακάτω παράδειγμα, η κατηγορία Stone είναι Τελική και δεν μπορεί να επεκταθεί
public Final Class Stone {// Class methods and Variables}
Ε53. Ποιο είναι το πεδίο πρόσβασης του προσδιοριστή προστατευμένης πρόσβασης;
Απ .: Όταν μια μέθοδος ή μια μεταβλητή δηλώνεται με τον προσδιοριστή Προστατευμένης πρόσβασης, γίνεται προσβάσιμη στην ίδια κατηγορία, οποιαδήποτε άλλη κλάση του ίδιου πακέτου καθώς και μια υποκατηγορία.
Τροποποιητής |
Τάξη |
Πακέτο |
Υποδιαίρεση τάξεως |
Κόσμος |
δημόσιο |
Γ |
Γ |
Γ |
Γ |
προστατευμένο |
Γ |
Γ |
Γ |
Ν |
χωρίς τροποποιητή |
Γ |
Γ |
Ν |
Ν |
ιδιωτικός |
Γ |
Ν |
Ν |
Ν |
Ε54. Ποια είναι η διαφορά μεταξύ Stack και Queue;
Απ .: Το Stack και το Queue και τα δύο χρησιμοποιούνται ως placeholder για τη συλλογή δεδομένων. Η κύρια διαφορά μεταξύ στοίβας και ουράς είναι ότι η στοίβα βασίζεται στην αρχή 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 μπορούν να αντιμετωπιστούν ως αντικείμενα με τη χρήση των αντίστοιχων τάξεων περιτυλίγματος. Για παράδειγμα, το Integer είναι μια κατηγορία περιτυλίγματος για πρωτόγονους τύπους δεδομένων int. Μπορούμε να εφαρμόσουμε διαφορετικές μεθόδους σε μια τάξη περιτυλίγματος, όπως και κάθε άλλο αντικείμενο.
Ε57. Ποιοι τύποι εξαιρέσεων εντοπίζονται κατά τη μεταγλώττιση;
Απ .: Οι ελεγμένες εξαιρέσεις μπορούν να εντοπιστούν κατά τη στιγμή της κατάρτισης του προγράμματος. Οι ελεγμένες εξαιρέσεις πρέπει να αντιμετωπιστούν χρησιμοποιώντας το μπλοκ try catch στον κώδικα, προκειμένου να συγκεντρωθεί επιτυχώς ο κωδικός.
Ε58. Περιγράψτε διαφορετικές καταστάσεις ενός νήματος.
Απ .: Ένα νήμα στην Java μπορεί να είναι σε μία από τις ακόλουθες καταστάσεις:
- Έτοιμο: Όταν δημιουργείται ένα νήμα, βρίσκεται σε κατάσταση ετοιμότητας.
- Τρέξιμο: Ένα νήμα που εκτελείται αυτήν τη στιγμή βρίσκεται σε κατάσταση λειτουργίας.
- Αναμονή: Ένα νήμα που περιμένει ένα άλλο νήμα για την απελευθέρωση ορισμένων πόρων βρίσκεται σε κατάσταση αναμονής.
- Dead: Ένα νήμα που έχει πεθάνει μετά την εκτέλεση είναι σε νεκρή κατάσταση.
Ε59. Μπορούμε να χρησιμοποιήσουμε έναν προεπιλεγμένο κατασκευαστή μιας κλάσης, ακόμη και αν έχει οριστεί ένας ρητός κατασκευαστής;
Απ .: Η Java παρέχει έναν προεπιλεγμένο κατασκευαστή ορίσματος αν δεν έχει οριστεί ρητός κατασκευαστής σε μια κλάση 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 χωρίς αρχικοποίηση;
Απ .: Στην Java, εάν μια μεταβλητή χρησιμοποιείται σε έναν κώδικα χωρίς προηγούμενη προετοιμασία από μια έγκυρη τιμή, το πρόγραμμα δεν μεταγλωττίζεται και δίνει ένα σφάλμα καθώς δεν έχει εκχωρηθεί προεπιλεγμένη τιμή σε μεταβλητές στην Java.
Ε65. Μπορεί μια τάξη στην Java να κληρονομηθεί από περισσότερες από μία τάξεις;
Απ .: Στην Java, μια τάξη μπορεί να προέρχεται από μία μόνο κλάση και όχι από πολλές κατηγορίες. Η Java δεν υποστηρίζει πολλές κληρονομίες.
Ε66. Μπορεί ένας κατασκευαστής να έχει διαφορετικό όνομα από ένα όνομα κλάσης στην Java;
Απ .: Ο κατασκευαστής στην Java πρέπει να έχει το ίδιο όνομα με το όνομα της κλάσης και αν το όνομα είναι διαφορετικό, δεν λειτουργεί ως κατασκευαστής και ο μεταγλωττιστής το θεωρεί ως μια κανονική μέθοδο.
Ε67. Ποια θα είναι η έξοδος του Round (3.7) και του Ceil (3.7);
Απ .: Ο γύρος (3.7) επιστρέφει 4 και ο Ceil (3.7) επιστρέφει 4.
Ε68: Μπορούμε να χρησιμοποιήσουμε το goto στην Java για να πάμε σε μια συγκεκριμένη γραμμή;
Απ .: Στην Java, δεν υπάρχει λέξη-κλειδί και η java δεν υποστηρίζει αυτήν τη δυνατότητα μετάβασης σε μια συγκεκριμένη γραμμή με ετικέτες.
Ε69. Μπορεί να ξεκινήσει ξανά ένα νεκρό νήμα;
Απ .: Στην Ιάβα, ένα νήμα που βρίσκεται σε νεκρή κατάσταση δεν μπορεί να ξεκινήσει ξανά. Δεν υπάρχει τρόπος επανεκκίνησης ενός νεκρού νήματος.
Ε70. Είναι σωστή η ακόλουθη δήλωση κλάσης;
Απ .:
public abstract final class testClass {// Class methods and variables}
Απ .: Η παραπάνω δήλωση κλάσης είναι λανθασμένη καθώς μια αφηρημένη κλάση δεν μπορεί να δηλωθεί ως Τελική.
Ε71. Απαιτείται JDK σε κάθε υπολογιστή για την εκτέλεση προγράμματος Java;
Απ .: Το JDK είναι ένα κιτ ανάπτυξης Java και απαιτείται μόνο για ανάπτυξη και για την εκτέλεση ενός προγράμματος Java σε ένα μηχάνημα, το JDK δεν απαιτείται. Απαιτείται μόνο JRE.
Ε72. Ποια είναι η διαφορά μεταξύ της σύγκρισης που γίνεται με τη μέθοδο ίσο και του χειριστή ==;
Απ: Στην Java, χρησιμοποιείται η μέθοδος ίσο () για τη σύγκριση των περιεχομένων δύο αντικειμένων συμβολοσειράς και επιστρέφει αληθές εάν τα δύο έχουν την ίδια τιμή ενώ ο χειριστής == συγκρίνει τις αναφορές δύο αντικειμένων συμβολοσειράς
Στο ακόλουθο παράδειγμα, το ίσο () επιστρέφει αληθές καθώς τα δύο αντικείμενα συμβολοσειράς έχουν τις ίδιες τιμές. Ωστόσο, ο χειριστής == επιστρέφει ψευδείς καθώς και τα δύο αντικείμενα συμβολοσειράς αναφέρονται σε διαφορετικά αντικείμενα:
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 trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}
Ε73. Είναι δυνατόν να ορίσετε μια μέθοδο στην κλάση Java αλλά να παρέχετε την εφαρμογή της στον κώδικα μιας άλλης γλώσσας όπως το C;
Απ .: Ναι, μπορούμε να το κάνουμε με τη χρήση εγγενών μεθόδων. Σε περίπτωση ανάπτυξης βασισμένων σε εγγενείς μεθόδους, ορίζουμε δημόσιες στατικές μεθόδους στην τάξη Java χωρίς την εφαρμογή της και στη συνέχεια η υλοποίηση γίνεται σε άλλη γλώσσα όπως το C ξεχωριστά.
Ε74. Πώς ορίζονται οι καταστροφείς στην Java;
Απ .: Στην Java, δεν υπάρχουν καταστροφείς που ορίζονται στην τάξη, καθώς δεν χρειάζεται να το κάνουν. Η Java διαθέτει τον δικό της μηχανισμό συλλογής απορριμμάτων, ο οποίος εκτελεί αυτόματα την εργασία καταστρέφοντας τα αντικείμενα όταν δεν αναφέρονται πλέον.
Ε75. Μπορεί μια μεταβλητή να είναι τοπική και στατική ταυτόχρονα;
Απ .: Καμία μεταβλητή δεν μπορεί να είναι στατική αλλά και τοπική ταυτόχρονα. Ο ορισμός μιας τοπικής μεταβλητής ως στατικής δίνει σφάλμα σύνταξης.
Ε76. Μπορούμε να έχουμε στατικές μεθόδους σε μια διεπαφή;
Απ .: Οι στατικές μέθοδοι δεν μπορούν να παρακαμφθούν σε καμία κλάση, ενώ οποιεσδήποτε μέθοδοι σε μια διεπαφή είναι από προεπιλογή αφηρημένες και υποτίθεται ότι θα εφαρμοστούν στις τάξεις που εφαρμόζουν τη διεπαφή. Επομένως, δεν έχει νόημα να έχουμε στατικές μεθόδους σε μια διεπαφή στην Java.
Ε77. Σε μια τάξη που εφαρμόζει μια διεπαφή, μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής που ορίζεται στη διεπαφή;
Απ .: Όχι, δεν μπορούμε να αλλάξουμε την τιμή οποιασδήποτε μεταβλητής μιας διεπαφής στην κλάση υλοποίησης, καθώς όλες οι μεταβλητές που ορίζονται στη διεπαφή είναι από προεπιλογή δημόσιες, οι στατικές και οι τελικές και οι τελικές μεταβλητές είναι σαν σταθερές που δεν μπορούν να αλλάξουν αργότερα.
Ε78. Είναι σωστό να πούμε ότι λόγω της δυνατότητας συλλογής απορριμμάτων στην Java, ένα πρόγραμμα java δεν εξαντλείται ποτέ από τη μνήμη;
Απ .: Παρόλο που η αυτόματη συλλογή απορριμμάτων παρέχεται από την Java, δεν διασφαλίζει ότι ένα πρόγραμμα Java δεν θα ξεμείνει από τη μνήμη, καθώς υπάρχει η πιθανότητα η δημιουργία αντικειμένων Java να γίνεται με ταχύτερο ρυθμό σε σύγκριση με τη συλλογή απορριμμάτων με αποτέλεσμα πλήρωση όλων των διαθέσιμων πόρων μνήμης.
Έτσι, η συλλογή απορριμμάτων βοηθά στη μείωση των πιθανοτήτων ενός προγράμματος να βγει από τη μνήμη, αλλά δεν το διασφαλίζει.
Ε79. Μπορούμε να έχουμε άλλο τύπο επιστροφής εκτός από άκυρο για την κύρια μέθοδο;
Απ .: Όχι, η κύρια μέθοδος κλάσης Java μπορεί να έχει μόνο άκυρο τύπο επιστροφής για την επιτυχή εκτέλεση του προγράμματος.
Ωστόσο, εάν πρέπει απολύτως να επιστρέψετε μια τιμή στην ολοκλήρωση της κύριας μεθόδου, μπορείτε να χρησιμοποιήσετε το System.exit (int status)
Ε80. Θέλω να φτάσω ξανά και να χρησιμοποιήσω ένα αντικείμενο αφού έχει συλλεχθεί σκουπίδια. Πώς είναι δυνατόν;
Απ .: Μόλις ένα αντικείμενο καταστραφεί από τον συλλέκτη σκουπιδιών, δεν υπάρχει πλέον στο σωρό και δεν μπορεί να προσεγγιστεί ξανά. Δεν υπάρχει τρόπος να το αναφέρετε ξανά.
Ε81. Στον προγραμματισμό νήματος Java, ποια μέθοδος πρέπει να εφαρμοστεί για όλα τα νήματα;
Απ .: Το Run () είναι μια μέθοδος διεπαφής που μπορεί να εφαρμοστεί από όλα τα νήματα.
Ε82. Θέλω να ελέγξω τις συνδέσεις βάσεων δεδομένων στο πρόγραμμά μου και θέλω μόνο ένα νήμα να μπορεί να κάνει σύνδεση βάσης δεδομένων κάθε φορά. Πώς μπορώ να εφαρμόσω αυτήν τη λογική;
Απ .: Αυτό μπορεί να εφαρμοστεί με τη χρήση της έννοιας του συγχρονισμού. Ο κώδικας που σχετίζεται με τη βάση δεδομένων μπορεί να τοποθετηθεί σε μια μέθοδο η οποία είναι συγχρονισμένη λέξη-κλειδί, έτσι ώστε μόνο ένα νήμα να έχει πρόσβαση σε αυτήν τη φορά.
Ε83. Πώς μπορεί να εξαχθεί μια εξαίρεση χειροκίνητα από έναν προγραμματιστή;
Απ .: Για να ρίξετε μια εξαίρεση σε ένα μπλοκ κώδικα με μη αυτόματο τρόπο, χρησιμοποιείται η λέξη-κλειδί ρίψης . Στη συνέχεια, αυτή η εξαίρεση πιάνεται και αντιμετωπίζεται στο μπλοκ.
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;
Απ .: Στην Ιάβα, κάθε αντικείμενο όταν δημιουργείται παίρνει χώρο μνήμης από έναν σωρό. Όταν ένα αντικείμενο καταστρέφεται από έναν συλλέκτη σκουπιδιών, ο χώρος που του διατίθεται από το σωρό εκχωρείται εκ νέου στο σωρό και καθίσταται διαθέσιμος για οποιαδήποτε νέα αντικείμενα.
Ε86. Πώς μπορούμε να βρούμε το πραγματικό μέγεθος ενός αντικειμένου στο σωρό;
Απ .: Στην Ιάβα, δεν υπάρχει τρόπος να μάθετε το ακριβές μέγεθος ενός αντικειμένου στο σωρό.
Ε87. Ποια από τα ακόλουθα μαθήματα θα έχει περισσότερη μνήμη;
Κλάση Α: Τρεις μέθοδοι, τέσσερις μεταβλητές, χωρίς αντικείμενο
Κλάση Β: Πέντε μέθοδοι, τρεις μεταβλητές, χωρίς αντικείμενο
Απ .: Η μνήμη δεν εκχωρείται πριν από τη δημιουργία αντικειμένων. Δεδομένου ότι και για τις δύο κατηγορίες, δεν έχουν δημιουργηθεί αντικείμενα, οπότε δεν έχει εκχωρηθεί μνήμη στο σωρό για οποιαδήποτε κατηγορία.
Ε88. Τι θα συμβεί εάν δεν αντιμετωπιστεί μια εξαίρεση σε ένα πρόγραμμα;
Απ .: Εάν δεν γίνεται χειρισμός μιας εξαίρεσης σε ένα πρόγραμμα με χρήση μπλοκ δοκιμής, το πρόγραμμα ματαιώνεται και καμία δήλωση δεν εκτελείται μετά τη δήλωση που προκάλεσε την εξαίρεση.
Ε89. Έχω ορίσει πολλούς κατασκευαστές σε μια τάξη. Είναι δυνατόν να καλέσετε έναν κατασκευαστή από το σώμα ενός άλλου κατασκευαστή;
Απ .: Εάν μια τάξη έχει πολλούς κατασκευαστές, είναι δυνατό να καλέσετε έναν κατασκευαστή από το σώμα ενός άλλου χρησιμοποιώντας αυτό () .
Ε90. Τι σημαίνει ανώνυμη τάξη;
Απ .: Μια ανώνυμη τάξη είναι μια τάξη που ορίζεται χωρίς κανένα όνομα σε μία γραμμή κώδικα χρησιμοποιώντας νέα λέξη-κλειδί.
Για παράδειγμα, στον παρακάτω κώδικα έχουμε ορίσει μια ανώνυμη κλάση σε μία γραμμή κώδικα:
public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}
Ε91. Υπάρχει τρόπος αύξησης του μεγέθους ενός πίνακα μετά τη δήλωσή του;
Απ .: Οι πίνακες είναι στατικές και αφού καθορίσουμε το μέγεθός της, δεν μπορούμε να την αλλάξουμε. Εάν θέλουμε να χρησιμοποιήσουμε τέτοιες συλλογές όπου ενδέχεται να απαιτήσουμε αλλαγή μεγέθους (όχι αντικειμένων), θα πρέπει να προτιμούμε το διάνυσμα από τον πίνακα.
Ε92. Εάν μια εφαρμογή έχει πολλές κατηγορίες σε αυτήν, είναι εντάξει να υπάρχει μια κύρια μέθοδος σε περισσότερες από μία τάξεις;
Απ .: Εάν υπάρχει κύρια μέθοδος σε περισσότερες από μία κλάσεις σε μια εφαρμογή java, δεν θα προκαλέσει κανένα πρόβλημα καθώς το σημείο εισόδου για οποιαδήποτε εφαρμογή θα είναι μια συγκεκριμένη κλάση και ο κώδικας θα ξεκινά μόνο από την κύρια μέθοδο αυτής της συγκεκριμένης κλάσης.
Ε93. Θέλω να διατηρήσω δεδομένα αντικειμένων για μελλοντική χρήση. Ποια είναι η καλύτερη προσέγγιση για να γίνει αυτό;
Απ .: Ο καλύτερος τρόπος για να διατηρήσετε δεδομένα για μελλοντική χρήση είναι να χρησιμοποιήσετε την έννοια της σειριοποίησης.
Ε94. Τι είναι η Τοπική τάξη στην Java;
Απ .: Στην Java, αν ορίσουμε μια νέα τάξη μέσα σε ένα συγκεκριμένο μπλοκ, ονομάζεται τοπική τάξη. Μια τέτοια τάξη έχει τοπικό εύρος και δεν μπορεί να χρησιμοποιηθεί έξω από το μπλοκ όπου ορίζεται.
Ε95. Το String και το StringBuffer αντιπροσωπεύουν και τα δύο αντικείμενα String. Μπορούμε να συγκρίνουμε το String και το StringBuffer στην Java;
Απ .: Παρόλο που το String και το StringBuffer αντιπροσωπεύουν και τα δύο αντικείμενα String, δεν μπορούμε να τα συγκρίνουμε μεταξύ τους και αν προσπαθήσουμε να τα συγκρίνουμε, έχουμε ένα σφάλμα.
Ε96. Ποιο API παρέχεται από την Java για λειτουργίες σε σύνολο αντικειμένων;
Απ .: Η Java παρέχει ένα API συλλογής που παρέχει πολλές χρήσιμες μεθόδους που μπορούν να εφαρμοστούν σε ένα σύνολο αντικειμένων. Μερικές από τις σημαντικές τάξεις που παρέχονται από το Collection API περιλαμβάνουν τα ArrayList, HashMap, TreeSet και TreeMap.
Ε97. Μπορούμε να ρίξουμε οποιοδήποτε άλλο τύπο σε Boolean Type με τύπο casting;
Απ .: Όχι, δεν μπορούμε ούτε να κάνουμε άλλον πρωτόγονο τύπο σε τύπο δεδομένων Boolean ούτε να κάνουμε μετάδοση τύπου δεδομένων Boolean σε οποιονδήποτε άλλο πρωτόγονο τύπο δεδομένων.
Ε98. Μπορούμε να χρησιμοποιήσουμε διαφορετικούς τύπους επιστροφής για μεθόδους κατά την παράκαμψη;
Απ .: Η βασική απαίτηση της μεθόδου παράκαμψης στην Java είναι ότι η μέθοδος παράκαμψης πρέπει να έχει το ίδιο όνομα και παραμέτρους. Αλλά μια μέθοδος μπορεί να παρακαμφθεί με διαφορετικό τύπο επιστροφής, αρκεί ο νέος τύπος επιστροφής να επεκτείνει το αρχικό.
Για παράδειγμα, η μέθοδος επιστρέφει έναν τύπο αναφοράς.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
Ε99. Ποια είναι η βασική κατηγορία όλων των κατηγοριών εξαίρεσης;
Απ .: Στην Java, Java.lang.Throwable είναι η σούπερ κλάση όλων των κατηγοριών εξαίρεσης και όλες οι κλάσεις εξαίρεσης προέρχονται από αυτήν την βασική κατηγορία.
Ε100. Ποια είναι η σειρά κλήσης των κατασκευαστών στην κληρονομιά;
Απ .: Σε περίπτωση κληρονομιάς, όταν δημιουργείται ένα νέο αντικείμενο μιας παραγόμενης τάξης, πρώτα καλείται ο κατασκευαστής της υπερ-τάξης και στη συνέχεια καλείται ο κατασκευαστής της παραγόμενης τάξης.
Προετοιμασία για τη συνέντευξη εργασίας !!! Πηγαίνετε στο Java Tutorial για να είστε καλύτερα προετοιμασμένοι.
Αυτή η λεπτομερής ερώτηση συνέντευξης Java pdf θα σας βοηθήσει να ξεκαθαρίσετε τις αμφιβολίες σχετικά με τις ερωτήσεις συνέντευξης Java και θα σας βοηθήσει επίσης να σπάσετε τη συνέντευξη.