Le vrai problème de l'entrevue Android d'Alibaba pour les années civiles 2019 - 2021, le tutoriel d'apprentissage Android

Mb611e5fb8b5d79 2021-09-15 08:59:32
le vrai probl entrevue android


L'intervieweur: Parlez du mécanisme de collecte des ordures

- moi.: …Peut passer par fort、Une combinaison de comptage de référence faible résout le problème de référence circulaire du comptage de référence,En fait, Android C'est ainsi que le pointeur intelligent de…

Pointeur intelligent

Le pointeur intelligent est partout Android Très utilisé en ingénierie,In binder Le code source pertinent peut être vu sp、wp Référence au type:

 sp<IBinder> result = new BpBinder(handle);
wp<IBinder> result = new BpBinder(handle);

  • 1.
  • 2.
  • 3.

sp C'est - à - dire: strong pointer Forte référence du pointeur;wp - Oui. weak pointer Faible référence du pointeur.

In Java Nous n'avons pas à nous soucier de la destruction d'objets et de la libération de mémoire,GC Le mécanisme identifie automatiquement les objets indésirables recyclés,Et Pointeur intelligent C'est native Couche un petit GC Réalisation.

Les pointeurs intelligents identifient les objets inutiles en comptant les références,Les objets qui utilisent des pointeurs intelligents doivent hériter de RefBase,RefBase Le nombre de références fortes et faibles pour cet objet est maintenu dans.

Pointeur fort sp C'est surchargé. “=” Opérateur,Compte de référence fort lors de la référence à d'autres objets +1,In sp Nombre de références fortes dans le destructeur -1,Lorsque le nombre de références fortes est réduit à 0 Détruire l'objet référencé à,Cela permet la libération automatique des objets.

Nombre de références faibles lorsque le pointeur faible fait référence à d'autres objets +1,In wp Nombre de références faibles dans le destructeur -1,Lorsque le nombre de références fortes est 0 Heure,Que le nombre de références faibles soit ou non 0 Détruire les objets référencés.

Comment résoudre le problème de référence circulaire

Compter uniquement par référence forte,Il y aura des problèmes avec les références circulaires,Faire en sorte que l'objet ne soit jamais libéré,Les références faibles sont spécifiquement conçues pour résoudre les problèmes de références circulaires:

Si A C'est une citation forte. B,C'est... B Références A Des références faibles sont nécessaires,Pour déterminer s'il s'agit d'un objet inutile, seule la question de savoir si le nombre de références fortes est 0,Peu importe le nombre de références faibles

Cela résout le problème que les références circulaires ne libèrent pas les objets,Mais cela peut causer des problèmes de pointeurs sauvages:Quand B Pour accéder par un pointeur faible A Heure,A Il a peut - être été détruit.,C'est ça. A Ce petit pointeur devient un pointeur sauvage..Dans ce cas,,C'est tout. A Il n'existe plus.,D'autres actions, telles que recréer, sont nécessaires

Règles de personnalisation des pointeurs intelligents

Le pointeur intelligent n'est pas fixe “Lorsque le nombre de références fortes est 0 Heure,Que le nombre de références faibles soit ou non 0 Détruire les objets référencés” ,Au lieu de cela, vous pouvez personnaliser les règles.RefBase Offre extendObjectLifetime() Méthodes,Règles qui peuvent être utilisées pour définir les compteurs de référence,Différentes règles déterminent également le moment de la suppression de l'objet cible.,Comprend les trois règles suivantes::

  • OBJECT_LIFETIME_STRONG:Seule une forte valeur de compteur dans cet espace mémoire objet est 0 Les objets ne seront détruits que lorsque

  • OBJECT_LIFETIME_WEAK:Seules les valeurs des compteurs forts et faibles dans cet espace mémoire objet sont 0 Les objets ne seront détruits que lorsque

  • OBJECT_LIFETIME_MASK:Que les deux compteurs soient ou non 0,Ne pas détruire les objets,C'est - à - dire identique au pointeur général,Ou vous devez libérer l'objet manuellement

Enfin

En fait...AndroidTant de points de connaissance sont développés,C'est une question d'interview ou quelque chose comme ça.Donc l'interview n'a pas d'autre astuce,Seulement si vous êtes bien préparé à ces points de connaissance.so,Quand vous sortez pour un entretien d'embauche, regardez d'abord à quel stade vous avez passé en revue.

La figure ci - dessous montre les années que j'ai accumulées dans mes études supérieuresTencent、Les gros titres、Ali!、Meituan、Byte JUMP, etc.2019-2021Questions d'entrevue à haute fréquence,Les blogueurs ont également regroupé ces points techniques en vidéos etPDF(Il a fallu plus d'énergie que prévu),Contient le contexte de la connaissance + Beaucoup de détails

2019-2021Année civile AliAndroidQuestions d'entrevue,AndroidCours d'apprentissage_Développement mobile

 CodeChinaProjet Open Source:《AndroidRésumé des notes d'étude+Vidéo d'architecture mobile+Le vrai problème de l'interview de Dachang+Code source du projet》

Difficile à organiser,J'espère que vous regarderez attentivement,Merci beaucoup.!J'espère que tout le monde pourra obtenir son propre travail.

版权声明
本文为[Mb611e5fb8b5d79]所创,转载请带上原文链接,感谢
https://qdmana.com/2021/09/20210915085930695c.html

  1. Contrôle de l'arbre en vue converti en style de table
  2. CSS3 animation flash Effect
  3. Discuter des propriétés de la file d'attente pour l'événement bloc
  4. Node around USModules
  5. Webpack - - Premier aperçu (concept de base)
  6. Mise en œuvre du cadre de base mvvm par JS natif
  7. Calculer les propriétés par rapport aux auditeurs, etc.
  8. Configuration standard dockerfile et docker-composer.yml
  9. Collection de questions d'entrevue HTML
  10. Conteneur, définir la largeur et la hauteur ne répond pas?
  11. Introduction et syntaxe des objets (mise à jour à long terme)
  12. Bubble Mart invests in cat galaxy, which is a vertical e-commerce platform around the quadratic element
  13. Exigences et dépendances dans package-lock.json
  14. Mouvement tridimensionnel de la terre, du ciel et de la lune basé sur three.js
  15. Compréhension et analyse de l'objet de base JS
  16. Simple use of status data management (context, mobx, Redux)
  17. Simulated drumming
  18. Array method
  19. Performance optimization issue 03 - HTTP request optimization
  20. Vue learning -- watch listener
  21. Learn more about nexttick in Vue
  22. Talk about some moves used by vue3.0 in the project - External skill chapter (I)
  23. JavaScript genrator generator
  24. La dernière réponse à l'entrevue de développement Android, l'hiver froid de l'industrie
  25. Maserati's motorcycle has less than 10 in the world. It is definitely a work of art
  26. 2021 partage des questions du dernier examen écrit d'entrevue Android, pas d'accord
  27. Programmation asynchrone Java scirp, développement frontal de base
  28. 2021 dernier examen écrit d'entrevue Android, écrit trop bien
  29. Quels aspects doivent être pris en considération dans le tableau principal du distributeur libre - service?
  30. He inherited his mother's hundreds of millions of property for his boyfriend to squander. Unexpectedly, he was ruthlessly abandoned when he had 100 yuan left
  31. The fuel cost is half less than that of fuel vehicles at the same level. Is it really cheap to use song Pro DM?
  32. Le dernier résumé de l'expérience d'entrevue d'embauche de l'école Android de l'usine est nécessaire pour l'usine
  33. Le dernier dictionnaire avancé de programmeurs d'usine, l'expérience d'entrevue d'embauche de l'Agence de développement Android
  34. La dernière collection d'entrevues Android Golden nine Silver ten
  35. L'expérience d'entrevue de l'Ingénieur d'algorithme de saut d'octets, 2 mois d'entrevue Tencent, station B, Netease et ainsi de suite sur 11 entreprises résumé!
  36. La dernière collection d'entrevues d'Android Golden nine Silver ten recommande un projet github
  37. Yuan Li's recent situation revealed that he was obsessed with public welfare, dressed simply and fearless, grew fat, and married an 11-year-old husband
  38. Initial experience of template tool plop of [front end Engineering]
  39. Dernière question d'entrevue avancée et réponse d'Alibaba Android, Alibaba P8 vous apprendra en personne
  40. Partage des dernières questions d'entrevue pour Android haute fréquence, Introduction aux compétences d'entrevue pour le développement d'Android
  41. Partager les dernières questions d'entrevue Android haute fréquence avec quelques conseils
  42. About JavaScript modules
  43. Iteratable object and class arrays
  44. Function realization of Vue elementui exporting excel form
  45. Use canvas to realize a small screenshot function
  46. Object oriented programming (2)
  47. Several common value transfer methods between Vue components
  48. Démarrer avec le serveur de base zéro: Hello World
  49. J'a I construit un escalier pour aller sur la lune, combien de façons puis - je poursuivre la sœur Chang'e?
  50. CSS implémente la fonction d'expansion et d'arrimage du Texte multiligne
  51. Varlet CLI | vue3 Component Library Quick Prototyping Tool
  52. Belle vue sur les trois rivières Xiapu
  53. La partie Web qui déploie SharePoint ajoute son propre module de fonctionnalité
  54. React Native (mise à jour à long terme)
  55. La conception et le codage de l'arbre binaire requis pour chaque entrevue d'embauche de la société Java millet;
  56. 10 jours pour obtenir l'offre d'emploi Android d'Alibaba, entrevue Android
  57. A remporté avec succès Byte, Tencent, Pulse offer, 7 ans Java une expérience d'entrevue de baise,
  58. 10大前端常用算法,web应用与开发
  59. Nginx - minimum configuration! You deserve it
  60. Les questions d'entrevue couramment utilisées pour le cadre Java sont - elles prometteuses pour le développement Java?