Spisu treści:

Czy StringBuilder może mieć wartość null?
Czy StringBuilder może mieć wartość null?

Wideo: Czy StringBuilder może mieć wartość null?

Wideo: Czy StringBuilder może mieć wartość null?
Wideo: C# Od podstaw - 02.03 String & String Builder 2024, Listopad
Anonim

pusty oznacza, że nie ma znaków w StringBuilder . zero oznacza, że nie ma StringBuilder obiekt w ogóle. Zmienna jest tylko zero jeśli ma typ referencyjny (na przykład String, StringBuilder , Set, jako zasada kciuka: wszystkie typy pisane wielką literą) i nie jest jeszcze zainicjowany lub został wyraźnie ustawiony na zero.

Podobnie, skąd mam wiedzieć, czy mój StringBuilder jest pusty?

Metoda długości StringBuilder lub Klasa StringBuffer zwraca długość sekwencji znaków, którą aktualnie posiada. Jak widać na przykładzie, aby sprawdź czy ten StringBuilder jest pusty , uzyskaj długość StringBuilder obiekt. Gdyby długość wynosi 0, to jest pusty , w przeciwnym razie nie.

Podobnie, dlaczego StringBuilder jest bardziej wydajny niż StringBuffer? W rezultacie, StringBuilder jest szybszy niż StringBuffer . Bufor ciągów jest zmienny. Może się zmieniać pod względem długości i treści. Bufory ciągów są bezpieczne wątkowo, co oznacza, że mają zsynchronizowane metody kontroli dostępu, dzięki czemu tylko jeden wątek może uzyskać dostęp do Bufor ciągów synchronizowany kod obiektu na raz.

W związku z tym, jak zresetować StringBuilder?

1) Wyczyść StringBuilder, przypisując nowy obiekt

  1. public class JavaStringBufferClearEmptyPrzykład {
  2. public static void main(String args) {
  3. StringBuilder sbStr = null;
  4. for(int i = 1; i <= 5; i++){
  5. //wyczyść zawartość z poprzedniej iteracji.
  6. sbStr = nowy StringBuilder();
  7. ul. załącznik(i);
  8. System. na zewnątrz. print(sbStr);

Jak StringBuilder działa wewnętrznie w Javie?

StringBuilder obiekty są podobne do obiektów String, z tą różnicą, że można je modyfikować. Wewnętrznie , obiekty te są traktowane jak tablice o zmiennej długości zawierające sekwencję znaków. Na przykład, jeśli chcesz połączyć dużą liczbę ciągów, dołącz do a StringBuilder obiekt jest bardziej wydajny.

Zalecana: