目前我正在从事一个处理字节码分析的项目。我遇到了代码,
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。根据描述,“这个类完全由静态方法组成,这些方法对字符串用于存储值的字符数组进行操作。”
任何人都可以对此有所了解吗?它的实际目的是什么?我认为这主要是因为他们使用的字符缓冲区作为参数传递给字符串。这个类并没有修改缓冲区的内容,而是我认为它只是一个网关来说明缓冲区的内容仅用于初始化一个字符串。