Chapter 15 API
java.util.logging package
The constructor of Logger class is protected. If Logger instance is needed, must use static function getLogger().
e.g.
Logger logger = Logger.gerLogger("cc.openhome.Main");
//Logger logger = Logger.gerLogger(Main.class.getName());
//If you add '.class' you can get the class instance, then '.getName' can get the full name
ResourceBundle
for changeable information, it is considerable to move it out of program.
.properties must be put in classpath.
Locale
It contains two points: Language code & Country code.
Language code:
ca: Catalan
zh: Chinese
Country code:
IT: Italy
TW: Taiwan
CN: China
Regular Expression
Character class:
[ ] means if any:
for (String token : "Justin1Monica2Irene3".split("[123]")) {
out.println(token);
}
means from to:
[1-5], [a-z]
^ means without:
[^abc]
Greedy quantifier, Reluctant quantifier
Greedy quantifier will find the suitable words as longer as possible.
\d{4}-\d{6} equals \d\d\d\d-\d\d\d\d\d\d
xfooxxxxxxxfo if compared by .*foo, it 's the full
Reluctant quantifier will find the suitable words as shorter as possible.
xfooxxxxxxxfo if compared by .*?foo, there will be two: xfoo and xxxxxxxfo
Possessive quantifier will eat all suitable words and won't back-up
xfooxxxxxxxfo if compared by .?+foo, there's none left, because .+ is suitable for xfooxxxxxxxfo, so nothing left.