RtfYvi9yJ0uWL
Ilustracja przedstawia wiązki kolorowych świateł.

I_R_W13A_M03_JAVA Zaawansowane  struktury danych

Źródło: WrongTog, domena publiczna.
Polecenie 1

Zapoznaj się z prezentacją, w której porównujemy stos i stertę oraz wykonaj ćwiczenie.

R6zHBXjJJ3wOS1
h

Podczas działania programu dane mogą być przechowywane w różnych obszarach pamięci. W uproszczonym modelu działania Javy przyjmujemy, że zmienne lokalne i informacje związane z wywołaniem metod znajdują się na stosie, natomiast obiekty utworzone za pomocą operatora new znajdują się na stercie.

Ćwiczenie 1

Specyfikacja problemu:

Przeanalizuj poniższy program:

Linia 1. class Uczen otwórz nawias klamrowy. Linia 2. String imie średnik. Linia 3. int punkty średnik. Linia 4. Uczen otwórz nawias okrągły String imie przecinek int punkty zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. this kropka imie znak równości imie średnik. Linia 6. this kropka punkty znak równości punkty średnik. Linia 7. zamknij nawias klamrowy. Linia 8. zamknij nawias klamrowy. Linia 10. public class Main otwórz nawias klamrowy. Linia 11. static void dodajPunkty otwórz nawias okrągły Uczen uczen przecinek int ile zamknij nawias okrągły otwórz nawias klamrowy. Linia 12. uczen kropka punkty znak równości uczen kropka punkty plus ile średnik. Linia 13. zamknij nawias klamrowy. Linia 15. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 16. Uczen uczen1 znak równości new Uczen otwórz nawias okrągły cudzysłów Anna cudzysłów przecinek 10 zamknij nawias okrągły średnik. Linia 17. Uczen uczen2 znak równości uczen1 średnik dodajPunkty otwórz nawias okrągły uczen2 przecinek 5 zamknij nawias okrągły średnik. Linia 18. System kropka out kropka println otwórz nawias okrągły uczen1 kropka punkty zamknij nawias okrągły średnik. Linia 19. System kropka out kropka println otwórz nawias okrągły uczen2 kropka punkty zamknij nawias okrągły średnik. Linia 20. zamknij nawias klamrowy. Linia 21. zamknij nawias klamrowy.
  1. Określ, ile obiektów klasy Uczen zostało utworzonych w programie.

  2. Wskaż, które elementy programu możemy w uproszczeniu powiązać ze stosem, a które ze stertą. 

  3. Wyjaśnij, co dzieje się po wykonaniu instrukcji:

Linia 1. Uczen uczen2 znak równości uczen1 średnik.
  1. Określ, jakie wartości zostaną wyświetlone przez program. 

  2. Wyjaśnij, dlaczego zmiana liczby punktów za pomocą zmiennej uczen2 wpływa również na wartość odczytaną za pomocą zmiennej uczen1.