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

SQL - Podstawy

SELECT * FROM branch; CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... ); Typy danych w kolumnach Text data types: VARCHAR (40) - string z ograniczoną liczbą znaków TEXT - string BLOB - Binary Larg Objects - 65000 bytes of data ENUM('X','Y','Z') - list of values in order we enter them SET - values are ENUM up to 64 list items    Number data types: INT (size) - integer FLOAT(size,d) - small number with floating decimal point, d - decimal point DOUBLE(size,d) large number with floating decimal point Date data types: DATE() - YYYY-MM-DD TIMESTAMP() TIME() SQL Keywords: ADD - add column ALTER - add delete modify columns in table or change data types of column in table CREATE - create database, table, index, view, procedure CREATE DATABASE CREATE TABLE CREATE INDEX CREATE VIES DELETE - delete rows from table DESC - sort results descending order DROP - delet...

Java -Arrays

Array - data structure that allows us to store multiple values of the same type into a single variable Default value - zero Arrays are zero indexed - Array with ten elements will be indexed from 0 to 9 Array[] How to create array: int[] array = new int[5]; (boxes have value zero - secured slot in memory to hold values) int[] myArray = {1,2,3,4,5}; this type of initializing an array is also known as an anonymous array boolean type arrays - default value is false Errors while working with arrays ArrayIndexOutOfBoundsExeption int[] my Array = {10,35,45,78,55} myArray[5] = 55; out of bound index 5 does not exist int[] myArray = {10,15,20,17,18}; for (int i=1 ; i < myArray.lenght; i++)  System.out.println("value= " + myArray[i] it will return values from index 1 How to print out simple int array? example: int [] myArray = new int [ 2 ] ; myArray[ 0 ]= 0 ; myArray[ 1 ]= 1 ; System. out .println( "My array: " + ...

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...