国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java javaLernprogramm Was ist ein Hikari-Pool?

Was ist ein Hikari-Pool?

Jan 07, 2025 pm 04:08 PM

O que é o hikari pool?

Was ist Hikari-Pool?

Diese einfache Frage in einem Beitrag auf BlueSky führte mich zu einer Erkl?rung, die ich wirklich cool fand. Ich bin hierher gekommen, um es zu Ende zu bringen.

In diesem speziellen Kontext wurde über den Hikari Connection Pool gesprochen. Aber wenn Hikari ein Verbindungspool ist, was w?re dann ein ?Pool“?

Das Wichtigste zuerst: Poolkonzept

Bevor wir erkl?ren, was HikariCP ist, müssen wir erkl?ren, was ein Verbindungspool ist. Und um den Verbindungspool zu erkl?ren, müssen wir den Pool erkl?ren.

Sollen wir dafür eine ?konomische Analogie verwenden? Eine historische Wirtschaftsanalogie voller Fehler und Ungenauigkeiten mit der realen Welt, aber lassen Sie Ihren Unglauben schnell beiseite, nur um die Erkl?rung zu erhalten! Es ist in sich geschlossen.

Stellen Sie sich vor, Sie w?ren ein Herr/eine Dame im Mittelalter. Sie verfügen über die Werkzeuge, um die Arbeit der Bauern auszuführen. Und Sie m?chten, dass sie funktionieren. Wie garantieren Sie dies? Geh?ren die Werkzeuge Ihnen? Sie müssen den Bauern ganz einfach die Werkzeuge liefern.

Stellen Sie sich also die Situation vor: Ihr Bauer braucht eine Hacke, um das Land zu j?ten, also geht er dorthin und bittet Sie um eine Hacke. Du gibst ihm die Hacke und lebst weiter. Aber was ist mit seinem Hackenvorrat, wenn er es nicht zurückgibt? Eines Tages wird es enden...

Eine Alternative zur Abgabe der Hacke besteht darin, eine Hacke anfertigen zu lassen. Sie sind der Herr/die Herrin dieser L?nder, also haben Sie Zugang zum Schmied, der das Metall in die Form einer Hacke schmelzen und in einen Griff einbauen kann. Aber das kann man nicht sofort produzieren, ohne dass der Bauer im Wartezimmer sitzt. Um diese neue Funktion zu erstellen, ben?tigen Sie enorm viel Zeit und Energie.

Wenn nun der Bauer die Hacke am Ende des Tages zurückgibt, steht sie am n?chsten Tag einem anderen Bauern zur Verfügung.

Hier kontrollieren Sie den Pool von Hacken. Der Pool ist ein Entwurfsmuster, das angibt, dass Sie die folgenden Aktionen ausführen k?nnen:

  • Bitten Sie ihn um ein Element
  • Element dorthin zurückgeben

Andere h?ufige Dinge, die man in Pools von Objekten haben sollte:

  • M?glichkeit, bei Bedarf weitere Objekte zu erstellen, indem diese im Pool registriert werden
  • F?higkeit, Objekte aus dem Pool zu zerst?ren (oder sie von diesem Pool zu trennen)

Herstellen einer Verbindung zur JDBC-Datenbank

Nun, kommen wir HikariCP n?her. Lassen Sie uns hier über Datenbankverbindungen in Java sprechen.

In Java bitten wir darum, eine Verbindung zur Datenbank herzustellen. Es gibt die Direktverbindungsoption, bei der Sie direkt wissen müssen, welche Klassen aufgerufen werden sollen und einige Details, oder Sie nutzen einfach die Service-Discovery-Option.

Um die Service-Erkennung nutzen zu k?nnen, erstellt der Dienstanbieter a priori eine M?glichkeit, zu registrieren, was er bereitstellt, und dann geht die ?Service-Erkennung“ danach, um zu sehen, wer diese Anfrage bedienen k?nnte.

Ein Fall von Diensterkennung: pstmt-null-safe

Ich hatte einen Fall, in dem ich JDBC-Verbindungen herstellen musste, um mit der Datenbank zu kommunizieren. Allerdings akzeptierte mein JDBC-Treiber die Verwendung von Nullen als Werten nicht, sondern nur Nullen direkt in Abfragen. Was habe ich also getan? Ein Fahrer auf einem Fahrer!

Die allgemeine Idee war die folgende. Stellen Sie sich vor, ich habe diese Abfrage, in die ich Werte einfügen m?chte:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Stellen Sie sich nun vor, ich besch?ftige mich mit der ersten Einzahlung dieses Wertes in die Bank. Dazu muss ich es bei ID=1, CONTENT=first und PARENT=null belassen, denn schlie?lich gibt es keinen übergeordneten Datensatz wie diesen (es ist schlie?lich der erste).

Was würde natürlich getan werden:

try (final var pstmt = conn.prepareStatement(
                """
                INSERT INTO some_table (id, content, parent)
                VALUES (?, ?, ?)
                """)) {

    pstmt.setInt(1, 1);
    pstmt.setString(2, "first");
    pstmt.setNull(3, Types.INTGEGER); // java.sql.Types
    pstmt.executeUpdate(); // de fato altere o valor
}

Ich m?chte es weiterhin so verwenden, schlie?lich ist es die idiomatische Art, es zu verwenden. Und laut CUPID kommt das ?I“ von ?idiomatisch“. Die Idee eines idiomatischen Codes besteht genau darin, ?unn?tige mentale Belastung zu reduzieren“.

Um dieses Problem zu l?sen, habe ich mich entschieden: ?prepareStatement“ bis zum letzten Moment vor ?executeUpdate“ belassen. Also speichere ich alle anzuwendenden Nullen und wenn ich merke, dass ich tats?chlich eine Null ben?tige, führe ich eine String-Ersetzung durch und erzeuge eine neue Abfrage, und diese neue Abfrage wird tats?chlich ausgeführt.

In diesem Fall beginne ich mit:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Also muss ich diese Werte eingeben:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

-- 1, 'first', NULL

Aber ich kann die Null nicht wirklich verwenden, also erstelle ich einen Schlüssel, um zu identifizieren, dass die dritte Stelle eine Null ist:

-- (value, value, NULL)
INSERT INTO some_table (id, content, parent)
VALUES (?, ?, NULL)
-- 1, 'first'

Und in diesem Fall bereite ich diese neue Zeichenfolge vor und platziere die Argumente entsprechend den Anforderungen.

Okay, wie kann ich meiner Anwendung mitteilen, dass ich meinen JDBC-Treiber verwenden muss? Wie habe ich mich registriert?

Das fragliche Projekt ist Pstmt Null Safe. Grunds?tzlich gibt es im Java-Klassenlader eine Magie, die beim Laden einer JAR-Datei nach einem Metadatenordner namens META-INF sucht. Und im Fall des JDBC-Treibers META-INF/services/java.sql.Driver, und ich habe es bei der Klasse notiert, die java.sql.Driver implementiert: br.com.softsite.pstmtnullsafe.jdbc.PstmtNullSafeDriver.

Laut der java.sql.Driver-Dokumentation sollte jeder Treiber eine Instanz von sich selbst erstellen und sich bei DriverManager registrieren. Ich habe es so umgesetzt:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Statischer Block l?dt sich selbst. Und woher wissen wir, welche Verbindung mein Treiber verwalten soll? Der Aufruf erfolgt über DriverManager#getConnection(String url). Wir haben die URL, um den Treiber zu fragen, ob er die Verbindung akzeptiert. Die Konvention (auch hier die idiomatische Art, es zu verwenden) besteht darin, es dem URL-Schema voranzustellen. Da ich m?chte, dass mein Treiber eine Verbindung zu einem anderen Treiber herstellt, habe ich das folgende Schema verwendet:

try (final var pstmt = conn.prepareStatement(
                """
                INSERT INTO some_table (id, content, parent)
                VALUES (?, ?, ?)
                """)) {

    pstmt.setInt(1, 1);
    pstmt.setString(2, "first");
    pstmt.setNull(3, Types.INTGEGER); // java.sql.Types
    pstmt.executeUpdate(); // de fato altere o valor
}

Um die Tests durchzuführen, habe ich mich mit SQLite verbunden und den Xerial-Indikator verwendet, um eine In-Memory-Verbindung über den Verbindungs-URI anzufordern:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Um die Verbindung zu ?umhüllen“, sieht meine Konvention vor, dass ich jdbc: nicht wiederhole, also:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

-- 1, 'first', NULL

Analyse der obigen URI:

-- (value, value, NULL)
INSERT INTO some_table (id, content, parent)
VALUES (?, ?, NULL)
-- 1, 'first'

Okay, und wie geben Sie das an? Die Driver#acceptsURL muss true zurückgeben, wenn ich die Verbindung ?ffnen kann. Ich k?nnte einfach Folgendes tun:

public static final PstmtNullSafeDriver instance;

static {
    instance = new PstmtNullSafeDriver();
    try {
        DriverManager.registerDriver(instance);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

Aber was würde das bedeuten, wenn ich versuchen würde, einen nicht vorhandenen Treiber zu laden? Nichts, es würde zu einem anderen Zeitpunkt ein Problem verursachen. Und das ist nicht gut, ideal w?re es, von Anfang an abzustürzen. Deshalb versuche ich, den Treiber von unten zu laden, und wenn das nicht gelingt, gebe ich false zurück:

jdbc:pstmt-nullsafe:<url de conex?o sem jdbc:>
\__/ \____________/
 |    |
 |    Nome do meu driver
 Padr?o para indicar JDBC

Der eigentliche Treibercode enth?lt einige weitere Punkte, die für die Diskussion hier über HikariCP, DataSource, JDBC oder die in diesem Beitrag behandelten Themen nicht relevant sind.

Wenn ich also eine ?nullsichere“ Verbindung zu DriverManager anfordere, findet es zuerst meinen Treiber und mein Treiber versucht rekursiv zu prüfen, ob unter der Haube die M?glichkeit einer Verbindung besteht. Best?tigt, dass es einen Treiber gibt, der damit umgehen kann, sage ich ja, das ist m?glich.

Das Verwendungsmuster von JDBC-Verbindungen in Java

Die Connection-Schnittstelle implementiert die AutoCloseable-Schnittstelle. Das hei?t, Sie nehmen die Verbindung an, nutzen sie nach Belieben und schlie?en dann die Verbindung. Es ist ganz normal, dass Sie hiermit eine Indirektion verwenden oder, wenn Sie die Verbindung direkt verwenden, sie innerhalb eines try-with-resources:
-Blocks verwenden

jdbc:sqlite::memory:

Der Prozess des Herstellens von Verbindungen ist ein kostspieliger Prozess. Und auch der Service Discovery-Prozess ist nicht gerade kostenlos. Ideal w?re es also, den Treiber zu speichern, um dann die Verbindungen zu generieren. Lassen Sie uns dies nach und nach weiterentwickeln.

Zuerst ben?tigen wir ein Objekt, das wir mit dem Treiber starten k?nnen. Es kann leicht ein globales Objekt, eine injizierte Spring-Komponente oder etwas ?hnliches sein. Nennen wir es JdbcConnector:

jdbc:pstmt-nullsafe:sqlite::memory:

Eine m?gliche Implementierung für getJdbcConnection() besteht darin, sich auf einen von dieser Funktion umfassten Zustand zu verlassen:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Bis jetzt l?uft alles gut. Aber... erinnern Sie sich an das erste Beispiel, bei dem der Bauer im Werkzeugvorrat nach einer Hacke fragt? Also... Sollen wir das berücksichtigen? Anstatt die Verbindung tats?chlich zu schlie?en, k?nnen wir die Verbindung zum Pool wiederherstellen. Der Korrektheit halber werde ich vor mehreren gleichzeitigen Zugriffen schützen, aber ich mache mir hier keine Sorgen um die Effizienz.

Nehmen wir hier an, dass ich eine Klasse namens ConnectionDelegator habe. Es implementiert alle Connection-Methoden, führt jedoch keine eigenen Aktionen aus, sondern delegiert nur an eine Verbindung, die ihm als Konstruktor übergeben wird. Zum Beispiel für die Methode isClosed():

try (final var pstmt = conn.prepareStatement(
                """
                INSERT INTO some_table (id, content, parent)
                VALUES (?, ?, ?)
                """)) {

    pstmt.setInt(1, 1);
    pstmt.setString(2, "first");
    pstmt.setNull(3, Types.INTGEGER); // java.sql.Types
    pstmt.executeUpdate(); // de fato altere o valor
}

Und so weiter für die anderen Methoden. Es ist abstrakt, weil ich mich dazu zwingen m?chte, etwas anderes als eine einfache Delegation zu tun, wenn ich es verwende.

Nun, lass uns gehen. Die Idee ist, dass eine Verbindung angefordert wird, die m?glicherweise vorhanden ist oder nicht. Wenn es existiert, schlie?e ich es in diese neue Klasse ein, damit ich es dann an pool zurückgeben kann, wenn ich die Verbindung schlie?e. Hmmm, also werde ich etwas in der close()-Methode tun ... Okay, packen wir es zuerst ein. Lassen wir getConnection() synchronisiert, um Parallelit?tsprobleme zu vermeiden:

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

Ok, wenn ich Elemente im Pool von Verbindungen habe, verwende ich sie, bis er leer ist. Aber es ist nie gefüllt! Werden wir dieses Problem also l?sen? Wenn es schlie?t, k?nnen wir es in den Pool zurückgeben!

INSERT INTO some_table (id, content, parent)
VALUES (?, ?, ?)

-- 1, 'first', NULL

Ok, wenn Sie die Verbindung nicht mehr nutzen, wird sie an
zurückgesendet der Pool. Dies genügt nicht der Dokumentation für die Methode Connection#close(), da in der Dokumentation erw?hnt wird, dass sie alle mit dieser Verbindung verbundenen JDBC-Ressourcen freigibt. Das bedeutet, dass ich alle Anweisungen, ResultSets, PreparedStatements usw. aufzeichnen müsste. Wir k?nnen damit umgehen, indem wir auf ConnectionDelegator eine geschützte Methode namens closeAllInnerResources() erstellen. Und rufen Sie es in close():
auf

-- (value, value, NULL)
INSERT INTO some_table (id, content, parent)
VALUES (?, ?, NULL)
-- 1, 'first'

Und damit haben wir etwas, das bei Bedarf Verbindungen zu mir zurückgibt und das die F?higkeit besitzt, einen Pool von Ressourcen zu bilden.

Wissen Sie, welchen Namen Java einem Objekt gibt, das Verbindungen bereitstellt? Datenquelle. Und wissen Sie, was Java sonst noch über DataSources zu sagen hat? Dass es konzeptionell gesehen einige Typen gibt. Und von diesen Typen sind die beiden relevantesten:

  • Grundlegend: Es führt kein Pooling durch, es wird nach einer Verbindung gefragt, es wird lediglich eine Verbindung erstellt und zurückgegeben
  • gepoolt: bei dem eine Bündelung der Verbindungen zur Bank erfolgt

Und hier durchlaufen wir den Prozess, immer wieder Verbindungen herzustellen (Grundtyp) und uns zu einer DataSource weiterzuentwickeln
gepoolt.

Was ist HikariCP?

HikariCP ist eine Datenquelle. Insbesondere eine gepoolte DataSource. Aber er hat eine Eigenschaft: Er ist der Schnellste von allen. Um diese Geschwindigkeit zu gew?hrleisten, macht HikariCP in seinem Pool von Verbindungen zur Verwendung w?hrend des Lebenszyklus der Anwendung ein Geheimnis: Es erstellt bereits alle verfügbaren Verbindungen. Wenn also eine getConnection eintrifft, muss HikariCP nur den Pool der Verbindungen überprüfen.

Wenn Sie tiefer in das Thema eintauchen m?chten, k?nnen Sie sich diesen Artikel auf Baeldung zu diesem Thema sowie das Repository auf Github ansehen.

Das obige ist der detaillierte Inhalt vonWas ist ein Hikari-Pool?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen Hashmap und Hashtable? Unterschied zwischen Hashmap und Hashtable? Jun 24, 2025 pm 09:41 PM

Der Unterschied zwischen HashMap und Hashtable spiegelt sich haupts?chlich in der Gewindesicherheit, der Nullwertunterstützung und der Leistung wider. 1. In Bezug auf die Gewindesicherheit ist Hashtable Thread-Safe, und seine Methoden sind haupts?chlich Synchronmethoden, w?hrend HashMap keine Synchronisationsverarbeitung durchführt, die nicht mit Thread-Safe ist. 2. In Bezug auf die Nullwertunterstützung erm?glicht HashMap einen Nullschlüssel und mehrere Nullwerte, w?hrend Hashtable keine Nullschlüssel oder -Werte zul?sst, sonst wird eine Nullpointerexception geworfen. 3. In Bezug auf die Leistung ist HashMap effizienter, da kein Synchronisationsmechanismus vorhanden ist und Hashtable für jeden Vorgang eine niedrige Verriegelungsleistung aufweist. Es wird empfohlen, stattdessen eine Concurrenthashmap zu verwenden.

Warum brauchen wir Wrapper -Klassen? Warum brauchen wir Wrapper -Klassen? Jun 28, 2025 am 01:01 AM

Java verwendet Wrapper-Klassen, da grundlegende Datentypen nicht direkt an objektorientierten Operationen teilnehmen k?nnen und Objektformen h?ufig in den tats?chlichen Bedürfnissen erforderlich sind. 1. Sammelklassen k?nnen nur Objekte speichern, z. B. Listen verwenden automatische Boxen, um numerische Werte zu speichern. 2. Generika unterstützen keine Grundtypen, und Verpackungsklassen müssen als Typparameter verwendet werden. 3.. Verpackungsklassen k?nnen Nullwerte darstellen, um nicht festgelegte oder fehlende Daten zu unterscheiden. 4. Verpackungsklassen bieten praktische Methoden wie String -Conversion, um die Analyse und Verarbeitung von Daten zu erleichtern. In Szenarien, in denen diese Eigenschaften ben?tigt werden, sind Verpackungsklassen unverzichtbar.

Wie optimiert JIT Compiler den Code? Wie optimiert JIT Compiler den Code? Jun 24, 2025 pm 10:45 PM

Der JIT -Compiler optimiert den Code durch vier Methoden: Methode Inline, Hotspot -Erkennung und -vergleich, Typespekulation und Devirtualisation sowie die Eliminierung des redundanten Betriebs. 1. Methode Inline reduziert den Anrufaufwand und fügt h?ufig kleine Methoden direkt in den Anruf ein. 2. Erkennung und Hochfrequenzcodeausführung und zentral optimieren, um Ressourcen zu sparen. 3. Typ Spekulation sammelt Informationen zum Laufzeittyp, um Devirtualisation -Anrufe zu erzielen und die Effizienz zu verbessern. 4. Redundante Operationen beseitigen nutzlose Berechnungen und Inspektionen basierend auf den Betriebsdaten, wodurch die Leistung verbessert wird.

Was sind statische Methoden in Schnittstellen? Was sind statische Methoden in Schnittstellen? Jun 24, 2025 pm 10:57 PM

StaticMethodsinInterfaces -reisEtroducucuedInjava8toalloytilityFunctionSwitHinTheInterfaceItEp.beejava8, solche Funktionen, dieseparatehelperklassen, führendemTodisorganizedCode.Now, StaticMetheSprovidreefits: 1) theeneNableable -theenableaby

Was ist ein Instanz -Initialisiererblock? Was ist ein Instanz -Initialisiererblock? Jun 25, 2025 pm 12:21 PM

Instanzinitialisierungsbl?cke werden in Java verwendet, um die Initialisierungslogik beim Erstellen von Objekten auszuführen, die vor dem Konstruktor ausgeführt werden. Es ist für Szenarien geeignet, in denen mehrere Konstruktoren Initialisierungscode, komplexe Feldinitialisierung oder anonyme Szenarien der Klasseninitialisierung teilen. Im Gegensatz zu statischen Initialisierungsbl?cken wird es jedes Mal ausgeführt, wenn es instanziiert wird, w?hrend statische Initialisierungsbl?cke nur einmal ausgeführt werden, wenn die Klasse geladen wird.

Was ist das 'Final' -Styword für Variablen? Was ist das 'Final' -Styword für Variablen? Jun 24, 2025 pm 07:29 PM

InvaVa, theFinalKeywordPreventsAvariable von ValueFromBeingumedAfterasssignment, ButitsBehaviordiffersForprimitive und ANSPRIMITIVEVARIABLE, FinalMakesthevalueconstant, AsinfinalIntmax_speed = 100; WhirerastsignmentcausaSesSaSesSaSesSaSaSesSaSesSaSaSesSaSaSesSaSesSesirror

Was ist das Fabrikmuster? Was ist das Fabrikmuster? Jun 24, 2025 pm 11:29 PM

Der Werksmodus wird verwendet, um die Logik der Objekterstellung zusammenzufassen, wodurch der Code flexibler, einfach zu pflegen und locker gekoppelt ist. Die Kernantwort lautet: Durch zentrales Verwalten von Logik der Objekterstellung, das Ausblenden von Implementierungsdetails und die Unterstützung der Erstellung mehrerer verwandter Objekte. Die spezifische Beschreibung lautet wie folgt: Der Fabrikmodus gibt Objekterstellung an eine spezielle Fabrikklasse oder -methode zur Verarbeitung und vermeidet die Verwendung von NewClass () direkt; Es ist für Szenarien geeignet, in denen mehrere Arten von verwandten Objekten erstellt werden, die Erstellungslogik sich ?ndern und Implementierungsdetails versteckt werden müssen. Zum Beispiel werden im Zahlungsabwickler Stripe, PayPal und andere Instanzen durch Fabriken erstellt. Die Implementierung umfasst das von der Fabrikklasse zurückgegebene Objekt basierend auf Eingabeparametern, und alle Objekte erkennen eine gemeinsame Schnittstelle. Gemeinsame Varianten umfassen einfache Fabriken, Fabrikmethoden und abstrakte Fabriken, die für unterschiedliche Komplexit?ten geeignet sind.

Was ist Typ Casting? Was ist Typ Casting? Jun 24, 2025 pm 11:09 PM

Es gibt zwei Arten von Konvertierung: implizit und explizit. 1. Die implizite Umwandlung erfolgt automatisch, wie z. B. das Konvertieren in INT in Doppel; 2. Explizite Konvertierung erfordert einen manuellen Betrieb, z. B. die Verwendung (int) MyDouble. Ein Fall, in dem die Typ -Konvertierung erforderlich ist, umfasst die Verarbeitung von Benutzereingaben, mathematische Operationen oder das übergeben verschiedener Werte zwischen Funktionen. Probleme, die beachtet werden müssen, sind: Umdrehung von Gleitpunktzahlen in Ganzzahlen wird der fraktionale Teil abschneiden, gro?e Typen in kleine Typen zu einem Datenverlust führen, und einige Sprachen erm?glichen keine direkte Konvertierung bestimmter Typen. Ein ordnungsgem??es Verst?ndnis der Regeln der Sprachkonvertierung hilft, Fehler zu vermeiden.

See all articles