Tworzenie obiektów o jednym imieniu w for

0

Cześć wszystkim.
Pogubiłem się w bardzo podstawowej sprawie, w tym forze tworzymy dwa razy obiekt o imieniu t. Czy to znaczy, że obiekt pod indeksem [0] umiera, a jego miejsce zajmuje obiekt pod indeksem [1]?

  for(int i = 0; i < 2; i++){
            Thread t = new Thread(new MyThread(numClass));
            t.setName("Thread " + i);
            t.start();
}

Dzięki za pomoc.

9

Wszystkie obiekty muszą umrzeć.
Jednakowoż, życie obiektu i życie referencji do niego to nie to samo.
t to referencja (co nazwałeś imieniem). To bardziej etykietka. Obiekt nawet nie ma pojęcia jak go nazywają!
Jeden obiekt może być widoczny pod wieloma nazwami.
Jeśli jednak na obiekt nie wskazują żadne referencje to wtedy kostucha wyciąga po niego swe plugawe ręce i myk - wywala z RAMu.
Dla większego zamotania w twoim kodzie obiekty to wątki. Wątki jako obiekty żyją (dodatkowo) też przynajmniej na tyle długo, żeby wykonać swój kod ( ten w metodzie run). (Uproszczenie - są jeszcze demony).
Przykład bez wątków i pętli.

String prezes = "Krzysztof";
String księgowy = "Mirosław";
String czesław = "Marek";
//pyk i zmiany stanowisk
preses = księgowy;
księgowy = czesław;
/*mimo, że podstawiliśmy pod ksiegowego kogo innego(Marek), to Mirosław żyje - jako prezes. Marek za to jest widoczny jako ksiegowy... i nadal jest czesław- em. 
Tylko Krzysztof ma pecha. Nikt go już nie potrzebuje. Nie ma jak do niego dotrzeć przez referencje. Czeka na śmierć smutno, cicho, na stercie.*/

1

Jesli w przykladzie zastosujesz Long zamiast Thread to odpowiedz brzmi:

  • tak, ewentualnie umieraja przy nastepnej kolekcji pamieci

Jesli nie pokazesz swojej klasy MyThread to odpowiedz brzmi:

  • nigdy nie wiadomo
  • najdalej do konca dzialania jvmki (kill -9)

https://www.baeldung.com/java-thread-stop

1 użytkowników online, w tym zalogowanych: 0, gości: 1