Maison >Java >JavaQuestions d'entretien >Questions d'entretien avec un stagiaire Java (avec réponses)

Questions d'entretien avec un stagiaire Java (avec réponses)

(*-*)浩
(*-*)浩original
2019-11-28 13:39:064278parcourir

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 collections

a.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 stringbuffer

Les 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 threads

1) 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 threads

L'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!

Déclaration:
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