Fichiers Flashcards

1
Q

Qu’est-ce que la RAM ?

A

La RAM (Random Access Memory) est une mémoire d’accès direct

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

À quoi sert la RAM ?

A

La RAM est utilisée pour stocker des données et du code machine en cours d’utilisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vrai ou Faux ? La RAM est une mémoire volatile ?

A

Vrai, une mémoire volatile signifie qu’elle perd ses données lorsque l’alimentation est coupée

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explique le processus de la RAM en Java

A
  1. Java gère la mémoire via la JVM (Java Virtual Machine).
  2. Les objets sont crées dans la RAM
  3. La gestion de la mémoire est automatique
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qu’est-ce que la mémoire vive ?

A

On peut le définir comme des circuits électroniques où est stockée physiquement l’information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vrai ou faux : La mémoire vive permet d’avoir accès à des endroits arbitraires et aléatoires ?

A

Vrai : Les accès se font rapidement, mais il s’agit de mémoire volatile. Si on coupe l’alimentation électrique, les bits d’information stockés s’effacent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que la mémoire persistante ?

A

Une composante de l’ordinateur qui peut conserver des données indépendamment de si l’ordinateur est alimenté électriquement ou non (donc il peut conserver des données sur le long terme).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vrai ou Faux : la mémoire persistante ne peut pas prendre plusieurs formes ?

A

Faux, voici des exemples de formes que la mémoire persistante peut prendre : Ruban magnétique, Disquette, Disque dur, Mémoire flash,…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quel est l’inconvénient de la mémoire persistante ?

A

L’accès à des données sur un support persistant sera beaucoup plus lente que sur la mémoire vive

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qu’est-ce que le système de fichiers ?

A

Similairement aux variables, tableaux et objets qui permettent d’abstraire des adresses dans la mémoire vive, le système de fichier permet d’avoir une abstraction de la mémoire persistante

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Le système de fichiers a une structure d’arbre qui contient :

A

Des fichiers (des données), des répertoires qui regroupent des fichiers + d’autres répertoires

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce qu’un fichier ?

A

Un fichier est une séquence ordonnée de bytes. 1 byte = 8 bits (en français, 1 octet = 8 bits).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Les bytes d’un fichier peuvent représenter quoi ?

A

Du texte, une image, du code machine à exécuter, une chanson, ou quoi que ce soit d’autre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

À quoi sert la commande cat ?

A

La commande cat permet d’afficher textuellement le contenu des fichiers passés en argument

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que veut réellement dire afficher “textuellement” un fichier ?

A

Cela correspond simplement à interpréter les bytes qui le constituent comme étant une suite de caractères (ASCII, UTF-8 ou autre)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

À quoi sert la commande od ?

A

La commande od permet d’afficher les bytes du fichier dans un format octal, hexadécimal, décimal ou autre (od = octal dump)

17
Q

Comment on manipule un fichier en java ?

A

Avec la classe FileReader

18
Q

Quel est le problème avec la classe FileReader ?

A

C’est un objet assez bas niveau :
1. read() permet de lire un caractère à la fois, retourne un int
2. read ( char[] c) permet de lire plusieurs caractères à la fois dans un tableau de char (pas directement une String).

19
Q

Donne une solution à la classe FileReader :

A

BufferedReader est une classe fournie qui permet d’abstraire un peut tout ça et de lire un fichier ligne par ligne, au format String

20
Q

Vrai ou Faux : Il est très important de fermer le fichier une fois qu’on a terminé d’écrire/lire ?

A

Vrai, ouvrir un fichier demande d’allouer des ressources au niveau du système d’exploitation. Il est donc important de redonner les ressources aussitôt qu’on a terminé. Également, un BufferedWriter pourrait ne pas terminer d’écrire les bytes temporairement stockés dans son tampon mémoire si jamais on termine le programme avant d’avoir fermé le fichier correctement

21
Q

Qu’est-ce que la méthode flush() ?

A

flush() est une méthode utilisée pour vider le tampon d’un BufferedWriter. Elle force toutes les données en attente dans le tampon à être écrite

22
Q

Explique le concept de Stream

A

Généralisation du concept de fichier à une séquence quelconques de bytes qui arrivent dans un certain ordre : Des données transmises sur un réseau, les caractères entrés au clavier par un utilisateur, l’output d’un programme…

23
Q

Ce qui mis entre parenthèse dans scanner est considéré comme un stream ou pas ?

A

Oui cela correspond à un stream : l’entrée standard de notre programme, qui sera (par défaut) le texte entré sur la ligne de commande

24
Q

Il vaut mieux stocker des données en binaire ou en caractères ?

A

Comparons 12345(int) vs “12345”(String)

“12345” => 5 chars => 5x16 bits => 10 bytes pour stocker un petit nombre

On pourrait gagner de l’espace en utilisant les bytes plus efficacement. En effet 12345(int) se stocke en 32 bits donc seulement 4 bytes. 12345(short) se stocke en 16 bits donc seulement 2 bytes.

25
Q

Qu’est-ce que la sérialisation ?

A

C’est lorsque tu prends une structure complète (objet, tableau…) et la transforme en une suite de bytes pour la noter dans un fichier, l’envoyer sur un réseau ou autre…

26
Q

Qu’est-ce que la désérialisation ?

A

Le processus inverse de la sérialisation, c’est lorsque tu interprètes une suite de bytes comme étant une instance particulière d’une structure complexe

27
Q

Quel est l’inconvénient de la sérialisation ?

A

Cela brise l’encapsulation : N’importe qui peut maintenant modifier les bytes qui composent l’objet sérialisé et reconstruire une version de notre objet dont l’état n’est pas cohérent