2012-05-09 6 views
4

キャッシュされた文字列とは何ですか?またはの文字列のキャッシュとは何ですか?私はこの言葉をJNIで何度も読んだことがありますが、それが何であるか分かりません。キャッシュされた文字列は何ですか?

+2

もう少し具体的にする必要があるかもしれません...キャッシュは、パフォーマンス目的ではかなり一般的なテクニックです...あなたが参照するドキュメントを指摘してください。 – yair

+0

ここでそれを読む?それについて何か言っていますか? – EJP

答えて

1

cacheはパフォーマンス(JNIにとって重要です)を改善し、メモリ使用量を削減します。あなたは、単純なキャッシュアルゴリズムは、仕事ができるか関心がある場合はここで

は、単純な文字列のキャッシュ例である - しかし、これは本当に単なる一例であり、私はあなたが実際にあなたのコードでそれを使用する必要があります示唆していない:

public class StingCache { 

    static final String[] STRING_CACHE = new String[1024]; 

    static String getCachedString(String s) { 
     int index = s.hashCode() & (STRING_CACHE.length - 1); 
     String cached = STRING_CACHE[index]; 
     if (s.equals(cached)) { 
      return cached; 
     } else { 
      STRING_CACHE[index] = s; 
      return s; 
     } 
    } 

    public static void main(String... args) { 

     String a = "x" + new Integer(1); 
     System.out.println("a is: [email protected]" + System.identityHashCode(a)); 

     String b = "x" + new Integer(1); 
     System.out.println("b is: [email protected]" + System.identityHashCode(b)); 

     String c = getCachedString(a); 
     System.out.println("c is: [email protected]" + System.identityHashCode(c)); 

     String d = getCachedString(b); 
     System.out.println("d is: [email protected]" + System.identityHashCode(d)); 

    } 

} 
+3

あなたのリンクから 'Cache(Utah)'を選択しました。しかし助けてくれなかった: –

+0

おそらく彼/彼女はJNIのキャッシュされた文字列が何であるかを知りたがっているかもしれない。 – gd1

+0

私はもともとドイツのリンクを手に入れていて、明らかに...固定。 –

関連する問題