Internowanie łańcuchów lub internalizacja łańcuchów – metoda przechowywania i dostępu do obiektów typu String, w której identyfikatorem konkretnego obiektu znajdującego się w pamięci jest unikatowy łańcuch znaków stanowiący jednocześnie jego wartość. Bezpośrednie odwołania do tak przechowywanego obiektu polegają na podaniu jego nazwy jednoznacznie identyfikującej jego instancję, niezależnie od umiejscowienia w kodzie.
Internalizację łańcuchów można zobrazować stosując porównanie do obiektów tworzonych na podstawie klasy string z języka C++:
#include <iostream> #include <string>
using std::string;
int main (int argc, char *argv[]) { string a("tekst"); string b("tekst"); const char *ap = a.c_str(); const char *bp = b.c_str();
std::cout << "a = " << a << " (" << &ap << ")" << std::endl << "b = " << b << " (" << &bp << ")" << std::endl;
return(0); }
Gdyby w powyższym przykładzie użyto łańcuchów internalizowanych zamiast typowych obiektów typu string to wartości stałych wskaźnikowych ap i bp byłyby takie same.