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?

questionAnswers(7)

yourAnswerToTheQuestion