Archive for the ‘Java SE’ Category

Autoboxing i Unboxing w Javie

Dobry opis autoboxingu i unboxingu w Javie. Sporo przykładów, dobrych i złych praktyk oraz pułapek z nimi związanych.

Java Puzzle: unreachable statement

Interesująca zagadka dotycząca kompilatora oraz fragmentów kodu, do których nigdy nie dojdzie sterowanie.

Spring Framework Tutorial

Fajne wprowadzenie do Springa: Arpit Mandliya – Introduction to Spring Framework.

Java Anti-Patterns

Pokaźna lista antywzorców w Javie: Java Anti-Patterns.

Testowanie wyjątków w Javie

Rafał Roppel, architekt oprogramowania w Wirtualnej Polsce, opisuje techniki testowania wyjątków w Javie.

Project Lombok – no more boilerplate code

Jeśli nudzi Cię żmudne pisanie (lub generowanie przez IDE) getterów, setterów, konstruktorów, hashcode’ów, equalsów, toStringów itd, to Lombok jest właśnie dla Ciebie.

Oto kilka jego możliwości.
Read the rest of this entry »

Wyrażenie regularne sprawdzające, czy liczba jest pierwsza

Wyrażenie regularne, które potrafi sprawdzić, czy dana liczba jest pierwsza.

^1?$|^(11+?)\1+$

import static java.lang.System.*;

public class Prime {

	public static final String PRIME_REGEX = "^1?$|^(11+?)\\1+$";

	public static boolean isPrime(int i) {
		String s = "";
		while (i > 0) {
			i--;
			s += "1";
		}
		return !Pattern.matches(PRIME_REGEX, s); // escape the \1
	}

	public static void main(String[] args) {

		final int i = Integer.parseInt(args[0]);
		final boolean isPrime = isPrime(i);
		out.println(i + " is" + (isPrime ? "" : " not") + " a prime number");
	}
}
<barista@javaczyherbata.pl> java Prime 9
9 is not a prime number

Jak to działa?
Read the rest of this entry »

Functional Thinking with Neal Ford

Wystąpienie Neala Forda z konferencji JaxConf 2012.

Argumenty a parametry metody

Czy istnieje różnica pomiędzy argumentami a parametrami metody?

  • Parametry metody to nazwy zmiennych w jej deklaracji/definicji
  • Argumenty metody to nazwy zmiennych przekazywane do niej w momencie wywołania
public class Calculator {

	// a i b są parametrami
	public int add(final int a, final int b) {
		return a + b;
	}
}

public class CalculatorTester {

	public static void main(String[] args) {
		Calculator c = new Calculator();
		// 1 i 5 są argumentami
		final int sum = c.add(1, 5);
		System.out.println("sum = " + sum);
	}
}

Bytecodem po Cassandrze, część 2

Druga część artykułu autorstwa Jacka Gerbszta – samodzielnego programisty Java w Wirtualnej Polsce – przedstawiającego instrumentację za pomocą ASMifier z biblioteki ObjectWeb ASM: Bytecodem po Cassandrze, część 2.