1
00:00:01,220 --> 00:00:03,590
Ciao, questo è che non volevo andare.

2
00:00:03,890 --> 00:00:05,730
Quindi per me ha senso.

3
00:00:05,780 --> 00:00:11,220
Interfaccia sotto-rappresentazione ma c'è anche un altro tipo di interfaccia di mercato

4
00:00:11,210 --> 00:00:15,400
per le interfacce su Nuzzi raucousness quando altre interfacce.

5
00:00:15,480 --> 00:00:22,750
Dichiarare uno o più metodi astratti che indicano alcune funzionalità o alcune funzionalità di base in base al tipo

6
00:00:22,750 --> 00:00:27,110
di interfaccia, ma le interfacce di mercato sono leggermente diverse.

7
00:00:27,110 --> 00:00:29,990
Ci sono semplicemente interfacce senza alcun metodo.

8
00:00:30,220 --> 00:00:34,800
È così che tutti aleggiano lì sono ancora preziosi.

9
00:00:34,900 --> 00:00:41,980
Sono principalmente usati per classificare il mercato come aventi certe proprietà che sono qualsiasi classe che implementa l'interfaccia

10
00:00:41,980 --> 00:00:48,430
di mercato e annuncia che ha la proprietà definita dall'interfaccia di mercato e questa proprietà è spiegata

11
00:00:48,430 --> 00:00:54,220
in semplici parole inglesi nel documento Java dell'interfaccia di mercato che fondamentalmente è un

12
00:00:54,220 --> 00:00:56,060
problema specifico dell'interfaccia marcatore.

13
00:00:56,260 --> 00:01:03,510
OK, quindi sono solo parole inglesi semplici e non ci sono metodi che i tipi della classe di

14
00:01:03,510 --> 00:01:08,590
implementazione intraprenderebbero un'azione in base alla proprietà supportata potrebbero intraprendere quell'azione.

15
00:01:08,590 --> 00:01:15,040
I client potrebbero dover richiamare alcuni dei metodi della classe di implementazione che è la classe che

16
00:01:15,100 --> 00:01:16,690
sta implementando l'interfaccia marker.

17
00:01:16,720 --> 00:01:22,260
A volte l'interfaccia del marcatore una specifica menziona esplicitamente su questi metodi.

18
00:01:22,270 --> 00:01:25,440
Diamo un'occhiata ad alcune interfacce di mercato di esempio nell'API Java.

19
00:01:27,200 --> 00:01:32,510
Il primo esempio è un'interfaccia marcatore chiamata accesso casuale che proviene dal pacchetto Gelada, dato che proviene

20
00:01:32,510 --> 00:01:33,410
da Dawidoff.

21
00:01:33,440 --> 00:01:40,370
Sappiamo che questa interfaccia è rilevante per le strutture di dati o che all'interno di qualsiasi strumento di

22
00:01:40,370 --> 00:01:46,210
vetro in questa interfaccia si dichiara che consente un rapido accesso casuale ai suoi elementi.

23
00:01:46,420 --> 00:01:52,930
È possibile accedere agli elementi in modo casuale e rapido. L'accesso casuale così veloce è una proprietà

24
00:01:52,930 --> 00:01:59,230
definita dall'interfaccia di accesso casuale e un altro elenco è una classe che implementa questa interfaccia.

25
00:01:59,230 --> 00:02:05,420
E così facendo dichiara che supporta l'accesso casuale rapido ai suoi elementi.

26
00:02:05,460 --> 00:02:13,120
Vedi un esempio che mostra come questa informazione è usata da uno degli algoritmi secondo esempio è un'interfaccia

27
00:02:13,120 --> 00:02:19,790
marcatore chiamata Serializable che è dal pacchetto dollaro e non suggerisce il nome qualsiasi classe

28
00:02:19,840 --> 00:02:26,030
che implementa questa interfaccia dichiara che permette che i suoi oggetti siano serializzati.

29
00:02:26,440 --> 00:02:31,310
OK, dichiarando che consente alle istanze X di essere serializzate.

30
00:02:31,390 --> 00:02:37,750
Esamineranno la serializzazione in dettaglio nel capitolo, ma in sostanza significa che consente agli oggetti Java di essere

31
00:02:37,780 --> 00:02:44,620
convertiti in flussi di byte in modo che i flussi di byte possano essere salvati sul disco rigido per una

32
00:02:44,620 --> 00:02:50,360
successiva realizzazione di DC o flussi di byte possono anche essere trasmessi a un JVM remota.

33
00:02:50,410 --> 00:02:57,160
Burdekin con DC DNS La televisione DC non è altro che la semplice conversione dei flussi di

34
00:02:57,190 --> 00:02:58,420
byte nell'oggetto Java.

35
00:02:58,540 --> 00:03:04,110
Quindi in questo caso una proprietà definita dall'interfaccia Serializable è un'abilità serializzata.

36
00:03:04,890 --> 00:03:10,790
Non che quando guardiamo da vicino la semantica del termine proprietà è un po 'di confusione qui nel

37
00:03:10,810 --> 00:03:11,480
primo esempio.

38
00:03:11,500 --> 00:03:18,130
Una classe che implementa l'accesso casuale sta dicendo che ha la capacità intrinseca di supportare l'accesso

39
00:03:18,130 --> 00:03:25,060
casuale veloce mentre con Serializable le classi di implementazione dicono semplicemente che sta dando il permesso per

40
00:03:25,150 --> 00:03:27,640
i suoi oggetti di essere serializzati.

41
00:03:28,150 --> 00:03:35,280
L'effettiva capacità di serializzare oggetti appartiene a una classe esterna, quindi non è con l'erba

42
00:03:35,300 --> 00:03:37,450
che sta implementando l'interfaccia.

43
00:03:37,660 --> 00:03:43,420
Quindi esiste una classe denominata pacchetto Angella di output degli oggetti che esegue la

44
00:03:44,200 --> 00:03:50,770
serializzazione effettiva ma la classe di implementazione può fornire assistenza specifica nel processo di serializzazione e transizione DC.

45
00:03:50,950 --> 00:03:53,950
Ma per i non-letterati ci preoccupiamo di questo.

46
00:03:54,040 --> 00:03:57,330
Quindi, non solo la differenza di semantica per quella sulla proprietà.

47
00:03:57,400 --> 00:03:59,910
In un caso era capacità.

48
00:03:59,910 --> 00:04:02,780
In entrambi i casi era più che permesso dare.

49
00:04:04,320 --> 00:04:09,880
Non solo un esempio di utilizzo dell'interfaccia di mercato attorno a Maxxis, abbiamo il

50
00:04:09,880 --> 00:04:15,550
metodo statico chiamato shuffle nelle raccolte di classi che fa anche parte del pacchetto totale.

51
00:04:15,700 --> 00:04:22,480
E questo metodo prende una lista e mescola casualmente tali elementi come il rimescolamento principale suggerisce

52
00:04:22,480 --> 00:04:29,500
che l'algoritmo shuffle applicato dipende o meno dall'elenco di input che implementa l'accesso casuale e per questo viene

53
00:04:29,500 --> 00:04:32,210
utilizzata l'istanza dell'operatore come mostrato qui.

54
00:04:33,660 --> 00:04:39,960
Se la lista di input ha implementato l'accesso casuale come nel caso di una lista, l'algoritmo shuffle

55
00:04:40,020 --> 00:04:42,240
viene applicato direttamente sulla lista.

56
00:04:42,240 --> 00:04:48,450
Per questo l'algoritmo utilizza alcuni dei metodi della porta senza libro che sarebbe il più idiale

57
00:04:48,450 --> 00:04:50,570
se l'ordine fosse appena passato.

58
00:04:50,650 --> 00:04:56,780
Tuttavia, l'elenco di input non implementa l'accesso casuale come nel caso di un elenco collegato che

59
00:04:56,780 --> 00:04:58,520
implementa anche l'interfaccia dell'elenco.

60
00:04:58,910 --> 00:05:04,190
Quindi il metodo utilizza un algoritmo alternativo per ottenere prestazioni ragionevoli.

61
00:05:04,580 --> 00:05:10,820
Questo perché senza il supporto dell'accesso casuale sarebbe costoso applicare l'algoritmo shuffle direttamente nella

62
00:05:10,820 --> 00:05:12,290
lista di input.

63
00:05:12,770 --> 00:05:18,050
Quindi in questo caso la logica è che gli elementi dell'elenco Fuster vengono copiati in un array.

64
00:05:18,470 --> 00:05:21,690
Quindi l'algoritmo shuffle verrebbe applicato su quella matrice.

65
00:05:21,700 --> 00:05:26,650
E infine gli elementi shuffle vengono scaricati dall'arcata nella lista.

66
00:05:27,050 --> 00:05:33,110
Quindi, come puoi vedere, l'algoritmo applicato si basa sul fatto che l'elenco di input supporti o

67
00:05:33,110 --> 00:05:40,520
meno la proprietà di accesso casuale, non che l'accesso casuale sia utilizzato anche in molti altri metodi nella classe di raccolta.

68
00:05:40,850 --> 00:05:42,600
Quindi questa è un'interfaccia marcatore.

69
00:05:42,950 --> 00:05:47,870
Ma c'è un'interfaccia di marker interessante chiamata Fattura di Groner, di cui parleremo come

70
00:05:47,870 --> 00:05:50,490
un altro esempio nella prossima lezione.

71
00:05:50,530 --> 00:05:51,580
Quindi, per ricapitolare.

72
00:05:51,700 --> 00:05:58,380
A differenza dei mixdown su Representer, le interfacce di mercato delle interfacce non dichiarano alcun metodo.

73
00:05:58,590 --> 00:06:05,820
Sono semplicemente usati o Mark o Taggett hanno una certa proprietà in quanto non ci sono molti marcatori

74
00:06:05,820 --> 00:06:07,750
come nella libreria Java.

75
00:06:07,750 --> 00:06:14,620
Serializable è probabilmente uno di quelli comunemente usati, ma più che scrivere su hard disk

76
00:06:14,710 --> 00:06:21,730
in questi giorni è più comune che alcuni oggetti complessi usati non frequentemente vengano lanciati nella memoria.

77
00:06:21,730 --> 00:06:27,410
In questo modo non dobbiamo ricostruire questi oggetti complessi ogni volta che sono necessari.

78
00:06:27,460 --> 00:06:34,420
Possono essere semplicemente prelevati dalla cache e memcache è un sistema di caching degli oggetti che richiede tutti

79
00:06:34,420 --> 00:06:37,640
gli oggetti che gira per implementare serializzabili.

80
00:06:37,750 --> 00:06:41,350
OK, quindi l'interfaccia di mercato Serializable deve essere implementata.

81
00:06:41,740 --> 00:06:43,800
Quindi su questo e grazie.
