Kluczem do zrozumienia PI (IP) jest koncepcja tożsamości (deklaracji lub typu) zmiennych. W powyższym kodzie mamy symbol „i”, który w tym przypadku jest licznikiem pętli. W wielkich programach symbol ten może być użyty wiele razy, i do tego do różnych celów. Rozważmy na przykład taki kod:

String i = "Jestem Polką/Polakiem"; for (int i = 1; i <= 10; ++i) { System.out.println(i); } System.out.println(i);

Jest on całkowicie poprawny, nawet jeśli wygląda dość ułomnie. Znaczenie symbolu „i” zmienia się – na górze i na dole wskazuje na znakowy (string) obiekt zawierający wartość „Jestem Polką/Polakiem”, a w pętli oznacza jak poprzednio wartość licznika typu integer. Tożsamość „i” zmienia się zgodnie z ogólną cechą większości języków programowania – definiowania tożsamości na podstawie tego, gdzie jest zawarty symbol, czyli jego zasięgu, jak też innych różnych reguł. W kodzie ciągnącym się przez wiele stron trudnym staje się określenie, który symbol odnosi się do jakiego obiektu. Jeśli podejmie się decyzje o zmianie nazwy jednego z nich, to należy starannie sprawdzić cały kod, aby stwierdzić gdzie jest on używany.