Unmittelbar vor der Prüfung zur Java Silver-Prüfung / Trigger-Frage

Was ist mit diesem Artikel?

Wir haben die Muster von Problemen aufgelistet, die aufgrund irreführender oder einfacher Fehler bei der Vorbereitung auf die Oracle Java SE8 Silver-Prüfung falsch waren.

Array

Array


 int[] nums;
 nums = {1, 0}; //Erfolgreiche Kompilierung / Ausführung
 nums = {1.0}; //Kompilierungsfehler

Es ist ein Muster, bei dem die dritte Zeile mit einem Punkt und einem Komma verwechselt wird. Nach dem Komma wird ein Leerzeichen eingefügt. Seien Sie also vorsichtig und machen Sie keinen Fehler.

String Methodenaufruf

String


  String hoge = " ho ge ";
  hoge.trim();
  System.out.print(hoge); //"Ho ge" wird ausgegeben

Ein Muster, das String-Methoden (insbesondere Trimmen, Ersetzen usw.) aufruft, diese jedoch nicht Variablen zuweist. Das obige Beispiel lässt eine andere Verarbeitung aus, aber wenn es in anderen Zeichenfolgenoperationen vergraben ist, wird es unerwartet übersehen.

Gibt den StringBuilder-Typ anstelle des String-Typs zurück

StringBuilder


public String hoge(){
  StringBuilder huga = new StringBuilder("huga");
  return huga.append(" huga");
}

Es ist ein Muster, das StringBuilder nach einer Zeichenfolgenoperation ohne Erlaubnis im Gehirn in String umwandelt. Es gibt mehrere Möglichkeiten. Seien Sie also vorsichtig mit dem Rückgabetyp, insbesondere wenn Sie StringBuilder verwenden.

Passen Sie den Namen der lokalen Variablen und den Feldnamen an

Variablennamen


 class Hoge {
   int a;
   void huga() {
    int a;
    ...
    System.out.println(a);
   }
 }

Es ist leicht zu verstehen, da es in IDE farbcodiert werden kann, aber es ist leicht zu vergessen, dass lokale Variablen in einer einzigen Farbe vorhanden sind. Wenn Sie sich auf ein Feld beziehen, ist dieses angehängt, sodass es leicht zu verstehen ist ...

Vererbung Vererbung (Methodenimplementierung)

Vererbung Vererbung


abstract class A {
    abstract void hoge();
}

abstract class B extends A {
    void huga() {};
}

class C extends B {
}

In diesem Fall führt Klasse C zu einem Kompilierungsfehler. Die Ursache ist, dass das Klasse-A-Methoden-Hoge nicht implementiert wird. Klasse B erbt von Klasse A, aber da es sich um eine abstrakte Klasse handelt, verursacht sie keinen Fehler, selbst wenn hoge () nicht implementiert ist. Klasse C ist eine konkrete Klasse und muss implementiert werden.

Wenn Sie einen Konstruktor explizit definiert haben

Im obigen Fall wird der Konstruktor ohne Argumente nicht automatisch generiert. Es ist leicht zu übersehen, wenn es aufgerufen wird, aber es verursacht einen Kompilierungsfehler.

Anhang: Was ich nicht wusste, bis ich gelernt habe

Automatische Konvertierung durch toString

ToString wird zum Zeitpunkt der Verkettung von Zeichenfolgen aufgerufen und implizit in Zeichenfolgen konvertiert. Ich konvertiere oft explizit und habe das Gefühl, dass ich nicht die Möglichkeit hatte, mich auf implizite Konvertierungen zu verlassen. (Es gibt ein Problem beim Kombinieren des StringBuilder-Typs und des String-Typs mit dem Operator +, aber wird es ein nützlicher Tag sein?)

ArrayList add (int index, object obj)

Ich wusste nicht, dass es nicht viele Situationen gibt, in denen Sie die Einfügeposition angeben müssen und Sie sie mit der add-Methode angeben können. ~~ Ich denke, es ist praktischer zu lernen, wie man die Referenz liest, als sich die Methoden einzeln zu merken. ~~

Sie können Würfe in der mein-Methode schreiben

Gibt es ein Muster, das nicht intern verarbeitet werden sollte?

Eindruck, dass die Testvorbereitung durchgeführt wurde

Ich habe viele Muster gelernt, die ich bis jetzt noch nicht angesprochen habe, aber es ist ein wenig subtil, wenn sie in der Praxis verwendet werden können. Es gibt viele Themen wie Anti-Patterns, die durch Kompilierung funktionieren, und ich halte es für problematisch für Anfänger, solche Muster wie "kompilierbar und ausführbar" zu lernen. Daher denke ich, dass diese Prüfung abgelegt werden sollte, nachdem verstanden wurde, dass der Hauptzweck dieser Prüfung darin besteht, das Verständnis der Sprache zu vertiefen und nicht in der Lage zu sein, ein gutes Programm zu schreiben. ~~ Und ich erkannte die Größe von IDE und Referenz. ~~

Recommended Posts

Unmittelbar vor der Prüfung zur Java Silver-Prüfung / Trigger-Frage
Ein Memorandum der Java8 Silver-Prüfung
JAVA Silver Qualifikationsprüfungsprotokoll
Java Silver Prüfungsvorbereitungsnotiz