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));
Résultat de l'exécution?:
str1:1179395 | str2:1179395 falseInterpré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 ?
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
Quelles sont les méthodes courantes de la classe String??
indexOf():返回指定字符的索引。 charAt():返回指定索引處的字符。 replace():字符串替換。 trim():去除字符串兩端空白。 split():分割字符串,返回一個(gè)分割后的字符串?dāng)?shù)組。 getBytes():返回字符串的 byte 類(lèi)型數(shù)組。 length():返回字符串長(zhǎng)度。 toLowerCase():將字符串轉(zhuǎn)成小寫(xiě)字母。 toUpperCase():將字符串轉(zhuǎn)成大寫(xiě)字符。 substring():截取字符串。 equals():字符串比較。
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~"); } }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 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?: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.構(gòu)造函數(shù):抽象類(lèi)可以有構(gòu)造函數(shù);接口不能有。
main 方法:抽象類(lèi)可以有 main 方法,并且我們能運(yùn)行它;接口不能有 main 方法。
實(shí)現(xiàn)數(shù)量:類(lèi)可以實(shí)現(xiàn)很多個(gè)接口;但是只能繼承一個(gè)抽象類(lèi)。
訪問(wèn)修飾符:接口中的方法默認(rèn)使用 public 修飾;抽象類(lèi)中的方法可以是任意訪問(wèn)修飾符。
java 中 IO 流分為幾種?
按功能來(lái)分:輸入流(input)、輸出流(output)。
按類(lèi)型來(lái)分:字節(jié)流和字符流。
字節(jié)流和字符流的區(qū)別是:字節(jié)流按 8 位傳輸以字節(jié)為單位輸入輸出數(shù)據(jù),字符流按 16 位傳輸以字符為單位輸入輸出數(shù)據(jù)。
BIO、NIO、AIO 有什么區(qū)別?
BIO:Block IO 同步阻塞式 IO,就是我們平常使用的傳統(tǒng) IO,它的特點(diǎn)是模式簡(jiǎn)單使用方便,并發(fā)處理能力低。
NIO:New IO 同步非阻塞 IO,是傳統(tǒng) IO 的升級(jí),客戶端和服務(wù)器端通過(guò) Channel(通道)通訊,實(shí)現(xiàn)了多路復(fù)用。
AIO:Asynchronous IO 是 NIO 的升級(jí),也叫 NIO2,實(shí)現(xiàn)了異步非堵塞 IO ,異步 IO 的操作基于事件和回調(diào)機(jī)制。
Files的常用方法都有哪些?
Files.exists():檢測(cè)文件路徑是否存在。 Files.createFile():創(chuàng)建文件。 Files.createDirectory():創(chuàng)建文件夾。 Files.delete():刪除一個(gè)文件或目錄。 Files.copy():復(fù)制文件。 Files.move():移動(dòng)文件。 Files.size():查看文件個(gè)數(shù)。 Files.read():讀取文件。 Files.write():寫(xiě)入文件。
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

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Pour gérer correctement les transactions JDBC, vous devez d'abord désactiver le mode de validation automatique, puis effectuer plusieurs opérations, et enfin vous engager ou randonner en fonction des résultats; 1. Appelez Conn.SetAutoCommit (false) pour démarrer la transaction; 2. Exécuter plusieurs opérations SQL, telles que l'insertion et la mise à jour; 3. Appelez Conn.Commit () Si toutes les opérations sont réussies, et appelez Conn.Rollback () Si une exception se produit pour garantir la cohérence des données; Dans le même temps, les ressources TRY-With doivent être utilisées pour gérer les ressources, gérer correctement les exceptions et cl?turer les connexions pour éviter la fuite de connexion; De plus, il est recommandé d'utiliser des pools de connexion et de définir des points de sauvegarde pour réaliser un retour en arrière partiel, et de maintenir les transactions aussi courtes que possible pour améliorer les performances.

Utilisez des classes dans le package Java.Time pour remplacer les anciennes classes de date et de calendrier; 2. Obtenez la date et l'heure actuelles via LocalDate, LocalDateTime et Localtime; 3. Créez une date et une heure spécifiques en utilisant la méthode OF (); 4. Utilisez la méthode plus / moins pour augmenter et diminuer le temps; 5. Utilisez ZonedDateTime et ZoneID pour traiter le fuseau horaire; 6. Format et cha?nes de date d'analyse via DateTimeFormatter; 7. Utilisez instantanément pour être compatible avec les anciens types de dates si nécessaire; Le traitement des dattes dans le Java moderne devrait donner la priorité à l'utilisation de Java.timeapi, qui fournit clairement, immuable et linéaire

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

NetworkportsandfirewallsworkTogeTherToenable Communication whileSenSurringSecurity.1.networkportsAreVirtualEndpointsNumberred0–65535, Withwell-connuportslike80 (HTTP), 443 (HTTPS), 22 (SSH), et 25 (SMTP)

La collecte des ordures de Java (GC) est un mécanisme qui gère automatiquement la mémoire, ce qui réduit le risque de fuite de mémoire en récupérant des objets inaccessibles. 1. GC juge l'accessibilité de l'objet de l'objet racine (tel que les variables de pile, les threads actifs, les champs statiques, etc.), et les objets inaccessibles sont marqués comme des ordures. 2. Sur la base de l'algorithme de compensation de marque, marquez tous les objets accessibles et effacez des objets non marqués. 3. Adopter une stratégie de collecte générationnelle: la nouvelle génération (Eden, S0, S1) exécute fréquemment MinorGC; Les personnes agées fonctionnent moins, mais prend plus de temps pour effectuer MajorGC; Metaspace Stores Metadata de classe. 4. JVM fournit une variété de périphériques GC: SerialGC convient aux petites applications; Le parallelGC améliore le débit; CMS réduit

Le choix du bon type HTMLinput peut améliorer la précision des données, améliorer l'expérience utilisateur et améliorer la convivialité. 1. Sélectionnez les types d'entrée correspondants en fonction du type de données, tels que le texte, le courrier électronique, le tel, le numéro et la date, qui peuvent vérifier automatiquement la somme de la somme et l'adaptation au clavier; 2. Utilisez HTML5 pour ajouter de nouveaux types tels que l'URL, la couleur, la plage et la recherche, qui peuvent fournir une méthode d'interaction plus intuitive; 3. Utilisez l'espace réservé et les attributs requis pour améliorer l'efficacité et la précision du remplissage des formulaires, mais il convient de noter que l'espace réservé ne peut pas remplacer l'étiquette.

HTTP Log Middleware dans GO peut enregistrer les méthodes de demande, les chemins de requête, la propriété intellectuelle du client et le temps qui prend du temps. 1. Utilisez http.handlerfunc pour envelopper le processeur, 2. Enregistrez l'heure de début et l'heure de fin avant et après l'appel Suivant.Servehttp, 3. Obtenez le vrai client IP via R.RemoteAddr et X-Forwared-For Headers, 4. Utilisez le log.printf aux journaux de demande de sortie, 5. L'exemple de code complet a été vérifié pour s'exécuter et convient au démarrage d'un projet petit et moyen. Les suggestions d'extension incluent la capture des codes d'état, la prise en charge des journaux JSON et le suivi des ID de demande.

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis
