τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το κάτω στρώμα του ArrayList υλοποιείται με βάση πίνακες. Αυτό το κάνει επεκτείνοντας ή μειώνοντας δυναμικά το μέγεθος του πίνακα. Όταν η χωρητικότητα δεν είναι αρκετή, θα δημιουργήσει μια μεγαλύτερη συστοιχία, στη συνέχεια θα αντιγράψει τα αρχικά δεδομένα και, τέλος, θα προσθέσει τα νέα δεδομένα σε αυτήν.
Ο μηχανισμός επέκτασης ArrayList είναι: όταν προστίθεται το πρώτο στοιχείο, η χωρητικότητα του ArrayList είναι 10 κάθε φορά που προστίθεται ένα νέο στοιχείο, εάν η χωρητικότητα ξεπεραστεί, η αρχική χωρητικότητα θα διπλασιαστεί, δηλαδή η αρχική χωρητικότητα * 2. , εάν η αρχική χωρητικότητα είναι 0, τότε η νέα χωρητικότητα είναι 1.
Η εσωτερική υλοποίηση του ArrayList βασίζεται σε πίνακες Όταν πολλά νήματα έχουν πρόσβαση στην ίδια λίστα ArrayList, για παράδειγμα, όταν ένα νήμα διαβάζει τα δεδομένα του ArrayList και ένα άλλο νήμα προσθέτει/διαγράφει δεδομένα. το ArrayList, ενδέχεται να υπάρχει Αλλαγή των δεδομένων στο ArrayList, έτσι ώστε το νήμα που διαβάζει τα δεδομένα ArrayList να διαβάζει λανθασμένα δεδομένα, προκαλώντας σφάλμα προγράμματος.
Η στοίβα είναι ένας ειδικός γραμμικός πίνακας Το χαρακτηριστικό του είναι ότι τα δεδομένα μπορούν να εισαχθούν και να διαγραφούν μόνο στο ένα άκρο, με βάση την αρχή πρώτος-σε, τελευταίος-έξοδος. Είναι μια δομή αποθήκευσης που μπορεί να χρησιμοποιηθεί για την αποθήκευση τιμών παραμέτρων συναρτήσεων, τοπικών μεταβλητών κ.λπ.
Ο σωρός είναι μια ειδική δομή δέντρου που χαρακτηρίζεται από το γεγονός ότι οι τιμές όλων των κόμβων είναι μεγαλύτερες ή ίσες με τις τιμές των θυγατρικών τους κόμβων και η τιμή του ριζικού κόμβου είναι η μεγαλύτερη ή η μικρότερη. Το heap είναι μια δυναμική δομή αποθήκευσης που μπορεί να χρησιμοποιηθεί για την αποθήκευση μεγάλων ποσοτήτων δεδομένων, όπως ταξινόμηση, αναζήτηση κ.λπ.
Η ουσία μιας κορουτίνας είναι μια ελαφριά κλωστή.
Συγχρονισμός κατάστασης Αναφέρεται στη μετάδοση της κατάστασης (όπως θέση, ταχύτητα, επιτάχυνση κ.λπ.) κάθε μηχανής στο σύστημα πολλαπλών μηχανών σε άλλες μηχανές σε κάθε κύκλο ελέγχου, έτσι ώστε κάθε μηχανή να παραμένει συγχρονισμένη. Ο συγχρονισμός κατάστασης μπορεί να επιτύχει απόδοση σε πραγματικό χρόνο του συνεργατικού ελέγχου πολλών μηχανών, αλλά δεδομένου ότι πρέπει να μεταδοθεί μεγάλος όγκος δεδομένων σε κάθε κύκλο ελέγχου, η ακρίβειά του μπορεί να είναι σχετικά χαμηλή.
Συγχρονισμός καρέ Σημαίνει ότι σε κάθε κύκλο ελέγχου, οι εντολές ελέγχου κάθε μηχανής στο σύστημα πολλαπλών μηχανών μεταδίδονται σε άλλες μηχανές, έτσι ώστε κάθε μηχανή να παραμένει συγχρονισμένη. Ο συγχρονισμός πλαισίου μπορεί να επιτύχει την ακρίβεια του συνεργατικού ελέγχου πολλών μηχανών, αλλά επειδή μόνο ένας μικρός αριθμός εντολών ελέγχου μεταδίδεται σε κάθε κύκλο ελέγχου, η απόδοσή του σε πραγματικό χρόνο μπορεί να είναι σχετικά χαμηλή.
Το κάτω επίπεδο του HashMap υλοποιείται χρησιμοποιώντας μια λίστα συνδεδεμένη με πίνακα (κόκκινο-μαύρο δέντρο). κώδικα και χρησιμοποιεί μια συνδεδεμένη λίστα (κόκκινο-μαύρο δέντρο) για την αποθήκευση των διενέξεων. HashMap Στην Java 8, όταν το μήκος της συνδεδεμένης λίστας υπερβαίνει το όριο (η προεπιλογή είναι 8), θα μετατραπεί σε κόκκινο-μαύρο δέντρο για να βελτιωθεί η αποτελεσματικότητα του ερωτήματος.Όταν η χωρητικότητα δεν είναι αρκετή, θα επεκταθεί αυτόματα Ο προεπιλεγμένος συντελεστής φορτίου είναι 0,75 και η μέθοδος επέκτασης είναι 2 φορές μεγαλύτερη από τη χωρητικότητα.
Ποια είναι τα σενάρια χρήσης στοίβων και ουρών;
Λειτουργίες προς τα εμπρός και προς τα πίσω του προγράμματος περιήγησης: Οι ιστοσελίδες που επισκέπτεται το πρόγραμμα περιήγησης μπορούν να πραγματοποιήσουν τις λειτουργίες προς τα εμπρός και προς τα πίσω μέσω της δομής δεδομένων στοίβας.
Το πρόβλημα αλληλεπίδρασης TCP αναφέρεται στο γεγονός ότι το πρωτόκολλο TCP δεν κατακερματίζει τα δεδομένα κατά τη μετάδοση δεδομένων, με αποτέλεσμα η ποσότητα των δεδομένων που λαμβάνονται από το άκρο λήψης να είναι μεγαλύτερη από την ποσότητα των δεδομένων που αποστέλλονται από το άκρο αποστολής.
Πρώτα απ 'όλα, τα datagrams UDP μπορούν να βοηθήσουν στην υλοποίηση της διαδικασίας τριπλής χειραψίας στο πρωτόκολλο TCP/IP. Στην πρώτη χειραψία, ένας πελάτης στέλνει ένα datagram UDP που περιέχει ένα αίτημα χειραψίας. Όταν ο διακομιστής λάβει αυτό το μήνυμα, θα απαντήσει με ένα μήνυμα επιβεβαίωσης, το οποίο υποδεικνύει ότι ο διακομιστής έχει λάβει το αίτημα χειραψίας του πελάτη και είναι έτοιμος να παρέχει υπηρεσίες. Στη δεύτερη χειραψία, ο πελάτης θα στείλει ξανά ένα datagram UDP Αυτή τη φορά το μήνυμα περιέχει ορισμένες χρήσιμες πληροφορίες, όπως τη διεύθυνση IP του πελάτη, τον αριθμό θύρας, κ.λπ., έτσι ώστε ο διακομιστής να μπορεί να αναγνωρίσει τον πελάτη. Στην τρίτη χειραψία, ο διακομιστής θα στείλει ένα datagram UDP που υποδεικνύει ότι η σύνδεση έχει δημιουργηθεί και ο πελάτης μπορεί να ξεκινήσει την αποστολή δεδομένων.
Δεύτερον, τα datagrams UDP μπορούν επίσης να βοηθήσουν στην υλοποίηση της διαδικασίας μετάδοσης δεδομένων στο πρωτόκολλο TCP/IP. Όταν ο πελάτης χρειάζεται να στείλει δεδομένα στον διακομιστή, τα δεδομένα θα ενσωματωθούν σε ένα datagram UDP και θα σταλούν στον διακομιστή αφού ο διακομιστής λάβει το datagram UDP, θα αναλύσει τα δεδομένα που περιέχονται στο μήνυμα και θα εκτελέσει σχετική επεξεργασία.
Τέλος, τα datagrams UDP μπορούν επίσης να βοηθήσουν στην υλοποίηση της διαδικασίας τερματισμού σύνδεσης στο πρωτόκολλο TCP/IP.Όταν ο πελάτης δεν χρειάζεται πλέον να επικοινωνεί με τον διακομιστή, μπορεί να στείλει ένα datagram UDP για να υποδείξει ότι ο πελάτης τερματίζει τη σύνδεση Αφού ο διακομιστής λάβει αυτό το μήνυμα, θα απελευθερώσει τους αντίστοιχους πόρους, ολοκληρώνοντας έτσι ολόκληρο το πρωτόκολλο TCP/IP. διαδικασία σύνδεσης
Οι κορουτίνες επιτρέπουν στα προγράμματα να εναλλάσσονται μεταξύ διαφορετικών εργασιών, βελτιώνοντας έτσι την αποτελεσματικότητα του προγράμματος και μειώνοντας τον χρόνο εκτέλεσης του προγράμματος. Οι κορουτίνες επιτρέπουν σε ένα πρόγραμμα να εναλλάσσεται μεταξύ πολλών εργασιών αντί να περιμένει να ολοκληρωθεί μια εργασία πριν ξεκινήσει μια άλλη. Μπορεί επίσης να μοιράζεται μεταβλητές μεταξύ διαφορετικών νημάτων, μειώνοντας έτσι τον χρόνο εκτέλεσης του προγράμματος. Για εφαρμογές πολλαπλών εργασιών, η χρήση κορουτινών μπορεί να βελτιώσει σημαντικά την απόδοση, με αποτέλεσμα μεγαλύτερες ταχύτητες λειτουργίας.
Οι πίνακες είναι πιο γρήγοροι, επειδή η διεύθυνση κάθε στοιχείου του πίνακα είναι συνεχής και σταθερή και η διεύθυνση του επόμενου στοιχείου μπορεί να ληφθεί γρήγορα, ενώ η διεύθυνση κάθε στοιχείου της συνδεδεμένης λίστας είναι ασυνεχής και πρέπει να διασχίσετε τον δείκτη για να λάβετε τη διεύθυνση του επόμενου στοιχείου, ώστε ο πίνακας Traversing να είναι ταχύτερος.
Μια εικονική συνάρτηση είναι μια ειδική συνάρτηση που διαφέρει από τις συνηθισμένες συναρτήσεις στο ότι ορίζεται αυτόματα από τον μεταγλωττιστή και μπορεί να κληθεί τη στιγμή της μεταγλώττισης. Το χαρακτηριστικό μιας εικονικής συνάρτησης είναι ότι η υλοποίησή της καθορίζεται κατά το χρόνο εκτέλεσης, όχι κατά το χρόνο μεταγλώττισης.
Ο κύριος σκοπός των εικονικών συναρτήσεων είναι η επίτευξη πολυμορφισμού Μια αφηρημένη κλάση μπορεί να ορίσει πολλαπλές εικονικές συναρτήσεις και στη συνέχεια οι υποκλάσεις της μπορούν να υλοποιήσουν αυτές τις συναρτήσεις.
Δεν χρειάζεται να είναι εικονική συνάρτηση, αλλά γενικά συνιστάται η χρήση εικονικής συνάρτησης, επειδή μια εικονική συνάρτηση μπορεί να παρακαμφθεί από μια παράγωγη κλάση, έτσι ώστε ο καταστροφέας της παραγόμενης κλάσης να μπορεί να εκτελεστεί σωστά δεν χρησιμοποιείται, ο καταστροφέας της παραγόμενης κλάσης δεν θα κληθεί, κάτι που μπορεί να προκαλέσει προβλήματα όπως διαρροές μνήμης.
Ο αγωγός απόδοσης είναι μια σειρά βημάτων που χρησιμοποιούνται για τη μετατροπή δεδομένων σκηνής παιχνιδιού από πληροφορίες εισόδου σε εικόνες που εμφανίζονται στην οθόνη.
Η διαδικασία του αγωγού απόδοσης χωρίζεται σε τρία κύρια στάδια: στάδιο προετοιμασίας, στάδιο γεωμετρίας και στάδιο φωτισμού.
Στη φάση προετοιμασίας, η μηχανή παιχνιδιού φορτώνει τα μοντέλα και τις υφές της σκηνής του παιχνιδιού στη μονάδα επεξεργασίας γραφικών (GPU) και οργανώνει τα δεδομένα για χρήση σε επόμενες φάσεις.
Κατά το στάδιο της γεωμετρίας, χρησιμοποιούνται μετασχηματισμοί μήτρας για να τοποθετηθεί το μοντέλο σε τρισδιάστατο χώρο και να μετατραπεί το μοντέλο σε μια μορφή που μπορεί να υποστηριχθεί από pixel στην οθόνη.
Στο στάδιο του φωτισμού, η πηγή φωτός και το μοντέλο φωτισμού χρησιμοποιούνται για τον υπολογισμό της τιμής χρώματος κάθε εικονοστοιχείου και τελικά η εικόνα που προκύπτει εμφανίζεται στην οθόνη.
Οι προϋποθέσεις για τον αλγόριθμο greedy να αποκτήσει τη βέλτιστη λύση είναι η "βέλτιστη υποδομή" και η "ιδιότητα greedy selection":