Line 99: | Line 99: | ||
} |
} |
||
</source> |
</source> |
||
+ | |||
+ | |||
+ | ===Auto Boxing/ Auto unboxing === |
Revision as of 14:52, 16 November 2013
doc & reference
- http://howtodoinjava.com/ - how to do in java. A very good guy who share lots of his experience
- http://www.mkyong.com/ - Another site which you can find java dev experience
- http://www.careercup.com/ - career cup. A site you can find interview questions.
Singleton
- http://www.infoq.com/cn/articles/double-checked-locking-with-delay-initialization - singleton double check locking and lazy initialize
- http://en.wikipedia.org/wiki/Singleton_pattern#Lazy_initialization
static synchronized method
- difference between static synchronized method and non-static synchronized method
- The lock objects are difference between static synchronized method and non-static synchronized method. Static synchronized method lock object is class object (lock object: FooClass.class), non-static synchronized lock object is instance object (lock object: this).
public class Foo {
public static synchronized void methodA() {}
public synchronized void methodB() {}
}
It's roughly equals
public class Foo {
public static void methodA() {
synchronized(Foo.class) {
...
}
}
public void methodB() {
synchronized(this){
}
}
}
HashMap
- http://howtodoinjava.com/2012/10/09/how-hashmap-works-in-java/ - how HashMap work in java
- http://howtodoinjava.com/2012/10/09/working-with-hashcode-and-equals-methods-in-java/ - working with equals(), hashCode() in java
Java 5 new features
Generics
- Add compile time type safe
- Elimination drudgery class casting
old style:
List list = new ArrayList();
...
String s = (String)list.get(0);
new style:
List<String> list = new ArrayList<String>();
...
String s = list.get(0);
Enhance for Loop
- The new enhanced for loop provides a simple, consistent syntax for iterating over collections and arrays.
old style:
String[] arr = new String[]{"alpha", "beta"};
for (int i=0; i<=arr.length; i++) {
String t = arr[i];
System.out.println(t);
}
new style:
String[] arr = new String[]{"alpha", "beta"};
for (String s : arr) {
System.out.println(s);
}
- some limitation of enhance loop, some time we need index and iterator
example need index:
for (int i=0; i<numbers.length; i++) {
if (i !=0 && i != numbers.length - 1) {
System.out.println(",");
}
System.out.println(numbers[i]);
}
example need iterator:
for (Iterator<String> it = n.iterator(); it.hasNext(); ) {
if (it.next() < 0) it.remove();
}