RIL.java【2】

1.

synchronized
(sPoolSync
) {

------------------------------------------------------
Java 的同步机制:
Java的同步分同步方法和同步语句块,无论何种同步,其加锁的对象都是一个对象。

同步方法:
其加锁对象是该方法所属的类的实例,和
synchronized (this)具有同样的效果,例如类A有两个对象a1和a2,其中有一个同步方法func1:

class A{
synchronized void func1(){
dosomething...
}
}

A a1,a2;

当线程1中调用a1访问方法func1时,线程2中调用a1访问方法func1将会被阻塞,而如果在线程2中调用a2来访问func1则不会阻塞。

同步语句块:
void func()
{
private byte[] lock = new byte[0];
synchronized (lock){
dosomething
}
}
同步语句块的作用是只有在拿到了该同步锁后才能执行其语句块。

2.
static RILRequest obtain (int request , Message result ) {
----------------------------------------------------------------------------------
通常在需要高效率处理的地方我们可以使用内存池来优化我们的程序,其中最常用的方法就是使用链表是内存池,每次需要创建对象时,首先从
已经分配的对象链表中查找,如果有空闲的对象,则直接返回该对象,如果没有则创建一个新的对象,并将该对象加入到内存池链表中,同时
在程序使用完该对象时应释放该对象回内存池供下次使用。

3.
StringBuilder sb = new StringBuilder (8 );
---------------------------------------------------------
String,StringBuffer,StringBuilder的区别:
String是一个不可变对象,在对String对象进行修改时实际上相当于重新创建了一个String对象,因此对于经常变化的字符串最好不要使用
String来操作。
StringBuffer是一个可变的对象,在对其字符串修改时是直接修改其内容,不会创建新的对象,因此大部分情况下我们应该使用StringBuffer,
同时StringBuffer是线程安全的。
StringBuilder与StringBuffer类似,但不是线程安全的,只是其速度快些,所以如果能确保只有一个线程使用的,字符串又需要经常修改的
话最好用StringBuilder.

你可能感兴趣的:(java,优化,String,Class,byte)