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

Stored Procedures - JDBC Java SQL

Stored Procedures: group of SQL statements that perform a particular task  Normally created by DBA Can have any combination of input, output, and input/output parameters Benefits: Performance  - compiled once but executable more times Productivity and Ease of Use  - avoid redundant code, extend SQL Database functionality  Scalability   Maintainability Interoperability Replication Security To call stored procedure from Java The JDBC API provides the CallableStatement CallableStatement myCall = myConn.prepareCall("{ call some_stored_procedure() }"); ... myCall.execute(); JDBC API parameter types IN default INOUT OUT Stored Procedure can return result sets EXAMPLE: Created stored procedure on MySQL side - NAME:  increase_salaries_for_department DELIMITER $$ DROP PROCEDURE IF EXISTS ` increase_salaries_for_department `$$ CREATE DEFINER=`student`@`localhost` PROCEDURE `increase_salaries_for_departme...

Java - variables , data types

Data Types Data types in Java are classified in to types: Primitive - which include Integer, Character, Boolean and Floating Point Non-primitive - which includes Classes, Interfaces and Arrays Integer : byte 1 byte short 2 bytes int 4 bytes long 8 bytes Floating Point : number + fractional parts  float double Character : stores character Boolean : hold true false value Variables  Instance Variables (non-Static Fields) -  Objects store their individual states in “non-static fields”, that is, fields declared without the static keyword. Class Variables - Static Fields - any field with static modifier says that there is only one copy of this variable in existence static int myClassVariable = 6;  Local Variables - a method stores it's temporary state of local variables int count=0; Parameters - variables which will be passed to the methods of a class

Java Naming Convention

Java Naming Convention Naming Convention Oracle documentation: Thinks to name in Java are: Classes CamelCase Class names should be nouns - they represent things  Start with capital letter e.g. MyNewClass ArrayList LinkedList String TopSong Main Variables mixedCase start with lower case Meaningful and indicative  Packages low case unique internet domain name - reversed as a prefix Examples: Invalid Switch.supplier.com  Valid com.supplier._switch Methods mixedCase Often verbs Reflect the function size() getName() addPlayer() Constants represent constants values ALL_UPPER_CASE MAX_INT SEVERITY_ERROR P1 = = 3,141592653 Type Parameters single character, capital letters E-Element T-Type V-Value Interfaces