Maison titres Si vous apprenez bien ces points de connaissances PHP, vous pouvez également entrer dans Baidu !

Si vous apprenez bien ces points de connaissances PHP, vous pouvez également entrer dans Baidu !

Feb 13, 2017 pm 03:42 PM
面试

Les entretiens Baidu, en particulier le premier entretien, ne sont globalement pas difficiles. Les deux premières séries d'entretiens techniques nécessitent du code manuscrit et les principales catégories impliquées incluent les fondements du langage, les modèles de conception, les fondements des algorithmes et les bases de données. La chose la plus importante est la fondation, la fondation, la fondation. Il couvre un large éventail de sujets, mais ce sont autant de choses qu'un programmeur devrait et devrait savoir. Les réponses sont à titre indicatif seulement. (L'article est tiré d'Internet)

Maintenant, nous avons compilé 10 questions comme suit :

1 Quel est le problème de débordement d'entier en PHP ?

2. pour comprendre la POO

3. Votre compréhension des modèles de conception et de MVC

4 La différence entre le protocole HTTP 1.0 et 1.1, et parler brièvement du protocole HTTP

5. Parlez brièvement du mécanisme de réécriture dans Apache et du mécanisme de routage URI dans le framework PHP

6, des principes d'utilisation des index composites

7. InnoDB

8. Parlez brièvement de l'algorithme de tri rapide

9 Utilisation de base de awk, sed, sort (examiné avec des exemples)

Utilisation et compréhension de Memcached. et redis

= ========================================= ======

【1】Quel est le problème de débordement d'entier en PHP ?

La longueur des mots des nombres entiers de PHP est liée à la plateforme. le type entier le plus grand est supérieur à deux milliards, en fait, il est 2 à la puissance 31, et le minimum est -2 à la puissance 31. PHP ne prend pas en charge les entiers non signés. Si un nombre dépasse la plage des nombres entiers, il sera automatiquement interprété comme un flottant. Si le résultat de l'opération effectuée dépasse la plage d'entiers, float sera également renvoyé. (Qu'en est-il du débordement d'entiers en Java et C)

[2] Comment comprendre la POO

La POO, la programmation orientée objet, comprend trois aspects, l'héritage et l'encapsulation, le polymorphisme, la chose la plus fondamentale est une abstraction.

L'héritage, c'est-à-dire l'extensibilité, étend les fonctions d'une classe parent existante via des sous-classes.

L'encapsulation nécessite que l'extérieur ne puisse pas accéder à volonté aux données internes de l'objet, c'est-à-dire que l'implémentation spécifique dans la classe est encapsulée. Les utilisateurs n'ont pas besoin de connaître l'implémentation interne spécifique, tant qu'ils la connaissent. ce qu'il fait et comment l'utiliser.

Le polymorphisme est l'abstraction et l'interface d'une classe, ainsi que la capacité de la même classe à gérer plusieurs types d'objets.

En réalité, tout ce que nous voyons peut être considéré comme un objet, puis grâce à une abstraction plus poussée en classes, les classes peuvent évoluer en de nombreux objets similaires. Pour donner un exemple simple, résumez une maison que nous voyons dans une classe ROOM, comprenant les portes, fenêtres, tables et autres objets de base, ainsi que des fonctions telles que l'entrée et la sortie des personnes. Nous héritons désormais de la classe ROOM en tant que Classroom, qui comprend des portes, de grandes fenêtres, des tables et des chaises, ainsi qu'un noir et blanc et un podium où les enseignants et les camarades de classe peuvent assister aux cours. Nous instancions maintenant cette classe Classroom en tant qu'objet Classroom_621, comprenant deux portes, quatre grandes fenêtres, 30 ensembles de tables et de chaises, et certains étudiants suivent des cours de Mao Zedong.

【3】Votre compréhension des modèles de conception et de MVC

Modèle-Vue-Contrôleur, modèle, vue, contrôleur Quand vous pensez à MVC, vous penserez à JAVA, car JAVA est un. complètement orienté Langage objet, MVC est apparu pour la première fois dans Smalltalk. Son objectif est de séparer la vue du modèle de données, afin que différents programmes puissent avoir des affichages différents.

Le modèle fait référence aux fonctions, algorithmes et modèles de données écrits par les programmeurs, ce que nous appelons la couche de logique métier du système.

Vue, c'est-à-dire interface graphique frontale. Affiché aux utilisateurs.

Contrôleur, principalement responsable du traitement des demandes, du transfert et du chargement des vues.

Les modèles de conception, pour parler franchement, sont le résumé et la classification de l'expérience de conception de code. Les modèles de conception ont été utilisés pour la première fois dans l'industrie de la construction. Les modèles de conception de programmation sont décrits dans le premier GoF, comprenant 23 modèles de conception, principalement. utilisé pour la programmation procédurale orientée objet. Suivez plusieurs principes de conception : principe d'ouverture et de fermeture, principe de responsabilité unique, principe de substitution de Liskov, injection de dépendances, séparation d'interface, principe Dimit, préférence à la composition plutôt qu'à l'héritage, etc. Il comprend trois catégories : le modèle créationnel, le modèle structurel et le modèle comportemental.

【4】La différence entre le protocole HTTP 1.0 et 1.1, et parlons brièvement du protocole HTTP

HTTP, Hypertext Transfer Protocol. Il définit les règles de communication entre le navigateur et le serveur. Le protocole HTTP est basé sur le protocole TCP de TCP/IP. Le World Wide Web utilise désormais la version HTTP1.1. Ses fonctionnalités incluent le mode C/S, des requêtes simples (GET/POST/HEAD) et la flexibilité (peut transmettre n'importe quoi). type de données HTML, XML, JSON, personnalisé, etc.), pas de connexion (une seule requête est traitée par connexion, et la connexion est déconnectée à partir du moment où la requête est émise jusqu'à la réception du statut 200), apatride.

L'enquête sur le protocole HTTP comprend principalement des points de connaissance tels que le format du message de réponse, le format du message de demande, le code d'état, etc.

Généralement, un protocole HTTP comprend trois parties : la ligne de départ, l'en-tête et le corps.

[Format du message de réponse]

HTTP/1.1 200 0K

Connexion : fermer

Date : jeu. 13 octobre 2005 03:17:33 GMT

Serveur : Apache/2.0.54 (Unix)

Dernier—Nodifié : lundi, 22 juin 1998 09;23;24 GMT

Contenu—Longueur : 682l

Contenu—Type : text/html

Ce message de réponse est divisé en 3 parties : une ligne d'état initiale (ligne d'état), un en-tête et une dépendance contenant l'objet demandé lui-même. La ligne d'état comporte trois champs : le champ de version du protocole, le champ de code d'état et le champ d'expression de motif.

[Format du message de demande]

GET /somedir/page.html HTTP/1.1

Hôte :www.chinaitlab.com

Connexion : fermer

User-agent:Mozilla/4.0

Accept-langue:zh-cn

(caractères de retour chariot et de saut de ligne supplémentaires)

Le message de demande Une ligne est appelée ligne de requête, et les lignes suivantes sont appelées en-têtes. La ligne de requête comporte 3 champs : le champ méthode, le champ URL et le champ version HTTP.

[Code de statut] Voir http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html

1xx Message

2xx Succès

Redirection 3xx

Erreur de demande 4xx

Erreur de serveur 5xx

[Codes d'état communs]

200 OK. La demande a abouti et les en-têtes de réponse ou le corps de données attendus par la demande seront renvoyés avec cette réponse.

300 choix multiples. Il existe plusieurs options pour demander des ressources, comme demander du texte en français, en anglais, etc.

301 déplacé définitivement. Indique que la page Web demandée a été définitivement déplacée vers un nouvel emplacement

302 Trouvé. Indique l'état dans lequel la page revient lors d'un saut temporaire.

304 Non modifié. Les ressources mises en cache du client sont les plus récentes, ce qui oblige le client à utiliser le cache.

400 mauvaise demande. mauvaise demande.

403 Interdit. La demande a été rejetée par le serveur.

404 introuvable. Cela signifie que le serveur ne trouve pas la page Web demandée. Une page Web qui n'existe pas sur le serveur renvoie souvent un code d'état HTTP.

500 Erreur de serveur interne.

Service 503 indisponible. Le serveur n'est actuellement pas en mesure de répondre aux demandes, mais le service sera rétabli en temps voulu.

504 Délai d'expiration de la passerelle. Semblable au statut 408, mais la réponse provient d'une passerelle ou d'un proxy qui a expiré en attendant une réponse d'un autre serveur.

Version HTTP 505 non prise en charge. La version du protocole HTTP n'est pas prise en charge.

[5] Parlons brièvement du mécanisme de réécriture dans Apache et du mécanisme de routage URI dans le framework PHP

1) La réécriture d'URL consiste en fait à transférer l'URL demandée par l'utilisateur via le navigateur en arrière-plan, Apache fait pointer la requête vers le chemin réel de la ressource selon les règles de réécriture préconfigurées. Pour le dire franchement, c'est une astuce bâclée, remodeler le chemin réel et permettre aux utilisateurs d'y accéder. l'utilité de le faire.

1.Référencement. Rendre les URL dynamiques statiques pour satisfaire l'appétit des moteurs de recherche.

2. Contrôle d'accès. Par exemple, après avoir réécrit les règles, il est difficile pour le client de déterminer le type de programme en arrière-plan.

3. Redirection d'URL. Lorsqu'un site Web modifie son nom de domaine ou ajoute une URL d'alias, il peut facilement pointer vers l'URL accessible via des règles.

mod_rewrite utilise des expressions régulières pour modifier dynamiquement l'URL des requêtes entrantes. Il peut mapper des URL aux chemins du système de fichiers ou une URL à une autre. Il utilise un nombre illimité de règles pour manipuler les URL, et chaque règle peut inclure un nombre illimité de conditions supplémentaires. Vous pouvez le détecter de plusieurs manières, telles que les variables de serveur, les variables d'environnement, les en-têtes HTTP, les horodatages, etc.

mod_rewrite exploite l'intégralité du chemin de l'URL, y compris la partie informations sur le chemin. Une règle de réécriture peut être définie dans http.conf ou .htaccess. Le chemin généré par une règle de réécriture peut inclure une chaîne de requête, ou un traitement de sous-programme interne, une redirection de requêtes externes ou une pénétration de proxys internes.

2) Le mécanisme de routage URI dans le framework PHP est similaire à la réécriture Apache, incluant généralement des caractères génériques et des règles régulières. Permet aux utilisateurs de rediriger (remapper) les gestionnaires d'URI. Définir vos propres règles de routage.

[6] Le mécanisme d'indexation de MySQL, principes d'utilisation des index composites

(Le livre MySQL d'une manière simple explique plus en détail l'utilisation des index)

Généralement, les livres sont utilisés. La table des matières du livre introduit le mécanisme d'indexation, notamment le fait que certains livres auront des annexes de recherche rapide spéciales, qui sont très similaires à l'index d'une base de données.

Les index MySQL comprennent 4 catégories : index de clé primaire (clé primaire), index unique (unique), index régulier (index) et index de texte intégral (fullindex).

Afficher l'index de table_name ; - Afficher l'index dans la table

Afficher le statut comme 'Handler_read%' - Afficher l'utilisation de l'index

Index composite, suivez généralement le Principe du préfixe le plus à gauche, tel que les trois colonnes a b c de table_a créent un index composite

créer un index ind_table_a sur table_a(a,b,c);

Ensuite, seuls a, ou a, b sont utilisés dans la condition , ou dans des cas tels que a, b, c, l'index composite nouvellement créé sera utilisé.

【7】Les types de tables MySQL et la différence entre MyISAM et InnoDB

Les types de tables MySQL courants (c'est-à-dire les moteurs de stockage)

afficher les moteurs pour afficher les configurations de types de tables prises en charge. Les plus courants incluent : MyISAM/Innodb/Memory/Merge/NDB

Parmi eux, MyISAM et Innodb sont les deux types de tables les plus couramment utilisés, chacun avec ses propres avantages. Nous pouvons choisir le type de table qui nous convient en fonction. à nos besoins.

[MyISAM]

1) Chaque stockage de base de données comprend 3 fichiers : .frm (définition de table), MYD (fichier de données), MYI (fichier d'index)

2) Les fichiers de données ou les fichiers d'index peuvent pointer vers plusieurs disques

3) Le moteur par défaut de Linux, win par défaut est InnoDB

4) Pour les types non transactionnels, évitez la surcharge supplémentaire des types transactionnels

5) Convient aux tables de sélection et d'insertion intensives

6) Le mécanisme de planification de verrouillage par défaut de MyISAM est la priorité d'écriture, qui peut être définie via LOW_PRIORITY_UPDATES

7) Type MyISAM les fichiers de données peuvent être COPIES dans différents systèmes d'exploitation est très important et sera plus pratique lors du déploiement.

[Innodb]

1) Pour les applications transactionnelles

2) Convient aux opérations intensives de mise à jour et de suppression. Lors de l'exécution de select count(*) from table, InnoDB doit analyser la table entière pour calculer le nombre de lignes, mais MyISAM n'a besoin que de lire simplement le nombre de lignes enregistrées. Notez que lorsque l'instruction count(*) contient une condition Where, les opérations des deux tables sont les mêmes. Lorsque DELETE FROM table, InnoDB ne recréera pas la table, mais la supprimera ligne par ligne.

3) Introduction des verrous au niveau des lignes et des contraintes de clé étrangère

4) InnoDB ne prend pas en charge les index de type FULLTEXT

[8] Expliquez brièvement l'algorithme de tri rapide

Idée de base : divisez la séquence à trier en deux parties en une seule passe de tri, dont une partie contient des enregistrements plus petits que l'autre, puis continuez à trier rapidement les deux parties séparément pour obtenir l'ordre.

Implémentation de l'algorithme : il y a deux pointeurs low et high, les valeurs initiales sont low=1, high=n et la valeur de base est la clé (généralement la première est sélectionnée), puis commencez par la position haute et avancez, trouvez le premier enregistrement plus petit que la clé et échangez-le avec la clé, puis recherchez en arrière à partir de la position basse, trouvez le premier enregistrement plus grand que la clé et échangez-le avec la valeur de base, répétez jusqu'à ce que bas = haut. .

Dans le premier résultat du tri, la valeur d'enregistrement avant la clé est inférieure à la valeur d'enregistrement après la clé.

11 25 9 3 16 2 //Sélectionnez 11 comme clé

2 25 9 3 16 11

2 11 9 3 16 25

2 3 9 11 16 25

【9】Utilisation de base de awk, sed, sort (examiné avec des exemples)

[Exemple] : Il existe le test de fichier suivant, veuillez compter le nombre d'occurrences de chaque URL, utilisez un shell pour y parvenir.

 a www.baidu.com 20h00

 b www.qq.com 19h30

 c www.baidu.com 14h00

d www.baidu.com 23h00

e www.qq.com 20h30

f www.360.com 20h30

test de chat| -F' ' '{print $2}' |sort | uniq -c | sort -rn

【10】L'utilisation et la compréhension de Memcached et redis

Memcached et redis sont tous deux identiques Le système de stockage en mémoire de key-Value stocke les résultats de recherche via des tables de hachage pour obtenir un mécanisme de mise en cache puissant. Les sites à fort trafic tels que Weibo et Taobao de Sina doivent utiliser ces éléments.

Ce qui suit est une introduction extraite de l'encyclopédie. La pratique et l’utilisation spécifiques seront présentées en détail ultérieurement.

Memcache est un système de mise en cache d'objets à mémoire distribuée hautes performances. En conservant une énorme table de hachage unifiée dans la mémoire, il peut être utilisé pour stocker des données dans différents formats, notamment des images, des vidéos, des fichiers et des bases de données. résultats de recherche, etc. En termes simples, les données sont appelées dans la mémoire puis lues depuis la mémoire, améliorant ainsi considérablement la vitesse de lecture.

Redis est un système de stockage clé-valeur. Semblable à Memcached, il prend en charge relativement plus de types de valeurs stockées, notamment string (string), list (liste chaînée), set (set) et zset (ensemble ordonné).

Hors sujet :
L'ensemble du processus d'entretien a été très agréable et j'ai senti que les intervieweurs étaient assez décontractés. Pas aussi arrogant que d'autres l'ont dit. Les entretiens de Baidu sont ouverts et des personnes à proximité discutent des problèmes et des plans tout au long du processus d'entretien.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Parlons de la façon de choisir la meilleure image Docker Node.js ? Parlons de la façon de choisir la meilleure image Docker Node.js ? Dec 13, 2022 pm 08:00 PM

Le choix d'une image Docker pour Node peut sembler trivial, mais la taille et les vulnérabilités potentielles de l'image peuvent avoir un impact significatif sur votre processus CI/CD et votre sécurité. Alors, comment choisir la meilleure image Docker Node.js ?

Comment résoudre les problèmes cross-domaines ? Une brève analyse des solutions courantes Comment résoudre les problèmes cross-domaines ? Une brève analyse des solutions courantes Apr 25, 2023 pm 07:57 PM

Le cross-domaine est un scénario souvent rencontré en développement, et c'est également une question souvent abordée lors des entretiens. La maîtrise des solutions interdomaines communes et des principes qui les sous-tendent peut non seulement améliorer notre efficacité de développement, mais également mieux performer lors des entretiens.

Questions d'entretien Java JPA sélectionnées : Testez votre maîtrise du framework de persistance Questions d'entretien Java JPA sélectionnées : Testez votre maîtrise du framework de persistance Feb 19, 2024 pm 09:12 PM

Qu’est-ce que JPA ? En quoi est-ce différent de JDBC ? JPA (JavaPersistence API) est une interface standard pour le mappage objet-relationnel (ORM), qui permet aux développeurs Java d'utiliser des objets Java familiers pour faire fonctionner des bases de données sans écrire de requêtes SQL directement sur la base de données. JDBC (JavaDatabaseConnectivity) est l'API standard de Java pour la connexion aux bases de données. Elle oblige les développeurs à utiliser des instructions SQL pour faire fonctionner la base de données. JPA encapsule JDBC, fournit une API plus pratique et de niveau supérieur pour le mappage objet-relationnel et simplifie les opérations d'accès aux données. Dans JPA, qu’est-ce qu’une entité ? entité

Un article pour comprendre le modèle singleton en JavaScript Un article pour comprendre le modèle singleton en JavaScript Apr 25, 2023 pm 07:53 PM

Le modèle JS singleton est un modèle de conception couramment utilisé qui garantit qu'une classe n'a qu'une seule instance. Ce mode est principalement utilisé pour gérer les variables globales afin d'éviter les conflits de noms et les chargements répétés. Il peut également réduire l'utilisation de la mémoire et améliorer la maintenabilité et l'évolutivité du code.

Collection de questions d'entretien sur le cadre Golang Collection de questions d'entretien sur le cadre Golang Jun 02, 2024 pm 09:37 PM

Le framework Go est un ensemble de composants qui étendent les bibliothèques intégrées de Go, fournissant des fonctionnalités prédéfinies (telles que le développement Web et les opérations de base de données). Les frameworks Go populaires incluent Gin (développement Web), GORM (opérations de base de données) et RESTful (gestion des API). Le middleware est un modèle d'intercepteur dans la chaîne de traitement des requêtes HTTP et est utilisé pour ajouter des fonctionnalités telles que l'authentification ou la journalisation des requêtes sans modifier le gestionnaire. La gestion des sessions maintient l'état de la session en stockant les données utilisateur. Vous pouvez utiliser gorilla/sessions pour gérer les sessions.

Comment JavaScript détermine-t-il le type de données ? 8 façons de partager Comment JavaScript détermine-t-il le type de données ? 8 façons de partager Feb 16, 2023 pm 02:48 PM

Comment JavaScript détermine-t-il le type de données ? Cet article partagera avec vous 8 façons d'utiliser JS pour déterminer le type de données, ce qui peut faciliter efficacement le travail et les entretiens. L'intervieweur a légèrement souri après l'avoir lu.

Parlons du module url et du module querystring dans Node Parlons du module url et du module querystring dans Node Feb 23, 2023 pm 07:39 PM

Le module url et le module querystring sont deux modules de traitement d'URL très importants. Il est souvent utilisé lors du développement de serveurs de nœuds.

Plus de 20 questions d'entretien Vue incontournables (avec analyse des réponses) Plus de 20 questions d'entretien Vue incontournables (avec analyse des réponses) Apr 06, 2021 am 09:41 AM

Cet article a compilé plus de 20 questions d'entretien Vue à partager avec vous, ainsi qu'une analyse des réponses. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.