javaの性能の優れた資料は3収集します。


ソース:
http://www.cnblogs.com/chinafine/articles/1787118.html

 、               

           ,    ,          ,          ,           ,         。

  :

import java.util.vector;
class cel {
    void method (vector vector) {
        for (int i = 0; i < vector.size (); i++)  // violation
            ; // ...
    }
}


  :

class cel_fixed {
    void method (vector vector) {
        int size = vector.size ()
        for (int i = 0; i < size; i++)
            ; // ...
    }
}



 、 'vectors'   'hashtables'      

jvm vector                    ,              ,  ,         。  vector              。
  ,   10         。                  。

  :

import java.util.vector;
public class dic {
    public void addobjects (object[] o) {
        // if length > 10, vector needs to expand
        for (int i = 0; i< o.length;i++) {    
            v.add(o);   // capacity before it can add more elements.
        }
    }
    public vector v = new vector();  // no initialcapacity.
}


  :
        。

    public vector v = new vector(20);  
    public hashtable hash = new hashtable(10);



    :
dov bulka, "java performance and scalability volume 1: server-side programming
techniques" addison wesley, isbn: 0-201-70429-3 pp.55 – 57

 、 finally    stream

              ,       。    finally    。           ,finally       ,          。
        
  :

import java.io.*;
public class cs {
    public static void main (string args[]) {
        cs cs = new cs ();
        cs.method ();
    }
    public void method () {
        try {
            fileinputstream fis = new fileinputstream ("cs.java");
            int count = 0;
            while (fis.read () != -1)
                count++;
            system.out.println (count);
            fis.close ();
        } catch (filenotfoundexception e1) {
        } catch (ioexception e2) {
        }
    }
}


        
  :
     catch     finally 

    :
peter haggar: "practical java - programming language guide".
addison wesley, 2000, pp.77-79
 、  'system.arraycopy ()'           

'system.arraycopy ()'               。
        
  :

public class irb
{
    void method () {
        int[] array1 = new int [100];
        for (int i = 0; i < array1.length; i++) {
            array1 [i] = i;
        }
        int[] array2 = new int [100];
        for (int i = 0; i < array2.length; i++) {
            array2 [i] = array1 [i];                 // violation
        }
    }
}


        
  :

public class irb
{
    void method () {
        int[] array1 = new int [100];
        for (int i = 0; i < array1.length; i++) {
            array1 [i] = i;
        }
        int[] array2 = new int [100];
        system.arraycopy(array1, 0, array2, 0, 100);
    }
}


        
    :
http://www.cs.cmu.edu/~jch/java/speed.html

 、         getter/setter    ”final”

   getter/setter       final,       ,         ,  ,    ”inlined”

  :

class maf {
    public void setsize (int size) {
         _size = size;
    }
    private int _size;
}



  :

class daf_fixed {
    final public void setsize (int size) {
         _size = size;
    }
    private int _size;
}

   :xiao1227372602;       ,   final           ,                     :       :


public class FinalTest {

	private int size;

	public int getSize() {
		return size;
	}

	public void setSize(int size) {
		this.size = size;
	}
	
	
}

=========================
public class FinalTest2 {

	private int size;

	public  int getSize() {
		return size;
	}

	public final void setSize(int size) {
		this.size = size;
	}
	
	
}
===========================
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		FinalTest ft = null;
		long begin7 = System.currentTimeMillis();
		int i = 0;
		int time = Integer.MAX_VALUE;
		while(i<time){
		ft = new FinalTest();
		ft.setSize(1);
		ft.getSize();
		i++;
		}
		long end7 = System.currentTimeMillis();
		
		System.out.println(end7-begin7);
		ft = null;
		
		System.out.println("================================");
		FinalTest2 ft2 = null;
		long begin8 = System.currentTimeMillis();
		int i2 = 0;
		int time2 = Integer.MAX_VALUE;
		while(i2<time2){
		ft2 = new FinalTest2();
		ft2.setSize(1);
		ft2.getSize();
		i2++;
		}
		long end8 = System.currentTimeMillis();
		
		System.out.println(end8-begin8);
		ft2 = null;

	}

}







    :
warren n. and bishop p. (1999), "java in practice", p. 4-5
addison-wesley, isbn 0-201-36065-9

 、      instanceof  

                 ,instanceof        true。
        
  :        

public class uiso {
    public uiso () {}
}
class dog extends uiso {
    void method (dog dog, uiso u) {
        dog d = dog;
        if (d instanceof uiso) // always true.
            system.out.println("dog is a uiso");
        uiso uiso = u;
        if (uiso instanceof object) // always true.
            system.out.println("uiso is an object");
    }
}


        
  :        
      instanceof  。
        

class dog extends uiso {
    void method () {
        dog d;
        system.out.println ("dog is an uiso");
        system.out.println ("uiso is an uiso");
    }
}



 、          

               object。  ,          “  ”   。  ,                  。
  :

class unc {
    string _id = "unc";
}
class dog extends unc {
    void method () {
        dog dog = new dog ();
        unc animal = (unc)dog;  // not necessary.
        object o = (object)dog;         // not necessary.
    }
}


        
  :        

class dog extends unc {
    void method () {
        dog dog = new dog();
        unc animal = dog;
        object o = dog;
    }
}
   

     
    :
nigel warren, philip bishop: "java in practice - design styles and idioms
for effective java".  addison-wesley, 1999. pp.22-23
 、            , charat()  startswith()

           startswith()       ,         ,   string api      !
        
  :

public class pcts {
    private void method(string s) {
        if (s.startswith("a")) { // violation
            // ...
        }
    }
}


        
          
 'startswith()'    'charat()'.

public class pcts {
    private void method(string s) {
        if ('a' == s.charat(0)) {
            // ...
        }
    }
}

   :xiao1227372602;      ,     :
=============startsWith=============
15433
=============charAt=============
6766
    :
public class SignalString2 {

	public SignalString2(){
		
	}
	
	protected void amethod(String str){
		if(str.startsWith("a")){
			//System.out.println("startsWith");
		}
	}
	

	protected void amethod2(String str){
		if('a'==str.charAt(0)){
			//System.out.println("charAt");
		}
	
	}
}



public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		SignalString2 s2 = new SignalString2();
        
		System.out.println("=============startsWith=============");
		long begin8 = System.currentTimeMillis();
		int i2 = 0;
		int time2 = Integer.MAX_VALUE;
		while(i2<time2){
	    s2.amethod("a");
		i2++;
		}
		long end8 = System.currentTimeMillis();
		
		System.out.println(end8-begin8);
		
        s2 = null;
	    s2 = new SignalString2();
        
        System.out.println("=============charAt=============");
		long begin9 = System.currentTimeMillis();
		int i3 = 0;
		int time3 = Integer.MAX_VALUE;
		while(i3<time3){
	    s2.amethod2("a");
		i3++;
		}
		long end9 = System.currentTimeMillis();
		
		System.out.println(end9-begin9);
	}

}



        
    :
dov bulka, "java performance and scalability volume 1: server-side programming
techniques"  addison wesley, isbn: 0-201-70429-3
 、         'a / b'  

"/"    “  ”   ,             。

  :

public class sdiv {
    public static final int num = 16;
    public void calculate(int a) {
        int div = a / 4;            // should be replaced with "a >> 2".
        int div2 = a / 8;         // should be replaced with "a >> 3".
        int temp = a / 3;
    }
}



  :

public class sdiv {
    public static final int num = 16;
    public void calculate(int a) {
        int div = a >> 2;  
        int div2 = a >> 3;
        int temp = a / 3;       //          
    }
}
   :xiao1227372602;        9:1;


 、        'a * b'

  。
[i]      ,             ,      ,             ,        。                        。

  :

public class smul {
    public void calculate(int a) {
        int mul = a * 4;            // should be replaced with "a << 2".
        int mul2 = 8 * a;         // should be replaced with "a << 3".
        int temp = a * 3;
    }
}



  :

package opt;
public class smul {
    public void calculate(int a) {
        int mul = a << 2;  
        int mul2 = a << 3;
        int temp = a * 3;       //     
    }
}



  、         ,   ' '    " ",              


  :

public class str {
    public void method(string s) {
        string string = s + "d"  // violation.
        string = "abc" + "d"      // violation.
    }
}


  :
            ' '

public class str {
    public void method(string s) {
        string string = s + 'd'
        string = "abc" + 'd'   
    }
}


  、        synchronized(  )  

               ,                  。

  :

import java.util.vector;
public class syn {
    public synchronized void method (object o) {
    }
    private void test () {
        for (int i = 0; i < vector.size(); i++) {
            method (vector.elementat(i));    // violation
        }
    }
    private vector vector = new vector (5, 5);
}



  :
             ,        ,      :

import java.util.vector;
public class syn {
    public void method (object o) {
    }
private void test () {
    synchronized{//              
            for (int i = 0; i < vector.size(); i++) {
                method (vector.elementat(i));   
            }
        }
    }
    private vector vector = new vector (5, 5);
}



  、 try/catch     

 try/catch       ,        ,    jit               jit jvm,      21%  !
        
  :        

import java.io.fileinputstream;
public class try {
    void method (fileinputstream fis) {
        for (int i = 0; i < size; i++) {
            try {                                      // violation
                _sum += fis.read();
            } catch (exception e) {}
        }
    }
    private int _sum;
}


        
  :        
 try/catch             
  

 void method (fileinputstream fis) {
        try {
            for (int i = 0; i < size; i++) {
                _sum += fis.read();
            }
        } catch (exception e) {}
    }


        
    :
peter haggar: "practical java - programming language guide".
addison wesley, 2000, pp.81 – 83

  、  boolean ,          

   boolean    true         (     boolean    ).     boolean           2   :
1)        (        5   );
2)         。

  :

public class ueq
{
    boolean method (string string) {
        return string.endswith ("a") == true;   // violation
    }
}



  :

class ueq_fixed
{
    boolean method (string string) {
        return string.endswith ("a");
    }
}



  、       , 'string'    'stringbuffer'

               。
  :

public class usc {
    string method () {
        stringbuffer s = new stringbuffer ("hello");
        string t = s + "world!";
        return t;
    }
}



  :
 stringbuffer  string,      string      ,             。

  、 'stringtokenizer'    'indexof()'  'substring()'

                 。  indexof() substring()           stringindexoutofboundsexception。   stringtokenizer             ,       。

  :

public class ust {
    void parsestring(string string) {
        int index = 0;
        while ((index = string.indexof(".", index)) != -1) {
            system.out.println (string.substring(index, string.length()));
        }
    }
}


    :
graig larman, rhett guthrie: "java 2 performance and idiom guide"
prentice hall ptr, isbn: 0-13-014260-3 pp. 282 – 283

  、         "if (cond) return; else return;"   

          
  :

public class if {
    public int method(boolean isdone) {
        if (isdone) {
            return 0;
        } else {
            return 10;
        }
    }
}



  :

public class if {
    public int method(boolean isdone) {
        return (isdone ? 0 : 10);
    }
}


  、         "if (cond) a = b; else a = c;"   

  :

public class ifas {
    void method(boolean istrue) {
        if (istrue) {
            _value = 0;
        } else {
            _value = 1;
        }
    }
    private int _value = 0;
}



  :

public class ifas {
    void method(boolean istrue) {
        _value = (istrue ? 0 : 1);       // compact expression.
    }
    private int _value = 0;
}


  、            

                    

  :        

import java.util.vector;
public class loop {
    void method (vector v) {
        for (int i=0;i < v.size();i++) {
            object o = new object();
            o = v.elementat(i);
        }
    }
}


        
  :        
         ,             

import java.util.vector;
public class loop {
    void method (vector v) {
        object o;
        for (int i=0;i<v.size();i++) {
            o = v.elementat(i);
        }
    }
}



  、   stringbuffer   

stringbuffer             (   16)     。    ,        ,        ,         ,           ,       。       ,      stringbuffer       ,                  ,     。

  :        

public class rsbc {
    void method () {
        stringbuffer buffer = new stringbuffer(); // violation
        buffer.append ("hello");
    }
}


        
  :        
 stringbuffer     。        

public class rsbc {
    void method () {
        stringbuffer buffer = new stringbuffer(max);
        buffer.append ("hello");
    }
    private final int max = 100;
}


        
    :
dov bulka, "java performance and scalability volume 1: server-side programming
techniques" addison wesley, isbn: 0-201-70429-3 p.30 – 31

   、         

            ,                 。static? local?      ?                       2-3     。
        
  :

public class usv {
    void getsum (int[] values) {
        for (int i=0; i < value.length; i++) {
            _sum += value[i];           // violation.
        }
    }
    void getsum2 (int[] values) {
        for (int i=0; i < value.length; i++) {
            _staticsum += value[i];
        }
    }
    private int _sum;
    private static int _staticsum;
}     


        
  :        
    ,                 。
            getsum()  :        

void getsum (int[] values) {
    int sum = _sum;  // temporary local variable.
    for (int i=0; i < value.length; i++) {
        sum += value[i];
    }
    _sum = sum;
}


        
    :        
peter haggar: "practical java - programming language guide".
addison wesley, 2000, pp.122 – 125

   、           (!)

     (!)        ,        。

  :

public class dun {
    boolean method (boolean a, boolean b) {
        if (!a)
            return !a;
        else
            return !b;
    }
}



  :
             (!)

   、        instanceof  

             ,           ,      。    ,       instanceof  ,                    。

  :

public class insof {
    private void method (object o) {
        if (o instanceof interfacebase) { }  // better
        if (o instanceof classbase) { }   // worse.
    }
}

class classbase {}
interface interfacebase {}



    :
graig larman, rhett guthrie: "java 2 performance and idiom guide"
prentice hall ptr, 2000.  pp.207

    17:26
       (26)
       (0)
      : java 

2010-05-12
    
Java      
    :Java  
  :http://blog.csdn.net/kome2000/archive/2010/04/28/5537591.aspx


[size=small] JAVA   ,              JAVA  ,      。             ,           。

1.     final   。
  final           。 JAVA  API ,     final   ,   java.lang.String。 String   final        length()  。  ,      final ,         final 。java          (inline)   final  (            )。            50%。

2.      。
   String      ,             StringBuffer  ,              ,                        。                        。

3.         。
                            (Stack) ,    。    ,     ,     ,   (Heap)   ,    。

4.         。
     ,         ,java            ,         null,       0,float double     0.0,      false。            ,         ,   new          ,                    。
      ,                      ,          initXXX() ,                             ,public int state = this.getState();

5. java+Oracle        ,java    SQL           ,   Oracle        。

6.java     ,       ,I/O   ,      ,         。                    。

7.                 ,   ,       ,  ,                  。
JVM GC      ,            ,     null。

8.        ,                。

9.            。
  

for(int i=0;i<list.size();i++) 


    

for(int i=0,len=list.size();i<len;i++)



10.                 。
  :

String str="abc";
if(i==1){ list.add(str);}


    :

if(i==1){String str="abc"; list.add(str);}



11.    ,       。
               。Throwable           fillInStackTrace()     ,fillInStackTrace()     ,        。        ,VM        ,                 。
          ,           。

12.        Try/Catch  ,  Try/Catch       。
Error         ,           。       Exception      ,      Exception     ,   Error  。

13.  StringBuffer               ,        。
StringBuffer      16, StringBuffer          ,             2 +2,   2*n+2。    ,  StringBuffer        ,               ,          ,        。   StringBuffer             ,      !

14.    java.util.Vector。
Vector  StringBuffer  ,       ,                  。Vector        10   ,    。
vector.add(index,obj)          obj   index  , index                   (      1)。     ,       。
       remove(int index)  ,             。         (      1)。           。    vector           1        。          removeAllElements()  。
     vector           vector.remove(obj);           ,   , int index = indexOf(obj);vector.remove(index);

15.        ,   System.arraycopy();

16.    ,        。

17.  new          。
  new          ,                    。          Cloneable  ,        clone()   。clone()             。
   Factory         。

public static Credit getNewCredit()
{
    return new Credit();
}


        clone()   ,

private static Credit BaseCredit = new Credit();
public static Credit getNewCredit()
{
    return (Credit)BaseCredit.clone();
}


18.            ,       ,       ,         ,    。

19.        :public static final。

20.HaspMap   。

Map<String, String[]> paraMap = new HashMap<String, String[]>();
for( Entry<String, String[]> entry : paraMap.entrySet() )
{
    String appFieldDefId = entry.getKey();
    String[] values = entry.getValue();
}


          Entry       ,  entry       key  value。

21.array(  ) ArrayList   。
array       ,     ,      ,ArrayList        ,      。

22.         HashMap, ArrayList,    ,       HashTable,Vector,         ,      。

23.StringBuffer,StringBuilder      :java.lang.StringBuffer            。     String       ,     。StringBuilder     ,         StringBuilder ,            ,         ,      。         ,   StringBuffer  StringBuilder          。       16        。
     ,  StringBuilder    StringBuffer    10%~15%     ,             。          StringBuffer。

24.               。

25.                 ,              。

26.             ,        ,   IDE         。

27.        ,
               ,              。        ,               。            ,               ,               。

28.           GET,SET  。
android   ,             ,             。               get,set  ,         ,      。

29.     ,      。

30.                  ,   10   。

31.SQLite               ,           30-50MS,            ,    ,       ! [/size][align=left][/align]

    16:39
       (27)
       (0)
      : java 

2010-05-12
    
《java  》 
    :Java  
   :http://jiangzhengjun.javaeye.com/blog/652623
     
1.     

     i % 2 == 1         ,  i        ,    i % 2 != 0         ,   

    (i & 1) != 0   。


2.       

System.out.println(2.00 -1.10);//0.8999999999999999




            0.9,        。    1.1              double,     

       double ,    2         ,              0.9 double 。


    ,                          。


                  ,       1.0   10        。


                    ( )   :

System.out.println(200-110);//90




        BigDecimal,     BigDecimal(String)   ,       BigDecimal(double)   (    float double    String    BigDecimal(String)   ,    float double   String      )。
  new BigDecimal(0.1),
      BigDecimal,
  0.1000000000000000055511151231257827021181583404541015625,
    BigDecimal,            

    0.9:

System.out.println(new BigDecimal("2.0").subtract(new BigDecimal("1.10")));// 0.9



  ,             ,   BigDecimal compareTo  。

3. int      

           :

long microsPerDay = 24 * 60 * 60 * 1000 * 1000;//       :86400000000
System.out.println(microsPerDay);//     :500654080



              。         int      ,           ,        long,       :      。
                     long ,                   long     ,         :

long microsPerDay = 24L * 60 * 60 * 1000 * 1000;




4.               

“      ”     int ,         ,  “2147483648”、“0x180000000(    , 33 ,            )”        ,       int      ,      long   “2147483648L”“0x180000000L”。


             ,               ,           ,         

       “-”  。


                       ,     ,         :           

            1,        :

System.out.println(0x80);//128 
//0x81   int ,   ( 32 ) 0,     
System.out.println(0x81);//129 
System.out.println(0x8001);//32769
System.out.println(0x70000001);//1879048193 
//   0x80000001 int ,   ( 32 ) 1,     
System.out.println(0x80000001);//-2147483647
//   0x80000001L    long ,   ( 64 ) 0,     
System.out.println(0x80000001L);//2147483649
//  int 
System.out.println(0x80000000);//-2147483648
//    32 ,          L  long,       
System.out.println(0x8000000000000000L);//-9223372036854775808



       ,             int ,    32 ,       “L”,       。   32,   int  ,  32 ,  long ,       long。


System.out.println(Long.toHexString(0x100000000L + 0xcafebabe));// cafebabe



       0x1cafebabe?                  :     long ,      int  。       ,Java int                 long  ,     long      。  int         ,              。
           0xcafebabe 32 ,     long     0xffffffffcafebabeL,           

 0x100000000L。   int   ,               32  -1,       32  1,   

      0:
  0x 0xffffffffcafebabeL
+0x 0000000100000000L
-----------------------------
0x 00000000cafebabeL

          0x1cafebabe,             “L”       long   ,      

      0:

System.out.println(Long.toHexString(0x100000000L + 0xcafebabeL));// 1cafebabe



5.                         

System.out.println((int)(char)(byte)-1);// 65535



      65535   -1?


                   :              ,         (      

 1,    1,    ,    0);    char,               ,      。


        ,        :  byte       ,    byte  -1(    :11111111) 

  char ,        ,     1,    8 1,   16 1;   char int    ,   

char        ,              ,  int     65535。


     char  c             ,       ,              ,     

       :

int i = c & 0xffff;//      :int i = c ;




     char  c            ,         ,     char     short,  

char         ,        :

int i = (short)c;




     byte  b     char,          ,               :

char c = (char)(b & 0xff);// char c = (char) b;      



[size=medium]
6. ((byte)0x90 == 0x90)?
[/size]
      ,           ,      false。    byte  (byte)0x90 int  0x90,Java

         byte   int,       int  。  byte        ,          

    ,   byte             int (10010000111111111111111111111111 10010000)。    ,    (byte)0x90   int  -112,    int   0x90, +144。


    :                 ,   byte   int。

((byte)0x90 & 0xff)== 0x90




7.      (?:)

char x = 'X';
int i = 0;
System.out.println(true ? x : 0);// X
System.out.println(false ? i : x);// 88



            :
(1)                    ,             。
(2)           T,T  byte、short char,          int   “    ”,  

        T  ,           T。
(3)   ,           ,                            。


              ,             :         char,          

  0 int , 0     char,         char    ;             :  i int

   , x  char   ,     x   int ,          int ,    i   final ,

        char,          ,  final            “    0”      

   :

final int i = 0;
System.out.println(false ? i : x);// X



 JDK1.4     ,      ?:  ,                  ,             

          ,             :

public class T {
 public static void main(String[] args) {
  System.out.println(f());
 }
 public static T f() {
  // !!1.4    , 1.5  
  // !!return true?new T1():new T2();
  return true ? (T) new T1() : new T2();// T1
 }
}

class T1 extends T {
 public String toString() {
  return "T1";
 }
}

class T2 extends T {
 public String toString() {
  return "T2";
 }
}




 5.0      ,                            。             

     。         ,  Object            ,          T,     。
 
 JAVA   ,              JAVA  ,      。             ,           。

1.     final   。
  final           。 JAVA  API ,     final   ,   java.lang.String。 String   final        length()  。  ,      final ,         final 。java          (inline)   final  (            )。            50%。

2.      。
   String      ,             StringBuffer  ,              ,                        。                        。

3.         。
                            (Stack) ,    。    ,     ,     ,   (Heap)   ,    。

4.         。
     ,         ,java            ,         null,       0,float double     0.0,      false。            ,         ,   new          ,                    。
      ,                      ,          initXXX() ,                             ,public int state = this.getState();

5. java+Oracle        ,java    SQL           ,   Oracle        。

6.java     ,       ,I/O   ,      ,         。                    。

7.                 ,   ,       ,  ,                  。
JVM GC      ,            ,     null。

8.        ,                。

9.            。
  
Java   

    for(int i=0;i<list.size();i++)   


    
Java   

    for(int i=0,len=list.size();i<len;i++)  



10.                 。
  :
Java   

    String str="abc";   
    if(i==1){ list.add(str);}  


    :
Java   

    if(i==1){String str="abc"; list.add(str);}  



11.    ,       。
               。Throwable           fillInStackTrace()     ,fillInStackTrace()     ,        。        ,VM        ,                 。
          ,           。

12.        Try/Catch  ,  Try/Catch       。
Error         ,           。       Exception      ,      Exception     ,   Error  。

13.  StringBuffer               ,        。
StringBuffer      16, StringBuffer          ,             2 +2,   2*n+2。    ,  StringBuffer        ,               ,          ,        。   StringBuffer             ,      !

14.    java.util.Vector。
Vector  StringBuffer  ,       ,                  。Vector        10   ,    。
vector.add(index,obj)          obj   index  , index                   (      1)。     ,       。
       remove(int index)  ,             。         (      1)。           。    vector           1        。          removeAllElements()  。
     vector           vector.remove(obj);           ,   , int index = indexOf(obj);vector.remove(index);

15.        ,   System.arraycopy();

16.    ,        。

17.  new          。
  new          ,                    。          Cloneable  ,        clone()   。clone()             。
   Factory         。
Java   

    public static Credit getNewCredit()   
    {   
        return new Credit();   
    }  


        clone()   ,
Java   

    private static Credit BaseCredit = new Credit();   
    public static Credit getNewCredit()   
    {   
        return (Credit)BaseCredit.clone();   
    }  


18.            ,       ,       ,         ,    。

19.        :public static final。

20.HaspMap   。
Java   

    Map<String, String[]> paraMap = new HashMap<String, String[]>();   
    for( Entry<String, String[]> entry : paraMap.entrySet() )   
    {   
        String appFieldDefId = entry.getKey();   
        String[] values = entry.getValue();   
    }  


          Entry       ,  entry       key  value。

21.array(  ) ArrayList   。
array       ,     ,      ,ArrayList        ,      。

22.         HashMap, ArrayList,    ,       HashTable,Vector,         ,      。

23.StringBuffer,StringBuilder      :java.lang.StringBuffer            。     String       ,     。StringBuilder     ,         StringBuilder ,            ,         ,      。         ,   StringBuffer  StringBuilder          。       16        。
     ,  StringBuilder    StringBuffer    10%~15%     ,             。          StringBuffer。

24.               。

25.                 ,              。

26.             ,        ,   IDE         。

27.        ,
               ,              。        ,               。            ,               ,               。

28.           GET,SET  。
android   ,             ,             。               get,set  ,         ,      。

29.     ,      。

30.                  ,   10   。

31.SQLite               ,           30-50MS,            ,    ,       !