1.使用StringBuilder或StringBuffer代替string
不要像这样使用重复的字符串连接:s += item ,因为它的时间效率是O(n^2)。
使用StringBuilder或者StringBuffer时,可以使用append()方法添加文本和使用toString()方法去获取连接起来的整个文本。
优先使用StringBuilder,因为它更快。StringBuffer的所有方法都是同步的,而你通常不需要同步的方法。其实在实际的项目中有很少地方需要考虑到同步问题。
所以经常使用StringBuilder吧
例子:
String join(List<String> strs) {
StringBuilder sb =
new
StringBuilder();
boolean
first =
true
;
for
(String s : strs) {
if
(first) first =
false
;
else
sb.append(
" and "
);
sb.append(s);
}
return
sb.toString();
}
2.启动一条线程
实现线程有如下3种方式: 方式1:实现Runnnable的方式:
void startAThread0() {
new Thread(new MyRunnable()).start();
}
class MyRunnable implements Runnable {
public void run() {
...
}
}
方式2:继承Thread的方式:
void startAThread1() {
new MyThread().start();
}
class MyThread extends Thread {
public void run() {
...
}
}
方式3:匿名继承Thread的方式:
void startAThread2() {
new Thread() {
public void run() {
...
}
}.start();
}
不要直接调用run()方法。总是调用Thread.start()方法,这个方法会创建一条新的线程并使新建的线程调用run()。