Archive for the ‘Ciekawostki’ Category

NoClassDefFoundError vs ClassNotFoundException

java.lang.NoClassDefFoundError i java.lang.ClassNotFoundException brzmią bardzo podobnie ze względu na swoje nazwy i są często mylone. Tak naprawdę ich znaczenie jest różne.

Spójrzmy na hierarchię klas:
Read the rest of this entry »

Jak pobrać PID w runtime’ie?

Jak pobrać PID w runtime’ie? Oto prosty sposób:

import java.lang.management.ManagementFactory;

public class PID {

	public static void main(String[] args) {
		final String vmName = ManagementFactory.getRuntimeMXBean().getName();
		final int position = vmName.indexOf('@');
		final String pid = vmName.substring(0, position);
		System.out.println("Your PID is: " + pid);
	}
}

Nagrania video z konferencji JDD 2012

Są już dostępne nagrania prezentacji z konferencji JDD 2012. Poniżej zamieszczam kilka najciekawszych* według mnie.
Read the rest of this entry »

Zagadka z Iteratorem

Ciekawa zagadka znaleziona w sieci. Należy tak poprawić poniższy kod, aby na ekranie wyświetlił się napis Hello World. Oczywiście wyjątek ConcurrentModificationException (ani żaden inny) nie może się pojawić. Pozostałe obostrzenia to:

  • w żaden sposób nie wolno modyfikować kodu poza sekcją FIXME
  • nie wolno użyć refleksji
  • cały poniższy kod musi się wykonać; nie można użyć System.exit(0) lub return
public class IteratorPuzzle {

	public static void main(String[] args) {
		final List list = new ArrayList() {{ add("Hello"); }};
		final Iterator iterator = list.iterator();
		System.out.print(iterator.next());
		list.add("World");
		// FIXME: tutaj dopisujemy kod
		System.out.println(" " + iterator.next());
	}
}

Powodzenia:)

JRebel i IntelliJ IDEA

Anton Arhipov product lead JRebela demonstruje jego użycie z IntelliJ IDEA.

Więcej informacji na stronie ZeroTurnaround.

Ify to zło?

Tomasz Nurkiewicz, znany m.in. ze stackoverflow opowiada o znanej wszystkim konstrukcji warunkowej if. Pokazuje jak można ją zastąpić dziedziczeniem lub wzorcami projektowymi. W trakcie prezentacji refaktoruje fragmenty kodu naszpikowane konstrukcjami warunkowymi, pełne flag, przełączników i trybów. W metodach i klasach sporo mieszania odpowiedzialności: bezpieczeństwo, transakcje, wielowątkowość, mierzenie czasu i obsługa błędów.

Czy ify są aż tak złe?
Read the rest of this entry »

Darmowy e-kurs MongoDB dla developerów Javy

10gen Education organizuje darmowy e-kurs MongoDB dla developerów Javy. Prowadzącym będzie Andrew Arlichson. Zajęcia zaczynają się 25 lutego.

Link do kursu.

Kursy dla programistów Pythona oraz DBA już wystartowały.

Complexity of Complexity

Złożoność kodu i złożoność systemu to bardzo ważne aspekty wytwarzania oprogramowania. Ken Sipe zwraca uwagę na ich wpływ na (o)programowanie. Wskazuje czynniki, dla których przejmujemy się złożonością, jak zmienia się jej postrzeganie w czasie oraz co możemy na to poradzić. Pokazuje kiedy prostota pomaga, a kiedy przeszkadza. Prezentację kończy dyskusja, jak zachować KISS w aplikacjach dużej skali.
Read the rest of this entry »

Dlaczego klasa String jest immutable w Javie?

Krótki wpis odpowiadający na pytanie, dlaczego klasa String została zaprojektowana w Javie jako niezmiennicza.

Pisz po pijaku, przeglądaj na trzeźwo

Piotr Przybylak opowiada o najważniejszym narzędziu każdego developera – jego mózgu! Odkrywa jego „bugi” i działanie. Pokazuje jak efektywnie połączyć w swojej pracy wykorzystanie przetwarzania świadomego i nieświadomego, racjonalnego i nieracjonalnego. Wszystko w nieco bekowym stylu.
Read the rest of this entry »