<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java Planet &#187; Java</title>
	<atom:link href="http://blog.swierczyna.eu/javaplanet/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.swierczyna.eu/javaplanet</link>
	<description>O Javie i jej otoczeniu</description>
	<lastBuildDate>Fri, 14 May 2010 07:31:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Java Singleton</title>
		<link>http://blog.swierczyna.eu/javaplanet/2010/04/java-singleton/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2010/04/java-singleton/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 15:28:22 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[wzorce projektowe]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=553</guid>
		<description><![CDATA[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.


/**
 * Przykładowa implementacja Singleton w języku Java
 * http://en.wikipedia.org/wiki/Singleton_pattern
 *
 * Dodatkowo wykorzystujemy wzorzce:
 * - http://en.wikipedia.org/wiki/Lazy_initialization
 * - http://en.wikipedia.org/wiki/Double-checked_locking
 [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2010/04/java-singleton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>String literals</title>
		<link>http://blog.swierczyna.eu/javaplanet/2010/04/string-literals/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2010/04/string-literals/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 08:05:11 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaBlackBelt]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=526</guid>
		<description><![CDATA[Ile obiektów może zostać usuniętych przez garbage collector po wykonaniu ostatniej linii poniższego pseudokodu?

String a = &#34;test&#34;;
String b = new String(&#34;test&#34;);
a = b = null;

Prawidłowa odpowiedź to: jedna (obiekt wskazywany przez referencję b)
Wynika to ze specyficznej obsługi typu obiektów typu String:

obiekty typu string są niemodyfikowalne (Immutable),
literały tworzone taki sposób jak &#8220;a&#8221; umieszczane są na etapie [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2010/04/string-literals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapowanie typów w Toplink JPA</title>
		<link>http://blog.swierczyna.eu/javaplanet/2010/03/mapowanie-typow-jpa-toplink/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2010/03/mapowanie-typow-jpa-toplink/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 19:02:00 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Toplink]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=410</guid>
		<description><![CDATA[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(&#34;10.0.0.2&#34;);
TDhcp dhcp = em.createQuery(&#34;SELECT d from TDhcp d WHERE d.ipAddress=:ip&#34;)
          .setParameter(&#34;ip&#34;, ipAddr)
    [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2010/03/mapowanie-typow-jpa-toplink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven dependency scopes</title>
		<link>http://blog.swierczyna.eu/javaplanet/2010/03/maven-dependency-scopes/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2010/03/maven-dependency-scopes/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 08:30:08 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=422</guid>
		<description><![CDATA[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                [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2010/03/maven-dependency-scopes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toplink wydajność &#8211; encje readonly</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/12/toplink-readonly-wydajnosc-performance/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/12/toplink-readonly-wydajnosc-performance/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 15:25:46 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Toplink]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=344</guid>
		<description><![CDATA[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 &#8220;readonly&#8221;, czyli używamy JPA tylko do pozyskiwania encji z [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/12/toplink-readonly-wydajnosc-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak rodzi się obiekt</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/10/jak-rodzi-sie-obiekt-kolejnosc/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/10/jak-rodzi-sie-obiekt-kolejnosc/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 14:30:49 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scjp]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=172</guid>
		<description><![CDATA[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


class SuperClass {

	public SuperClass(){
		System.out.println(&#34;Super class Constructor&#34;);
	}

}

public class InitBlocks extends SuperClass{

	private int properties = propInit();

	private int propInit() {
		System.out.println(&#34;properties init&#34;);
		return 1;
	}

	public InitBlocks() {
		System.out.println(&#34;constructor&#34;);
	}

	static {
		System.out.println(&#34;static init block&#34;);
	}

	{
		System.out.println(&#34;instance init block&#34;);
	}

	public static void main(String[] args) {
		System.out.println(&#34;start main&#34;);
		InitBlocks test = new [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/10/jak-rodzi-sie-obiekt-kolejnosc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operatory logiczne Short-Circuit</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/10/operator-logiczny-short-circuit/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/10/operator-logiczny-short-circuit/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 14:09:32 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scjp]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=162</guid>
		<description><![CDATA[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: &#8220;Wyjdę na zewnątrz, jeśli świeci słońce lub &#8230;&#8221;, 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 [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/10/operator-logiczny-short-circuit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magiczny switch-case</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/10/magiczny-switch-case/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/10/magiczny-switch-case/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 19:55:22 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaBlackBelt]]></category>
		<category><![CDATA[scjp]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=157</guid>
		<description><![CDATA[Nigdy nie podobała mi się konstrukcja switch/case w javie. Może dlatego, że jej działanie jest nie do końca intuicyjne.

public class SwithCase {

	// zmienna nie może być typu long
	// Cannot switch on a value of type long. Only convertible int values or enum constants are permitted
	//static public long i = 10;

	// za to możemy mieć zmienną [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/10/magiczny-switch-case/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postinkrementacja i warunki logiczne</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/10/postinkrementacja-warunki-logiczne/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/10/postinkrementacja-warunki-logiczne/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 11:57:06 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaBlackBelt]]></category>
		<category><![CDATA[scjp]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=148</guid>
		<description><![CDATA[Ciekawe i podchwytliwe pytanie z JavaBlackBelt dotyczące postinkrementacji (a++) oraz instrukcji if/else if/else

/**
 * Przykład postinkrementacji i warunków logicznych
 */
public class Increment {
	public static void main(String[] args) {
		int a = 0;
		if (a++ == 1) {
			a++;
			System.out.println(&#34;1: a=&#34;+a);
		} else if (a++ &#60; 0) {
			a++;
			System.out.println(&#34;2: a=&#34;+a);
		} else {
			a += 2;
			System.out.println(&#34;3: a=&#34;+a);
		}
		System.out.println(&#34;4: a=&#34; + a);
	}
	/**
	 * Rezultat
	 * 3: [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/10/postinkrementacja-warunki-logiczne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>try-catch-finally</title>
		<link>http://blog.swierczyna.eu/javaplanet/2009/10/try-catch-finally/</link>
		<comments>http://blog.swierczyna.eu/javaplanet/2009/10/try-catch-finally/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 11:06:28 +0000</pubDate>
		<dc:creator>seba</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaBlackBelt]]></category>
		<category><![CDATA[scjp]]></category>
		<category><![CDATA[wyjątki]]></category>

		<guid isPermaLink="false">http://blog.swierczyna.eu/javaplanet/?p=144</guid>
		<description><![CDATA[Kolejne, ciekawe pytanie z JavaBlackbelt (lekko zmodyfikowany) dotyczące konstrukcji try/catch/finally
Warto zwrócić uwagę na trochę nieoczekiwane działanie w przypadku gdy w metodzie finally użyjemy return


public class TestException {

	public static void main(String[] args) {
		String s = &#34;BIRD&#34;;

		try {
			String x = &#34;DOG&#34;;
			throw new Exception();
		} catch (Exception e) {
			System.out.println(&#34;Catch block&#34;);
			s = &#34;MOOSE&#34;;
		} finally {
			s = &#34;GOAT&#34;;
			/*
			 * do zmiennej [...]]]></description>
		<wfw:commentRss>http://blog.swierczyna.eu/javaplanet/2009/10/try-catch-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
