1 String: 字符串常量,每次改变都会生成一个新的对象
StringBuffer:线程安全 变量:改变不会生成一个新的对象
StringBuilder:非线程安全
在非多线程的情况下,用StringBuilder会快些
2 Activity的四种启动模式:
SingleTop: 栈顶正好是该Activity就直接重用
SingleTask:如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的
onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会 被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
SingleInstance: 在一个新栈中创建该Activity实例,并让多个应用共享该栈中的该Activity 实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改 Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个 应用,不管谁激活该Activity都会进入同一个应用中。
Standard:每次激活Activity时都会创建Activity,并放入任务栈中。
灵活使用可以节省系统开销 提高效率
3 wait()与sleep()
sleep来自Thread类,和wait来自Object类 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。