Maison Java JavaQuestions d'entretien Questions d'entretien Java de base courantes

Questions d'entretien Java de base courantes

Dec 14, 2019 pm 03:06 PM
java

Questions d'entretien Java de base courantes

Quelle est la différence entre JDK et JRE ?

JDK : L'abréviation de Java Development Kit, kit d'outils de développement Java, fournit un environnement de développement Java et un environnement d'exécution.

JRE : L'abréviation de Java Runtime Environment, Java Runtime Environment, fournit l'environnement requis pour le fonctionnement de Java. (Étude recommandée : Questions d'entretien courantes sur Java)

Plus précisément, JDK inclut en fait JRE, et inclut également le compilateur javac qui compile le code source Java, et comprend également de nombreux débogages de programmes Java et Outils d'analyse. Pour faire simple : si vous devez exécuter des programmes Java, il vous suffit d'installer JRE. Si vous devez écrire des programmes Java, vous devez installer JDK. Quelle est la différence entre

== et égal ?

Les effets de == sont différents pour les types de base et les types de référence, comme suit :

Types de base : ce qui est comparé est de savoir si les valeurs sont les mêmes

Type de référence : ce qui est comparé est de savoir si les références sont identiques ;

quals est essentiellement ==, mais String et Integer remplacent la méthode égale et la transforment en une comparaison de valeurs.

== Pour les types de base, il s'agit d'une comparaison de valeurs, pour les types référence, il s'agit d'une comparaison de référence ; et égal est une comparaison de référence par défaut, mais de nombreuses classes remplacent la méthode égale, comme String, Integer. etc. le transforme en une comparaison de valeurs, donc dans des circonstances normales, égal compare si les valeurs sont égales.

Si le hashCode() des deux objets est le même, alors equals() doit également être vrai, n'est-ce pas ?

Non, le hashCode() des deux objets est le même, et equals() peut ne pas être vrai.

String str1 = "通话";
String str2 = "重地";
System.out.println(String.format("str1:%d | str2:%d",  str1.hashCode(),str2.hashCode()));
System.out.println(str1.equals(str2));
Copier après la connexion

Résultat de l'exécution :

str1:1179395 | str2:1179395
false
Copier après la connexion

Interprétation du code : Évidemment, le hashCode() de "call" et "powerful place" sont les mêmes, mais equals() est faux , Parce que dans une table de hachage, égal hashCode() signifie que les valeurs de hachage de deux paires clé-valeur sont égales. Cependant, des valeurs de hachage égales ne signifient pas nécessairement que les paires clé-valeur sont égales.

Quel est le rôle de final en java ?

La classe finale modifiée est appelée la classe finale, et cette classe ne peut pas être héritée.

Les méthodes finales modifiées ne peuvent pas être remplacées.

Les variables finales modifiées sont appelées constantes. Les constantes doivent être initialisées. Après l'initialisation, la valeur ne peut pas être modifiée.

À quoi est égal Math.round(-1.5) en Java ?

est égal à -1.

String est-il un type de données de base ?

String n'est pas un type de base. Il existe 8 types de base : byte, boolean, char, short, int, float, long, double et String est un objet.

Quelles sont les classes pour les chaînes d'exploitation en Java ? Quelle est la différence entre eux ?

Les classes qui opèrent sur les chaînes incluent : String, StringBuffer et StringBuilder.

La différence entre String et StringBuffer et StringBuilder est que String déclare un objet immuable. Chaque opération générera un nouvel objet String puis pointera le pointeur vers le nouvel objet String, tandis que StringBuffer et StringBuilder peuvent être utilisés dans le objet original. L'opération est effectuée sur la base de , il est donc préférable de ne pas utiliser String lorsque le contenu de la chaîne est fréquemment modifié.

La plus grande différence entre StringBuffer et StringBuilder est que StringBuffer est thread-safe, tandis que StringBuilder n'est pas thread-safe, mais les performances de StringBuilder sont supérieures à celles de StringBuffer, il est donc recommandé d'utiliser StringBuilder en un seul -threaded et dans un environnement multithread. Il est recommandé d'utiliser StringBuffer.

String str="i" est-il identique à String str=new String("i") ?

est différent car la méthode d'allocation de mémoire est différente. String str="i", la machine virtuelle Java l'attribuera au pool de constantes ; et String str=new String("i") sera alloué à la mémoire tas.

Comment inverser une chaîne ?

Utilisez la méthode reverse() de StringBuilder ou stringBuffer.

Exemple de code :

// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); // gfedcba
Copier après la connexion

Quelles sont les méthodes courantes de la classe String ?

indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。
Copier après la connexion

Les classes abstraites doivent-elles avoir des méthodes abstraites ?

Non, les classes abstraites ne doivent pas nécessairement avoir des méthodes abstraites.

Exemple de code :

abstract class Cat {
    public static void sayHi() {
        System.out.println("hi~");
    }
}
Copier après la connexion

Dans le code ci-dessus, la classe abstraite n'a pas de méthodes abstraites mais elle peut s'exécuter normalement.

Quelles sont les différences entre les classes ordinaires et les classes abstraites ?


Les classes ordinaires ne peuvent pas contenir de méthodes abstraites, tandis que les classes abstraites peuvent contenir des méthodes abstraites.

Les classes abstraites ne peuvent pas être instanciées directement, mais les classes ordinaires peuvent être instanciées directement.

Les classes abstraites peuvent-elles être modifiées avec final ?

Non, définir une classe abstraite permet à d'autres classes d'en hériter. Si elle est définie comme final, la classe ne peut pas être héritée, ce qui provoquera des conflits entre elles, donc final ne peut pas modifier la classe abstraite. , comme le montre la figure ci-dessous , l'éditeur affichera également un message d'erreur :

Questions dentretien Java de base courantes

Quelle est la différence entre une interface et une classe abstraite ?

Implémentation : les sous-classes des classes abstraites utilisent des extensions pour hériter ; les interfaces doivent utiliser des implémentations pour implémenter l'interface.

构造函数:抽象类可以有构造函数;接口不能有。

main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。

实现数量:类可以实现很多个接口;但是只能继承一个抽象类。

访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

java 中 IO 流分为几种?

按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

BIO、NIO、AIO 有什么区别?

BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。

NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

Files的常用方法都有哪些?

Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。
Copier après la connexion

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

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.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

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.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

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.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

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.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

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

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

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.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

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

Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

See all articles