Onde residem literais de seqüência de caracteres Java e .NET?
Um recentepergunta sobre literais de string no .NET chamou minha atenção. Eu sei que literais de string sãointernado para que cadeias diferentes com o mesmo valor se refiram ao mesmo objeto. Eu também sei que uma string pode ser internada em tempo de execução:
string now = DateTime.Now.ToString().Intern();
Obviamente, uma string que é internada em tempo de execução reside na pilha, mas eu assumi que um literal é colocado no segmento de dados do programa (e disse isso no meuresponda à referida pergunta). No entanto, não me lembro de ter visto isso em lugar nenhum. Presumo que seja esse o caso, pois é assim que eu faria e o fato de que oldstr
A instrução IL é usada para obter literais e nenhuma alocação parece ocorrer parece me apoiar.
Para encurtar a história, onde residem os literais de string? Está na pilha, no segmento de dados ou em algum lugar em que não pensei?
Editar: Se literais de stringFaz residir na pilha, quando eles são alocados?