1
00:00:01,190 --> 00:00:05,190
Non concentriamoci su un altro su quell'idea che è bloccata.

2
00:00:05,390 --> 00:00:08,940
Ma prima di farlo esaminiamo alcune delle cose che abbiamo trattato finora.

3
00:00:09,890 --> 00:00:15,690
Abbiamo iniziato il capitolo osservando l'apprendimento di una classe quando è stato utilizzato per la prima

4
00:00:15,780 --> 00:00:23,740
volta e studiato circa una vita offerta da tutto questo processo è un oggetto di classe che l'oggetto di classe e tutti

5
00:00:23,740 --> 00:00:28,010
gli oggetti creano molto di ciò che viene memorizzato sul mucchio.

6
00:00:28,020 --> 00:00:33,150
Abbiamo anche appreso che i dati della classe stessa che includono alcune informazioni Mattei

7
00:00:33,150 --> 00:00:36,530
sulla classe più qualsiasi metodo chiamato cresceranno nell'area metropolitana.

8
00:00:36,580 --> 00:00:43,430
Quindi abbiamo oggetti sui bisogni di calore e di vetro nell'area metropolitana non come metodi di un oggetto o di una classe.

9
00:00:43,500 --> 00:00:50,660
Questo è un metodo statico che viene eseguito rispetto a JVM in qualche modo per tenere traccia di questi metodi.

10
00:00:50,680 --> 00:00:55,220
Ad esempio, JVM deve sapere qual è il metodo attualmente in esecuzione.

11
00:00:55,240 --> 00:01:00,460
Ora, se questo è importante nei libri e in Andermatt, allora ha bisogno di tenere traccia di quella materia.

12
00:01:00,640 --> 00:01:06,320
E quando quel metodo finisce quell'istituzione allora JVM dovrebbe riprendere l'esecuzione del primo metodo.

13
00:01:07,300 --> 00:01:12,190
Tutte queste informazioni sui metodi che vengono richiamati ed eseguiti quando

14
00:01:12,190 --> 00:01:18,730
sono memorizzati nello stack stack memorizzeranno anche le informazioni sulle variabili locali in ciascuno dei metodi esistenti.

15
00:01:19,780 --> 00:01:24,820
Non se non si parla solo di metodi che sono attualmente in esecuzione o meno quelli che

16
00:01:24,850 --> 00:01:28,780
non hanno terminato l'esecuzione sono quelli che non sono ancora stati invocati.

17
00:01:30,010 --> 00:01:32,190
Andiamo avanti e impariamo le scorte.

18
00:01:32,200 --> 00:01:35,640
È un concetto molto importante e devi sapere come funzionano le scorte.

19
00:01:37,200 --> 00:01:44,290
Lo stock è fondamentalmente una struttura di dati che è l'ultima nella prima o nella struttura dei dati nell'ultima lezione.

20
00:01:44,310 --> 00:01:49,760
Il brief qui è quello che è il pacchetto warchest ed è una delle strutture dati più fondamentali

21
00:01:51,540 --> 00:01:53,300
a differenza dell'heap nell'area metropolitana.

22
00:01:53,360 --> 00:01:56,960
Julian crea in-stock per ogni thread appena creato.

23
00:01:58,130 --> 00:02:04,010
Ad esempio, se si considera l'applicazione e se si hanno due utenti che accedono contemporaneamente

24
00:02:04,670 --> 00:02:11,020
all'applicazione, ciascuno di essi verrà servito da thread separati su ogni thread verrà assegnato uno stack separato.

25
00:02:11,300 --> 00:02:16,070
E i metodi che vengono eseguiti all'interno di quel thread sono intrappolati all'interno di quella pila.

26
00:02:17,080 --> 00:02:24,840
Non c'è modo per un thread di accedere a un altro stack di thread Un altro metodo è invocato un'entità chiama

27
00:02:24,870 --> 00:02:31,820
docstring o semplicemente semplicemente dalla rappresentazione di quel metodo viene creato e pubblicato in cima allo stack.

28
00:02:31,950 --> 00:02:38,610
Come puoi vedere qui ora se questo pulsante richiama un altro metodo, viene creato un nuovo inizio Crimble per quel

29
00:02:38,610 --> 00:02:41,340
nuovo metodo e lo stack per loro.

30
00:02:41,370 --> 00:02:43,880
Verranno anche posizionati in cima alla pila.

31
00:02:44,720 --> 00:02:51,940
Da holsom ha incontrato quella velocità trattenendo informazioni come la variabile locale ralliers sa che il frame

32
00:02:51,980 --> 00:02:58,700
è fuori dallo stack quando l'invocazione del metal termina normalmente o bruscamente attraverso una sorta di

33
00:02:58,700 --> 00:02:59,580
errore.

34
00:03:01,410 --> 00:03:08,550
Vediamo in realtà un esempio qui abbiamo tre metodi passare attraverso il metodo nonbar andare a segnare il metodo

35
00:03:08,550 --> 00:03:16,700
attraverso il quale è fatto invocando il metodo prima da parte del non-avvocato nel metodo go Saffren corrispondente a metor go

36
00:03:16,700 --> 00:03:20,080
viene creato e sarà tirato in pila .

37
00:03:21,050 --> 00:03:28,330
La chiamata al metodo ha una variabile locale X ed i suoi valori significano anche nello stack ovviamente che la variabile

38
00:03:28,330 --> 00:03:36,240
x è in scope ed è viva e il suo metodo è attualmente in esecuzione il prossimo metodo sta invocando il bit foo.

39
00:03:36,450 --> 00:03:43,080
E così via viene creata non posizionata in cima allo stack che ha un parametro di metodo giusto.

40
00:03:43,150 --> 00:03:45,320
E anche la variabile locale z.

41
00:03:45,660 --> 00:03:48,320
Ed entrambi sono archiviati nello stack.

42
00:03:48,320 --> 00:03:54,840
Ora ovviamente ci sono entrambe le variabili per cui NZ è in ambito e anche alleato mentre la variabile x nel

43
00:03:54,840 --> 00:03:58,140
Go moderno è ancora in vita ma non in ambito.

44
00:03:58,910 --> 00:04:03,310
Come mater non va il corinthians accrescendo la materia che non è a scuola.

45
00:04:04,700 --> 00:04:11,270
Il prossimo metodo Bargas invoca un così Efrem corrispondente ad esso verrà spinto in cima allo stack ma

46
00:04:11,330 --> 00:04:18,230
ha una variabile locale chiamata Edge che fa riferimento a un oggetto tenuto in modo che il bordo variabile

47
00:04:18,230 --> 00:04:23,570
sia attivo nell'ambito ora mentre xy e z sono vivi ma non nell'ambito più.

48
00:04:24,370 --> 00:04:26,570
No, ecco la cosa interessante.

49
00:04:26,570 --> 00:04:34,080
Il bordo variabile fa riferimento a un oggetto e sappiamo che gli oggetti sono memorizzati nell'heap in modo che i bordi sull'oggetto

50
00:04:34,950 --> 00:04:38,800
stack siano il tipo di cosa che sarà effettivamente nell'heap.

51
00:04:38,830 --> 00:04:45,130
Quindi, se una variabile locale è un riferimento a un oggetto, quella variabile viene memorizzata nel suo frame di riserva quando

52
00:04:45,240 --> 00:04:48,030
l'oggetto a cui fa riferimento verrà memorizzato nell'heap.

53
00:04:48,980 --> 00:04:55,660
Ora è una barra di metodo aperta che termina la sua esecuzione in quanto il suo telaio di scorta corrispondente sarà parte

54
00:04:55,660 --> 00:04:56,400
della pila.

55
00:04:57,240 --> 00:05:03,960
La variabile locale x è considerata morta e l'oggetto a cui fa riferimento non è considerata abbandonata.

56
00:05:04,120 --> 00:05:06,520
E quindi sarà ammissibile per la raccolta dei rifiuti.

57
00:05:07,390 --> 00:05:13,490
Indipendentemente da chi sia in cima allo stack e quali variabili Y e Z siano entrambe di nuovo in ambito.

58
00:05:13,660 --> 00:05:16,540
La variabile x è ancora viva ma non è più in ambito.

59
00:05:17,530 --> 00:05:23,520
Il nostro prossimo film termina la sua esecuzione e ogni frame è anche parte dello stack sul cruscotto.

60
00:05:23,520 --> 00:05:25,850
Anche i medievali Y e Z sono spariti.

61
00:05:26,770 --> 00:05:31,680
A questo punto il metodo passa in cima allo stack sulla variabile x è di nuovo nello scope.

62
00:05:32,520 --> 00:05:38,610
Finalmente raggiunto l'obiettivo che termina anche le sottosalate fa parte anche del calcio.

63
00:05:38,650 --> 00:05:40,930
Ecco come si popolano le azioni.

64
00:05:41,350 --> 00:05:45,540
Il prossimo film approfondirà un po 'e vedremo alcune delle strutture dati.

65
00:05:45,720 --> 00:05:47,120
È tornato da cavallo.
