Wydaje się, że singleton to jeden z prostszych wzorców projektowych. Jednak jego prawidłowa implementacja w języku Java może przysporzyć sporo problemów. Poniżej przedstawiam implementację, która powinna być bezpieczna w środowisku wielowątkowym, a zarazem nadal wydajna.
Archive for the ‘Programowanie’ Category
String literals
- Published on : 06 kwiecień 10
- in : Programowanie
- Comments : 0 Comments
Ile obiektów może zostać usuniętych przez garbage collector po wykonaniu ostatniej linii poniższego pseudokodu?
String a = "test";
String b = new String("test");
a = b = null;
Mapowanie typów w Toplink JPA
- Published on : 19 marzec 10
- in : Programowanie
- Comments : 0 Comments
Co zrobić, aby budując system oparty o tradycyjną, relacyjną bazę danych oraz Toplink JPA wykorzystać w pełni siłę języka Java i JPQL? Tak by móc konstruować zapytania typu:
IpAddress ipAddr = new IpAddress("10.0.0.2");
TDhcp dhcp = em.createQuery("SELECT d from TDhcp d WHERE d.ipAddress=:ip")
.setParameter("ip", ipAddr)
[...]
Maven dependency scopes
- Published on : 06 marzec 10
- in : Programowanie
- Comments : 0 Comments
Maven provides four dependency scopes:
compile: A compile-scope dependency is available in all phases. This is the default value.
provided: A provided dependency is used to compile the application, but will not be deployed. You would use this scope when you expect [...]
Toplink wydajność – encje readonly
- Published on : 22 grudzień 09
- in : Programowanie
- Comments : 0 Comments
Jak wiadomo korzystanie z JPA, niesie z sobą bardzo wiele udogodnień, np.: umożliwia w miarę bezbolesne połączenie świata relacyjnego (baza danych) z światem obiektowości (java). Niestety jak każde rozwiązanie tego pociąga za sobą narzut wydajnościowy, szczególnie widoczny w czasie masowych operacji.
Jeśli jednak nasze operacje są typu “readonly”, czyli używamy JPA tylko do pozyskiwania encji z [...]
Maven automatyzacja tworzenia kolejnych wydań oprogramowania
- Published on : 20 listopad 09
- in : Programowanie
- Comments : 0 Comments
Tworzenie nowych wydań oprogramowania bardzo często idzie w parze z tworzeniem nowych tagów w svn. Aby zautomatyzować ten proces polecam użyć pluginu mavena: maven-release-plugin
Maven różności
- Published on : 20 listopad 09
- in : Programowanie
- Comments : 0 Comments
Kilka przydatnych komend mavena. Na razie nie ma ich tutaj zbyt wiele, ale postaram się uzupełniać listę w miarę natykania się na nowe, ciekawe konstrukcje.
Wdrażanie aplikacji na zdalnym GlassFish przy użyciu Maven2
- Published on : 19 listopad 09
- in : Programowanie
- Comments : 0 Comments
Aby przeprowadzić deployment aplikacji na zdalnym serwerze GlassFish przy użyciu Mavena, polecam użyć pluginu: asadmin-maven-plugin.
Plugin ten umożliwia wykonywanie, także innych zadań które zazwyczaj wykonywane są z asadmin.
Jak rodzi się obiekt
- Published on : 19 październik 09
- in : Programowanie
- Comments : 0 Comments
Tytuł trochę przewrotny, ale będzie o tworzeniu nowego obiektu, a dokładniej o tym w jakiej kolejności inicjowane są poszczególne jego elementy
Operatory logiczne Short-Circuit
- Published on : 19 październik 09
- in : Programowanie
- Comments : 0 Comments
Czasami wiesz, że coś jest prawdą, nie tracąc czasu, aby dowiedzieć się wszystkich szczegółów. Na przykład, jeśli ktoś mówi do ciebie: “Wyjdę na zewnątrz, jeśli świeci słońce lub …”, to nie ma znaczenia co jest po LUB -i tak dalej, jak wiesz, że jest słonecznie. Program w Javie robi to samo.
Jednak nie każdy wie, że [...]