Maison  >  Article  >  Questions d'entretien d'ingénieur PHP senior Xiaomi 2022 (examen simulé)

Questions d'entretien d'ingénieur PHP senior Xiaomi 2022 (examen simulé)

青灯夜游
青灯夜游avant
2019-01-11 09:38:0324358parcourir

En savoir plus sur les documents d'entretien de l'entreprise avant l'entretien, qui seront très utiles pour les entretiens ultérieurs. Aujourd'hui, je vais vous présenter les questions d'entretien d'ingénieur PHP senior Xiaomi 2022 (document d'examen simulé), qui ont une certaine valeur de référence. Je les partage avec vous maintenant, dans l'espoir d'aider tout le monde !

Questions d'entretien d'ingénieur PHP senior Xiaomi 2022 (examen simulé)

Recommandations associées : "Résumé des questions d'entretien PHP 2022 (Collection) "

1. Quelle fonction peut être utilisée pour convertir les erreurs en gestion des exceptions ?

A : set_error_handler
B : error_reporting
C : error2exception
D : catch

Réponse correcte : Une

Analyse de la réponse : set_error_handler() peut spécifier une fonction de rappel Lorsqu'une erreur se produit, elle sera automatiquement gérée via la fonction de rappel spécifiée. Lancez simplement une nouvelle exception dans la fonction de rappel.

2. Laquelle des descriptions de fonctions shell suivantes est correcte ?

A : La fonction shell peut être appelée d'abord, puis définie
B : les fonctions Shell doivent être définies à l'aide du mot-clé function
C : Les variables de la fonction shell peuvent être déclarées comme variables locales
D : les fonctions Shell ne peuvent renvoyer des valeurs que via return, 1 est le succès, 0 est un échec

Réponse correcte : C

Analyse de la réponse : La fonction Shell doit être définie avant d'appeler lors de la déclaration, il n'est pas nécessaire d'utiliser des mots-clés ; local peut être utilisé Définir des variables locales dans la fonction ; la valeur de retour de la fonction shell, 0 est un succès, non-0 est une erreur, les autres options sont correctes

3. Les déclarations suivantes concernant la technologie de recherche en texte intégral sont incorrectes :

A : Solr est une nouvelle génération de composant de recherche en texte intégral. Il est beaucoup plus efficace que Lucene en recherche, et il prend également en charge l'accès HTTP. Il est également très pratique pour PHP d'appeler Solr.
B : Dans MySQL, la récupération de texte intégral peut être réalisée en établissant un index FULLTEXT sur un champ. Actuellement, les tables MyISAM et InnoDB prennent en charge les index FULLTEXT.
C : Sphinx est un moteur de recherche en texte intégral basé sur SQL qui peut être combiné avec MySQL pour la recherche en texte intégral. Il peut fournir des fonctions de recherche plus professionnelles que la base de données elle-même.
D : L'analyseur de segmentation de mots binaires CJKAnalyzer fourni avec Lucene est très rapide en matière de segmentation de mots et peut répondre aux besoins de récupération générale de texte intégral.

Réponse correcte : A

Analyse des réponses : Solr est une nouvelle génération de récupération de texte intégral composant Basé sur Lucene, donc dire qu'il est plus rapide que Lucene est un non-sens :)

4. Qu'est-ce qui ne va pas avec le mode singleton ?

A : Le but du mode singleton est de garantir qu'une seule instance d'une classe peut exister dans l'environnement global
B : Le mode à intérêt unique nécessite généralement que le le constructeur doit être défini sur privé
C : définissez simplement le constructeur sur privé pour garantir qu'il n'y a qu'une seule instance dans le monde
D : La fonction de connexion à la base de données est généralement implémentée en mode singleton

Bonne réponse : C

Analyse des réponses : Définir le constructeur sur privé garantit uniquement que de nouvelles instances ne peuvent pas être créées via nouveau, mais il peut toujours être cloné et désérialisé. Créez plusieurs instances à l'aide de méthodes telles que la transformation.

5. Quelle est la mauvaise expression du moteur régulier ?

Les moteurs réguliers peuvent être principalement divisés en deux catégories : l'une est DFA et l'autre est NFA.
B De manière générale, le moteur NFA recherche plus rapidement. Cependant, DFA est orienté expression et plus facile à manipuler, c'est pourquoi la plupart des programmeurs préfèrent les moteurs DFA !
C L'expression NFA domine, le texte DFA domine.
D Vous pouvez indiquer s'il prend en charge l'ignorance des quantificateurs de priorité et la capture de groupe pour déterminer le type de moteur : NFA est pris en charge, DFA n'est pas pris en charge

Réponse correcte : B

Analyse de la réponse : L'énoncé correct devrait être : De manière générale, le moteur DFA effectue une recherche plus rapide. Cependant, NFA est orienté expression et plus facile à manipuler, c'est pourquoi la plupart des programmeurs préfèrent les moteurs NFA !

6. Laquelle des options suivantes peut être mise en correspondance par l'expression régulière dans la case ?

/.123d/

A **123

B ****1234
C. 🎜>D.123

Réponse correcte :

B

Analyse de la réponse :

Le point clé de cette question est de comprendre cette expression régulière La signification de la formule - de gauche à droite, il y a d'abord zéro ou plusieurs caractères arbitraires (.), suivis d'un astérisque (), puis de 123 et enfin d'un nombre. La réponse est donc B.

7. Laquelle des affirmations suivantes concernant les bases de données est fausse ?

A : Pour plus d'efficacité, la base de données peut avoir plusieurs bibliothèques de lecture
B : La base de données peut utiliser maître-esclave pour la veille chaude
C : La base de données ne peut pas fournir une architecture multi-maître et multi-esclave
D : La base de données maître-esclave passe par la synchronisation des journaux

Réponse correcte : C

Analyse de la réponse : Le La base de données peut fournir une architecture multi-maître et multi-esclave.

8. Lequel des éléments suivants n'est pas un moyen de corriger les vulnérabilités XSS ?

A : Filtrer les paramètres avec htmlspecialchas
B : Utiliser le filtrage de liste blanche pour les paramètres
C : Ne pas autoriser l'affichage du contenu d'entrée dans le navigateur
D : Désactiver Afficher le contenu saisi par l'utilisateur dans la balise js

Réponse correcte : A

Analyse de la réponse : Ce filtrage de classe peut résoudre le type de support angulaire de

A.ISAPIB.CGIC.FastCGI

D.RESTFUL API



Réponse correcte :

D

Analyse des réponses : A~C sont les modèles les plus couramment utilisés, et D est une méthode d'organisation de l'interface.

10. Pour parcourir un fichier volumineux ligne par ligne, laquelle des méthodes suivantes est la plus performante ?

A : Écrivez une classe qui implémente l'interface IteratorAggregate et utilisez le parcours foreach à travers cette classe. B : utilisez file_get_contents pour charger le contenu du fichier en mémoire en une seule fois, puis parcourez ligne par ligne. C : Appelez la traversée de l'outil shell via la fonction exec

D : Utilisez une bibliothèque de classes écrite par d'autres



Réponse correcte :

A

Analyse des réponses : Utilisez IteratorAggregate pour ouvrir le fichier et parcourez-le ligne par ligne en déplaçant le pointeur, quelle que soit la taille du fichier. L'utilisation de file_get_contents pour traiter des fichiers volumineux peut facilement provoquer un débordement de mémoire PHP ; l'appel à exec créera des processus supplémentaires et affectera les performances ; la qualité des bibliothèques de classes écrites par d'autres peut ne pas être élevée.

11. Laquelle des options suivantes n'est pas un principe que les modèles de conception devraient suivre ?

A : La composition vaut mieux que l'héritageB : Programmation pour les interfacesC : Réduisez le couplage autant que possible

D : Essayez d'utiliser une syntaxe haute performance



Réponse correcte :

D

Analyse de la réponse : Le modèle de conception se concentre sur la maintenabilité et la réutilisabilité du code, l'option D n'est pas les points clés sur lesquels se concentrer dans les modèles de conception.
12. Laquelle des expressions suivantes concernant le retour en arrière est fausse ?

A AB.LMN correspondant à ABCDEFLMNGHIJKLMN B AB.?lmn dans ABCDEFLMNGHIJKLMN dans ABCDEFLMNGHIJKLMN correspondant à ABCDEFLMN C abcdefflmn C AB ?? lmnghijklmn D.*lmn correspond à abdeflmn


dans abcdeflmnghijklmn Bonne réponse :

D

Analyse des réponses : D est une correspondance gourmande , donc le résultat correspondant devrait être abcdeflmnghijklmn

13. Si la structure syntaxique try catch final est utilisée dans la fonction, où le retour doit-il être écrit ?

A : enfin en B : essayer en C : attraper en D : n'importe où


Bonne réponse :

A

Analyse de la réponse : Le final continuera à s'exécuter après le retour dans try S'il y a également un retour dans final, la valeur de retour finale sera. la valeur du retour en fin de compte.

14. Les déclarations suivantes concernant NOSQL sont incorrectes :

A : Redis prend en charge les chaînes, les hachages, les listes, les ensembles et les structures de données telles que ensembles ordonnés, actuellement Redis ne prend pas en charge les transactions. B : MongoDB prend en charge le théorème AP dans CAP et MySQL prend en charge CA dans CAP, qui prennent tous en charge l'existence impossible. C : MongoDB peut insérer directement des données sans créer au préalable une structure de collection. Actuellement, MongoDB ne prend pas en charge les transactions. D : Memcache prend en charge à la fois le protocole TCP et le protocole UDP. Nous pouvons stocker la session PHP dans Memcache.


Réponse correcte :

A

Analyse de la réponse : Redis prend en charge les transactions.

15. Quelle affirmation concernant le mécanisme de verrouillage Innodb est fausse ?

A : Innodb fournit deux mécanismes de verrouillage : le verrouillage de la table et le verrouillage des lignesB : Le verrouillage de la table d'Innodb sera déclenché lorsque la table change C : Sous Innodb Lors de la mise à jour, des verrous exclusifs seront automatiquement ajoutés aux lignes impliquées et une copie miroir sera créée. À ce moment, lors de la sélection, les données de la copie miroir seront interrogéesD : La lecture ne sera pas affectée dans l'état de verrouillage de ligne Innodb. , mais l'écriture sera affectée (données impliquées)


Réponse correcte :

A

16. pour créer un per- Exécuter la commande crontab toutes les 3 minutes de 01h00 à 04h00 le mercredi ?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh
B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh
C:/ 3 1-4 3 /bin/bash /home/sijiaomao/ok.sh
D:/3 1-4 * /bin/bash /home/sijiaomao/ok.sh

Correct Réponse : C

Analyse de la réponse : A : Exécuter toutes les minutes à 1h04 tous les mercredis B : Tous les mercredis à 1h04 Exécuter une fois tous les 3 minutes C : Répondre aux exigences D : Exécuter une fois toutes les 3 minutes à 1h04 tous les jours

17. Avant la division, de nombreuses listes et pages de détails dans le système requises Les données peuvent être complétées via la jointure SQL. Après le fractionnement, la base de données peut être distribuée sur différentes instances et différents hôtes, et la jointure deviendra très problématique. Laquelle des méthodes suivantes ne constitue pas une solution efficace à ce problème ?

Une table globale, certaines tables dont tous les modules du système peuvent dépendre sont enregistrées dans chaque bibliothèque.
Le champ B est redondant. Alors que le « Identifiant du vendeur » est enregistré dans le « Tableau de commande », le champ « Nom » du vendeur est également redondant, de sorte que lors de l'interrogation des détails de la commande, il n'est pas nécessaire d'interroger « Utilisateur vendeur). Tableau".
La réplication maître-esclave C sépare la lecture et l'écriture de la base de données.
D Synchronisation des données, la table tbl_a de la base de données A est régulièrement associée au tbl_b de la base de données B, et la table spécifiée peut être synchronisée entre maître et esclave à intervalles réguliers.

Bonne réponse : C

Analyse de la réponse : La réplication maître-esclave sépare la lecture et l'écriture de la base de données. Il ne peut qu'étendre la simultanéité de lecture, mais ne peut pas atténuer le problème des jointures entre bases de données.

18. Concernant le modèle d'E/S du réseau, lequel des énoncés suivants est correct ?

A.Select est plus rapide qu'Epoll
B.nginx utilise le modèle select
C.apache prend en charge la commutation entre select et epoll
D epoll peut prendre en charge davantage. concurrence

Réponse correcte : D

Analyse des réponses : Un epoll est plus rapide. B nginx utilise le modèle epoll. C apache ne prend en charge que select

19. Lorsque PHP est exécuté, il y a le processus d'exécution suivant : Scanning (Lexing) - Compilation - Exécution - Analyse, dont les significations sont :

A : Convertissez le code PHP en fragments de langage (jetons), convertissez les jetons en expressions simples et significatives, compilez les expressions en Opocdes et exécutez les Opcodes de manière séquentielle
B : Convertissez le code PHP en Convertir en fragments de langage (Jetons), convertissez les jetons en expressions simples et significatives, exécutez les Opcodes dans l'ordre, compilez les expressions en Opocdes
C : Convertissez le code PHP en fragments de langage (Jetons), convertissez les expressions Compilez en Opocdes, exécutez les Opcodes séquentiellement et convertissez les jetons en expressions simples et significatives
D : Convertissez le code PHP en fragments de langage (Tokens), compilez des expressions en Opocdes et convertissez les Tokens en expressions simples et significatives, exécution séquentielle des Opcodes

Corriger. réponse : C

Analyse de la réponse : La bonne réponse est C , l'ordre correct est : Numérisation (Lexing), Analyse, Compilation, Exécution

Recommandations associées :

1, 2018 – 2022 Questions d'entretien JavaScript front-end (Collection)

2. Interview frontale Jianghu

Ce qui précède est l'intégralité du contenu de cet article, j'espère que cela pourra aider tout le monde à apprendre l'aide. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer