現在、バイトコード分析を扱うプロジェクトに取り組んでいます。私はコードに出くわしました、
char[] buff = new char[1];
//some code tainting the buff
return (new String(buff));
バイトコードで、関連するマッピングnew String(buff)
が
Ljava/lang/StringValue.cache
cache
この分野がどこからシナリオに来るのか、誰か説明できますか?
jdk i.6、StringValueからのものです。説明によると、「このクラスは、値を格納するために文字列で使用される文字配列を操作する静的メソッドのみで構成されています。」
誰でもこれに光を当てることができますか?その目的は実際には何ですか?それは主に、引数として文字列に渡される、使用した文字バッファーが原因だと思います。このクラスはバッファの内容を変更するのではなく、バッファの内容が文字列を初期化するためだけのものであることを示す単なるゲートウェイだと思います。