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 »
Darmowy kurs Scali prowadzony przez Martina Odersky’ego
18 września zaczyna się darmowy kurs Functional Programming Principles in Scala prowadzony przez Martina Odersky’ego – twórcę Scali i jednego z projektantów typów generycznych w Javie.
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.
Optymalizacja wydajności JVM, część 2
Druga część artykułu autorstwa Evy Andreasson pt. „JVM performance optimization, Part 2: Compilers. Use the right Java compiler for your Java application” opublikowanego na JavaWorld.com.
Link do poprzedniej części:
Part 1: A JVM technology primer. Java performance for absolute beginners
Nagrania video z konferencji Confitura 2012
Design by Contract w Java, część 1
Łukasz Dembiński, kierownik Zespołu Architektów w Wirtualnej Polsce opowiada o Programowaniu Kontraktowym: Design by Contract w Java, część 1.
Joda Time – Java date and time API
Joda Time to open-source’owa, zaawansowana biblioteka rozwiązująca większość problemów, które przysparzają java.util.Calendar, java.util.Date i inne klasy związane z czasem.
Metoda gumowej kaczuszki
Metoda gumowej kaczuszki to nieformalny sposób debugowania kodu. Podczas inspekcji kodu, programista szukający błędów w kodzie, trzyma w pobliżu gumową kaczuszkę lub inny przedmiot. Linia po linii tłumaczy kaczuszce działanie każdego kawałka kodu. W trakcie rewizji zazwyczaj wychodzą na jaw błędy logiczne lub syntaktyczne.
Jest to odmiana metody myślenia na głos. Dokładniejszy opis postępowania można znaleźć na stronie Rubber Duck Debugging.