Questions d'entretien avec un stagiaire Java (avec réponses)
1. Que sont les frameworks de conteneurs Java ?
Il existe deux interfaces nommées Collection et Set dans le framework de conteneurs Java
2. Liste, carte, ensemble, tableau, quelles sont les différences entre eux Classes d'implémentation : LinkedList, ArrayList, Vector.LinkedList : l'implémentation sous-jacente est basée sur une liste chaînée .La mémoire de la liste chaînée est dispersée.Chaque élément stocke sa propre adresse mémoire et stocke également l'adresse de l'élément suivant
La différence entre ArrayList et Vector : ArrayList n'est pas thread-safe et a une grande efficacité ; est basé sur la sécurité des threads et a une faible efficacité.
1) L'interface Set a principalement deux classes d'implémentation : HashSet (la couche inférieure est implémentée par HashMap) et LinkedHashSet
2) L'interface Map implémente principalement des classes : HashMap, HashTable et LinkedHashMap
HashMap n'est pas thread-safe, efficace et prend en charge NULL ; HashTable est thread-safe, inefficace et ne prend pas en charge NULL
Array : Array, qui peut stocker des objets et des types de données de base, avec une longueur fixe.
Liste : les éléments sont ordonnés et répétables.
Ensemble : les éléments ne sont pas ordonnés, non répétés et n'ont pas d'index.
Map : une collection à double colonne, utilisée pour stocker les paires clé-valeur. Les valeurs clés sont uniques et ne peuvent pas être répétées.
3. Quelle est la différence entre collection et collectionsa.javautil.Collection est une interface de collection. Il fournit des méthodes d'interface communes pour les opérations de base sur les objets de collection. L'interface Collection possède de nombreuses implémentations spécifiques dans la bibliothèque de classes Java. L'importance de l'interface Collection est de fournir une méthode de fonctionnement unifiée maximale pour diverses collections spécifiques. b.java.util.Collections est une classe wrapper. Il contient diverses méthodes polymorphes statiques liées aux opérations de collecte. Cette classe ne peut pas être instanciée et ressemble à une classe utilitaire qui sert le framework Collection de Java.
4. Quelles sont les différences entre string, stringbuilder et stringbufferLes chaînes utilisées dans le programme peuvent être divisées en deux catégories : l'une est qu'elles ne le seront pas ? être réutilisé après sa création. Une variable de chaîne qui peut être modifiée et changée ; l'autre est une variable de chaîne qui permet une modification après la création. Pour l'ancien type de variable chaîne, puisque le programme doit souvent effectuer des opérations telles que la comparaison et la recherche, il est généralement placé dans un objet avec un certain nom. Pour les opérations ci-dessus sur les objets, le. Les variables de chaîne stockées dans les programmes Java sont des variables de classe String ;
Pour cette dernière variable de chaîne, car il est souvent nécessaire d'ajouter, d'insérer, de modifier, etc. dans le fonctionnement du programme, ce type de variables de chaîne est donc généralement stocké dans les objets de la classe StringBuilder.
Variable de chaîne String,
Variable de chaîne StringBuffer (thread-safe),
Variable de chaîne StringBuilder (non-thread-safe)
5. Quelle est la différence entre == et égal ?Lorsque vous comparez deux caractères dans le programme, utilisez l'opérateur relationnel "==", et lorsque vous comparez deux chaînes, vous devez utiliser l'égalité () méthode .
6. La différence entre & et &&&& est un opérateur concis et est un opérateur non concis. La différence entre les opérateurs concis (&&, ||) et les opérateurs non concis (&, |) est que les opérations non concises doivent calculer les expressions gauche et droite avant de prendre la valeur du résultat, tandis que les expressions concises ne peuvent calculer que l'expression gauche sans ; calculer l'expression de droite, c'est-à-dire pour l'expression &&, tant que l'expression de gauche est fausse, l'expression de droite n'est pas calculée et l'expression entière est fausse pour ||, tant que le ; l'expression de gauche est vraie, si l'expression de droite n'est pas évaluée, l'expression entière est vraie.
7. La différence entre les programmes, les processus et les threads1) Un programme est un fichier contenant des instructions et des données, est stocké sur un disque ou un autre périphérique de stockage de données, ce qui signifie que le programme est un code statique. 2) Un processus est un processus d'exécution d'un programme et constitue l'unité de base permettant au système d'exécuter des programmes, le processus est donc dynamique. L'exécution d'un programme sur le système est le processus allant de la création, de l'exploitation jusqu'à la mort d'un programme. En termes simples, un processus est un programme en cours d'exécution. Il exécute les instructions les unes après les autres dans l'ordinateur. En même temps, chaque processus occupe également certaines ressources système, telles que le temps CPU, l'espace mémoire, les fichiers et les emplacements des périphériques d'entrée et de sortie. Droits d'utilisation, etc.
3) Thread : En fait, il est similaire à un processus. C'est aussi un programme en cours d'exécution, mais un thread est une unité d'exécution plus petite qu'un processus. Un processus peut générer plusieurs threads pendant l'exécution, formant plusieurs chemins d'exécution. Cependant, contrairement aux processus, plusieurs threads du même type partagent le même espace mémoire et un ensemble de ressources système. Par conséquent, lorsque le système génère un thread ou passe d'un thread à l'autre, la charge est bien moindre que celle d'un processus. , et pour cette raison, les threads sont également appelés processus légers.
8. Quels sont les états d'un thread ?Il existe cinq états : nouvel état, état prêt, état en cours d'exécution, état de blocage et état de mort
9. La différence entre l'exclusion mutuelle et la synchronisation des threadsL'exclusion mutuelle signifie que deux threads ou plus ne peuvent pas s'exécuter en même temps, tandis que la synchronisation signifie que l'exécution de deux threads ou plus a une contrainte séquentielle.
10. Quelle est la différence entre la synchronisation des threads et les données partagées ?
Le partage fait référence au partage de données de mémoire entre les threads, car les threads possèdent conjointement les données dans le puissance de traitement de l'espace mémoire, ce qui entraînera une incohérence des données en raison du traitement simultané des données par plusieurs threads. Par conséquent, la synchronisation est proposée pour résoudre ce problème, c'est-à-dire que la synchronisation est basée sur le partage, et elle est proposée car le partage de plusieurs threads le fera. provoquer une incohérence des données.
La synchronisation signifie que les données de traitement du thread ne peuvent pas traiter les données que d'autres threads n'ont pas encore traitées, mais peuvent traiter d'autres données.
11. La différence entre la synchronisation des threads et l'asynchronisme
La synchronisation des threads réside dans le fait que plusieurs threads accèdent à la même ressource en même temps et attendent la fin de l'accès à la ressource, ce qui est une perte de temps et une faible efficacité ; synchronisation des threads : lors de l'accès aux ressources, accédez à d'autres ressources en attendant d'implémenter un mécanisme multi-thread.
12. Quelles sont les méthodes d'arrondi en Java ?
La classe Math propose trois méthodes liées à l'arrondi : ceil, floor, round, ces méthodes La signification des Les noms anglais qui agissent sur eux se correspondent. Par exemple :
La signification anglaise de ceil est le plafond. Cette méthode signifie arrondir. Le résultat de Math.ceil (11.3) est 12, et le résultat. de Math.ceil (- Le résultat de 11.6) est -11 ;
floor signifie floor en anglais, et cette méthode signifie arrondir à l'inférieur. Le résultat de Math.floor(11.6) est 11, et le résultat de. Math.floor(-11.4) vaut - 12;
La chose la plus difficile à maîtriser est la méthode round. Cela signifie "arrondi". L'algorithme est Math.floor(x+0.5), ce qui signifie ajouter 0,5. au nombre d'origine, puis en l'arrondissant. Par conséquent, Math Le résultat de .round(11.5) est 12 et le résultat de Math.round(-11.5) est -11.
Math.round() est conforme à cette règle : additionnez tous les nombres positifs après la virgule qui sont supérieurs à 5, ce qui est égal à 5 plus les nombres positifs, n'ajoutez rien de moins que 5.
13.Que signifie MVC ?
M - couche modèle modèle, généralement les classes que nous écrivons sont placées dans la couche modèle
V - View est la couche de vue, en général de la page jsp
C - couche de contrôle de contrôle, y compris l'action, le service, le dao et la logique métier liée au traitement
14. Quelle est la différence entre classes et objets ?
Une classe est une description d'un certain type de chose, une définition abstraite et conceptuelle et un objet est un individu concret réel de ce type de chose, c'est pourquoi on l'appelle aussi ; un exemple.
15.Utilisation de Final ?
a Déclarer une classe comme classe finale, c'est-à-dire une classe non héritée, signifie qu'elle ne peut pas être héritée par. d'autres cours.
b.Modificateur final. Spécifie que la valeur de cette variable ne peut pas être modifiée.
c.Modificateur final. Spécifie que cette méthode ne peut pas être surchargée.
Utilisation de l'abstrait
a. La déclaration d'une classe comme classe abstraite n'a pas de méthode d'implémentation et nécessite une sous-classe pour fournir l'implémentation de la méthode, donc des instances de ceci. la classe ne peut pas être créée.
b. Modificateur abstrait. Spécifiez que la méthode déclare uniquement l'en-tête de la méthode sans le corps de la méthode. La méthode abstraite doit être implémentée dans la sous-classe.
Utilisation du modificateur Statique
a. Spécifie que la variable est partagée par tous les objets, c'est-à-dire que toutes les instances peuvent utiliser la variable.
b.Modificateur final. Spécifie les méthodes qui peuvent être appelées sans instancier un objet.
16. La différence entre les variables membres et les variables locales
Les variables définies dans une classe sont des variables membres, tandis que les variables définies dans une méthode sont des variables locales.
Différence :
a. D'un point de vue grammatical, les variables membres appartiennent à la classe, tandis que les variables locales sont des variables définies dans la méthode ou les paramètres de la méthode. Les variables membres peuvent être modifiées par des modificateurs publics, privés, statiques et autres, tandis que les variables locales ne peuvent pas être modifiées par des modificateurs de contrôle d'accès et que les variables membres et les variables locales peuvent être modifiées par final.
b. À en juger par la façon dont les variables sont stockées en mémoire, les variables membres font partie de l'objet et l'objet existe dans la mémoire du tas, tandis que les variables locales existent dans la mémoire de la pile.
c. Du point de vue du temps de survie des variables en mémoire, les variables membres font partie de l'objet, elles existent avec la création de l'objet, tandis que les variables locales sont générées avec l'appel de la méthode. en conséquence, disparaissent automatiquement.
d. Si une variable membre n'a pas de valeur initiale, elle se verra automatiquement attribuer la valeur par défaut du type (il y a une exception, les variables membres modifiées par final mais non modifiées par static doivent être affectées explicitement ); Les variables locales ne sont pas affectées automatiquement et doivent être explicitement affectées avant de pouvoir être utilisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
