OCAJP – StringBuilder-API

StringBuilder ist eine Alternative zur vorhandenen StringBuffer-Klasse in Java. Die StringBuilder-Klasse wird erstmals in Java 5.0 eingeführt. Der Hauptunterschied zwischen StringBuilder und StringBuffer besteht darin, dass StringBuilder nicht synchron ist, während StringBuffer synchron ist. Dadurch bietet die StringBuilder-Klasse eine bessere Leistung als der StringBuffer.

ocajp-Prüfung

Die neue OCAJP-Prüfung fügte ein separates Ziel für den String Builder-Kurs hinzu. Das Ziel der Prüfung ist:

Bearbeiten Sie Daten mit der StringBuilder-Klasse und ihren Methoden

Wenn man sich das oben genannte Ziel anschaut, gibt es keinen klaren Hinweis darauf, welche Methoden in der Prüfung abgefragt werden. Das bedeutet, dass wahrscheinlich die Möglichkeit besteht, dass Sie alle Methoden testen, die in der StringBuilder-API definiert sind. In diesem Tutorial werde ich die Methoden auflisten, die für die OCAJP-Prüfung am wichtigsten sind. Am Ende dieses Tutorials habe ich auch einige Beispiele bereitgestellt StringBuilder Probeprüfungsfragen für Ihre Praxis.

OCAJP Javabeat-Verkaufsförderung

StringBuilder-Konstruktor

In der StringBuilder-Klasse sind vier Varianten von Konstruktoren definiert.

  • StringBuilder()
  • StringBuilder(CharSequence seq)
  • StringBuilder(int Kapazität)
  • StringBuilder(String str)
  • StringBuilder-Methoden

    Es gibt fünfzig Methoden, die in der StringBuilder-Klasse definiert sind. Die meisten Methoden sind überladen und werden für ähnliche Operationen mit unterschiedlichen Datentypen verwendet. Sie müssen sich nicht alle Methoden für die OCAJP-Prüfung merken, aber Sie müssen einige wichtige Methoden verstehen und wissen, wie Sie sie in Ihrer Bewerbung verwenden. Ich habe am Ende dieses Tutorials einige Beispiele bereitgestellt.

  • StringBuilder append(boolean b)
  • StringBuilder append(char c)
  • StringBuilder append(char[] str)
  • StringBuilder append(char[] str, int offset, int len)
  • StringBuilder append(CharSequence s)
  • StringBuilder append(CharSequence s, int start, int end)
  • StringBuilder append(double d)
  • StringBuilder append(float f)
  • StringBuilder append(int i)
  • StringBuilder append(long lng)
  • StringBuilder append(Object obj)
  • StringBuilder append(String str)
  • StringBuilder append(StringBuffer sb)
  • StringBuilder appendCodePoint(int codePoint)
  • int Kapazität()
  • char charAt(int index)
  • int codePointAt(int index)
  • int codePointBefore(int index)
  • int codePointCount(int beginIndex, int endIndex)
  • StringBuilder delete(int start, int end)
  • StringBuilder deleteCharAt(int index)
  • void secureCapacity(int MinimumCapacity)
  • void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
  • int indexOf(String str)
  • int indexOf(String str, int fromIndex)
  • StringBuilder insert(int offset, boolean b)
  • StringBuilder insert(int offset, char c)
  • StringBuilder insert(int offset, char[] str)
  • StringBuilder insert(int index, char[] str, int offset, int len)
  • StringBuilder insert(int dstOffset, CharSequence s)
  • StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
  • StringBuilder insert(int offset, double d)
  • StringBuilder insert(int offset, float f)
  • StringBuilder insert(int offset, int i)
  • StringBuilder insert(int offset, long l)
  • StringBuilder insert(int offset, Object obj)
  • StringBuilder insert(int offset, String str)
  • int lastIndexOf(String str)
  • int lastIndexOf(String str, int fromIndex)
  • int Länge()
  • int offsetByCodePoints(int index, int codePointOffset)
  • StringBuilder ersetzen(int start, int end, String str)
  • StringBuilder reverse()
  • void setCharAt(int index, char ch)
  • void setLength(int newLength)
  • CharSequence subSequence(int start, int end)
  • String-Teilzeichenfolge (int start)
  • String-Teilzeichenfolge (int start, int end)
  • String toString()
  • void trimToSize()
  • StringBuilder-Beispiel

    Hier ist ein sehr einfaches Beispiel für die Verwendung der StringBuilder-Klasse. Ich habe nur sehr wenige wichtige Methoden verwendet, die in der API definiert sind, aber es ist einfach, jede der Methoden selbst zu erlernen und zu verwenden. Einer der wichtigen Punkte, die in der echten Prüfung getestet werden, ist die Erweiterung der StringBuilder-Klasse. Da es sich um eine letzte Klasse handelt, kann der Entwickler diese Klasse nicht erweitern.

    StringBuilder-Beispielprogramm:

    package net.javabeat;
    public class StringBuilderExample{
    	public static void main(String[] args) {
    		StringBuilder stringBuilder = new StringBuilder(50);
    		stringBuilder.append("This");
    		stringBuilder.append(" ");
    		stringBuilder.append("is");
    		stringBuilder.append(" ");
    		stringBuilder.append("a sample");
    		stringBuilder.append(" ");
    		stringBuilder.append("string");
    		stringBuilder.append("!!");
    		System.out.println("StringBuilder String : " + stringBuilder.toString());
    		System.out.println("StringBuilder Capacity : " + stringBuilder.capacity());
    		System.out.println("StringBuilder Length : " + stringBuilder.length());
    		System.out.println("StringBuilder Substring : " + stringBuilder.substring(3));
    		System.out.println("StringBuilder Char At : " + stringBuilder.charAt(5));
    		System.out.println("StringBuilder Capacity : " + stringBuilder.indexOf("sample"));
    		System.out.println("StringBuilder Replace : " + stringBuilder.replace(2, 6, "replaced"));		
    	}
    }
    

    Hier ist die Ausgabe:

    StringBuilder String : This is a sample string!!
    StringBuilder Capacity : 50
    StringBuilder Length : 25
    StringBuilder Substring : s is a sample string!!
    StringBuilder Char At : i
    StringBuilder Replace : Threplaceds a sample string!!
    

    Fragen zur StringBuilder-Mock-Prüfung

    1. Was wird das Ergebnis des folgenden Programms sein?

    public class JavaBeatStringBuilderMock1{
    	public static void main(String args[]) {
    		String s = "hello";
    		StringBuilder sb = new StringBuilder("hello");
    		sb.reverse();
    		s.reverse();
    		if (s == sb.toString())
    			System.out.println("Equal");
    		else
    			System.out.println("Not Equal");
    	}
    }
    
    • A. Es wird „Nicht gleich“ ausgegeben.
    • B. Laufzeitfehler.
    • C. Kompilierungsfehler.
    • D. Es wird „Gleich“ gedruckt.
    • E. Keines der oben genannten.

    Richtige Antwort: (C) ist die richtige Antwort.

    In der String-Klasse gibt es keine reverse()-Methode

    2. Betrachten Sie den folgenden Code:

    public class JavaBeatStringBuilderMock2 extends StringBuilder{
    	JavaBeatStringBuilderMock2(){ super(); }
    }
    

    Der obige Code lässt sich nicht kompilieren.

    • A. Stimmt
    • B. Falsch

    Richtige Antwort: (A) ist die richtige Antwort.

    Dies lässt sich nicht kompilieren, da die StringBuilder-Klasse eine finale Klasse ist und finale Klassen nicht erweitert werden können. Daher lässt der Compiler nicht zu, dass dieses Programm erfolgreich kompiliert wird. Solche Fragen würden Sie in einer echten Prüfung sehen und sollten daher bedenken, dass StringBuffer und StringBuilder ebenfalls endgültig sind. Alle primitiven Wrapper sind ebenfalls final (dh Boolean, Integer, Byte usw.).
    java.lang.System ist ebenfalls endgültig.

    3. Wie können Sie einen StringBuilder so initialisieren, dass er eine Kapazität von mindestens 50 Zeichen hat?

    • A. StringBuilder sb = new StringBuilder(50);
    • B. StringBuilder sb = StringBuilder.getInstance(50);
    • C. StringBuilder sb = new StringBuilder();sb.setCapacity(50);
    • D. StringBuilder sb = new StringBuilder();sb.ensureCapacity(50);

    Richtige Antwort: (A) und (D) ist die richtige Antwort.

    StringBuilder(50) ist einer der Konstruktoren, der die Kapazität als Parameter verwendet und die Kapazität des StringBuilders initialisiert. Sie können die Kapazität von StringBuilder auch mit der Methode setCapacity(int) ändern.

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen