Przejdź do głównej zawartości

StringBuilder vs Stringbuffer

StringBuilder naleyży używać jesli zamierzamy concat wiele stringów, StringBuilder został wprowadzony od Javy5.  StringBuffer to starsza wersja StringBuildera. StringBuffer trobi to samo jednak z punktu widzenia performance jest wolniejszy gdzyż jest thread safe


Thread Safety in Java 
Thread safety in java is the process to make our program safe to use in multithreaded environment, there are different ways through which we can make our program thread safe.

  •  Synchronization is the easiest and most widely used tool for thread safety in java. 
  • Use of Atomic Wrapper classes from java.util.concurrent.atomic package. For example AtomicInteger 
  • Use of locks from java.util.concurrent.locks package. 
  • Using thread safe collection classes, check this post for usage of ConcurrentHashMap for thread safety. 
  • Using volatile keyword with variables to make every thread read the data from memory, not read from thread cache.

Język Java również posiada słowo kluczowe volatile, lecz ma ona nieco inną specyfikację:

  • We wszystkich wersjach Javy istnieje globalna kolejność odczytów i zapisów do zmiennej z volatile. Dzięki temu każdy wątek mający do niej dostęp odczyta jej obecną wartość przed kontynuacją, zamiast (potencjalnego) wykorzystania zmiennej przechowywanej w pamięci podręcznej. 
  • Od Javy 5 zmienne z modyfikatorem volatile zachowują relację happens-before. Używanie volatile może być szybsze niż blokowanie, ale może też nie działać w niektórych wypadkach.

Komentarze

Popularne posty z tego bloga

Skrócony zapis if - instrukcja warunkowa java

Instrukcja warunkowa - warunek i rezultat. if (warunek) { jesli spełniony wykonań operacje i zwróć wynik; } warunek nie spełniony Możliwości skrócenia kodu instrukcji warunkowej if (i < 0) ? i-- : i++; Jeżeli i mniejsze od zera to i-- jezeli false to i++ if (i < 0) {     i--; } else {     i++; } Skrócony zapis instrukcji warunkowej else if (i < 0) ? i--;  inna_zmienna=4; : i++; if (i < 0) {     i--; } else {     i++;     inna_zmienna = 4; } Skrócony zapis if

String-2 > xyzThere - java

Return true if the given string contains an appearance of "xyz" where the xyz is not directly preceeded by a period (.). So "xxyz" counts but "x.xyz" does not.  xyzThere("abcxyz") → true xyzThere("abc.xyz") → false xyzThere("xyz.abc") → true Definiujemy loop ktory sprawdza za kazdym podejsciem czy kolejne indexy i,i+1 oraz i+2 i zdefiniowane dla nich char.  Nalezy tu pamietac ze jesli sprawdamy po indeksach np i+2 to tzreba zostawic "miejsce" na koncu aby nie bylo outOfBoudnExeption tj przekroczenia rlugosci stringa. Jezeli pierwszy warunek jest spelniony tj mamy na kolejnych indexach interesujace nas char-y sprawdzamy czy na poprzedzajacych nasza trojkę indexach pojawia sie "." zaczynamy od indexu 0 - tzreba to uwzglednić w warunku tj albo index 0 == 0 lub i-1 == 0 public boolean xyzThere ( String str ) { int len = str . length () - 2 ; for ( int i = 0 ; i < len ; i...

Learning by doing - Java - 50+ Interview Questions for Programmers

Learning by doing - Java - 50+ Interview Questions for Programmers 50+ Interview questions for 50+ days ? We will see ;) Risky resolution but method "learning by doing" is great!! First are coming questions regarding Arrays: How do you find the missing number in a given integer array of 1 to 100? ( solution ) How do you find the duplicate number on a given integer array? ( solution ) How do you find the largest and smallest number in an unsorted integer array? ( solution ) How do you find all pairs of an integer array whose sum is equal to a given number? ( solution ) How do you find duplicate numbers in an array if it contains multiple duplicates? ( solution ) How are duplicates removed from a given array in Java? ( solution ) How is an integer array sorted in place using the quicksort algorithm? ( solution ) How do you remove duplicates from an array in place? ( solution ) How do you reverse an array in place in Java? ( solution ) How are duplicates remov...