Blog

So vermeiden Sie häufige Java-Fehler

February 2, 2022
Wander Neto
Draufsicht auf drei Personen, die mit Laptops auf dem Schoß sitzen und tippen.

Werden Sie ein produktiverer Java-Entwickler

Mit weltweit 9 Millionen Entwicklern* gehört Java (Oracle Corporation) zu den beliebtesten Programmiersprachen der Welt. Viele Anwendungs-Frameworks basieren auf Java, da es eine sehr vielseitige Sprache ist, die Programme auf vielen verschiedenen Geräten ausführen kann, die die Java Runtime Environment (JRE) unterstützen – eine Umgebung, in der alle Java-Programme laufen. Die von Entwicklern geleiteten Communities sind sehr aktiv, und die umfassende Unterstützung für neue Programmierer trägt zu ihrer stetig wachsenden Beliebtheit bei.

Da es Java schon lange gibt, haben die Communities jahrelang Standards, Tools und Codierungsmuster entwickelt und häufige Fehler, mit denen Entwickler immer wieder konfrontiert werden, entschärft. All diese von der Community geleiteten Initiativen haben ein gemeinsames Ziel: Entwicklern dabei zu helfen, bei der Anwendungsentwicklung mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, Best Practices oder Muster im Anwendungscode anzuwenden, liegt die Verantwortung beim Entwickler. Die Durchsetzung guter Praktiken ist sehr unterschiedlich, was es schwierig macht, einen Standardansatz für eine Codierungspraxis zu finden, wenn die Meinungen innerhalb der Communities stark auseinandergehen. Entwickler suchen Hilfe in Online-Communities, was manchmal unbeabsichtigt zu unsicheren Lösungen für Codierungsprobleme führen kann.

Um Entwicklern bei der Implementierung sicherer Lösungen für häufige Java-Codierungsprobleme zu helfen, haben wir Sensei entwickelt – ein IntelliJ-Plugin zur Korrektur schlechter Codierungsmuster gemäß Rezepten (oder Regeln), die von Ihnen oder Ihrem Unternehmen in einer professionellen Umgebung definiert wurden. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Gotchas) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Entwicklerproduktivität durch die Behebung häufiger Java-Codierungsfehler steigert.

Ein wiederkehrender Fehler, der Entwickler frustriert

Ein Beispiel für diese häufigen Fehler ist die falsche Gleichheitsprüfung von Wrapper-Werten. Werte von gekapselten Primitiven sollten mit der equals-Methode anstelle des Referenzvergleichsoperators (==) verglichen werden, um unerwartete Ergebnisse zu vermeiden.

Die Verwendung des Referenzvergleichsoperators für Integer-Werte im Bereich von -128 bis 127 verhält sich beispielsweise (normalerweise) genauso wie die equals-Methode. Wenn wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durchführen, unterscheiden sich die Ergebnisse. Dies liegt daran, dass Java für den genannten Bereich von Integer-Werten einen Konstantenpool unterhält. Die Verwendung der equals-Methode liefert immer die erwarteten Ergebnisse und ist daher der richtige Weg für einen Vergleich.

In diesem Beispiel verwenden wir fälschlicherweise den Operator (==), um die Gleichheit zu prüfen.

Was zu folgendem Ergebnis führt:

true

false

false

true

Der richtige Weg für einen Vergleich ist die Verwendung der equals-Methode.

Und dann wäre das Ergebnis:

true

false

true

false

Diese bekannte Best Practice existiert schon lange, wird jedoch in Legacy-Code oft falsch umgesetzt und sorgt dann im ungünstigsten Moment für Probleme. Deshalb haben wir Rezepte (oder Regeln) entwickelt, mit denen sich solche unerwünschten Codemuster lokal identifizieren und per Mausklick mit Sensei beheben lassen.

Sensei ist ein hochgradig anpassbares IDE-Plugin, das unerwünschten Code während der Eingabe erkennt und korrigiert – mit Hunderten herunterladbarer Codetransformationen und Migrationsrezepte sowie der Möglichkeit, eigene zu erstellen. Entwickler können so schlechten Code direkt beim Schreiben beheben, die Qualität steigern und eine konsistente, standardisierte Arbeitsweise über Teams und Projekte hinweg sicherstellen.

So behebt Sensei häufige Java-Probleme

Da Sie mit Sensei eigene Rezepte erstellen können, haben wir ein Rezept entwickelt, um den oben genannten Fehler zu korrigieren.

In diesem Beispiel suchen wir nach Stellen, an denen der Vergleichsoperator (==) bei gekapselten primitiven Typen verwendet wird.

Ein Sensei-Rezept sieht (in YAML) so aus:

Das obige Beispiel kann das wiederkehrende Fehlermuster während der Eingabe, in der gesamten Datei, in einem konfigurierten Bereich oder sogar im gesamten Codebase suchen. Sobald das Muster gefunden wurde, ist der nächste logische Schritt die sofortige Korrektur, ohne online suchen zu müssen. Sensei ermöglicht es Ihnen, Korrekturen zu erstellen, die Code hinzufügen, bearbeiten oder löschen. Sie können sogar mehrere Korrekturen anbieten, damit Entwickler die jeweils passendste auswählen können.

In unserem Beispiel möchten wir den Vergleich so umschreiben, dass die equals-Methode anstelle des Operators (==) verwendet wird.

Eine verfügbare Korrektur wird wie folgt beschrieben:

Funktionsweise:

Java code defining Comparison class with method comparing two Integer objects using == operator.

Standard-Programmierrichtlinien einfach umsetzen

Das Java Gotchas Cookbook enthält 22 Rezepte, die Ihnen helfen, häufige Fehler zu vermeiden und Ihren Code sauber und sicher zu halten. Es erkennt die falsche oder unsichere Verwendung verschiedener Java-Sprachfeatures und APIs, wie Objektvergleiche, Exception-Handling, reguläre Ausdrücke und Collections. Mit Sensei und diesem Cookbook schreiben Sie von Anfang an besseren Code und können eigene Rezepte für Ihr Team oder Projekt erstellen.

Dies ist nur ein Beispiel dafür, wie Sensei zur Standardisierung Ihrer Projekte beitragen kann. Halten Sie Ausschau nach Anti-Patterns oder manuellen Codetransformationen, die Ihnen häufig in Pull Requests oder bei der eigenen Arbeit begegnen. Wenn bestimmte Richtlinien von Entwicklern oft übersehen werden, können Sie diese in Rezepte umwandeln – so können Entwickler genehmigte Codetransformationen sicher anwenden.

Installieren Sie Sensei jetzt und aktivieren Sie das Java Gotchas Cookbook für ein produktives Entwicklungserlebnis. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, State of Developer Nation, https://www.developernation.net/developer-reports/de20

‍

Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.