Maison  >  Article  >  Java  >  Quelle est la différence entre io et nio en Java

Quelle est la différence entre io et nio en Java

PHPz
PHPzavant
2023-05-13 15:04:062667parcourir

1. La première différence entre Java IO et NIO est que IO est orienté flux et NIO est orienté tampon.

Java IO est orienté flux, ce qui signifie qu'un ou plusieurs octets peuvent être lus à partir du flux à la fois. Le nombre d’octets à lire dans le flux dépend entièrement du programmeur. Ces octets ne peuvent être mis en cache nulle part ; c'est-à-dire que vous ne pouvez pas déplacer les données vers l'avant ou vers l'arrière à partir du flux. Si vous avez vraiment besoin de déplacer des données, vous devez d'abord les mettre en cache dans un tampon.

Java NIO voit Buffer légèrement différemment. Lorsque les données sont lues dans le tampon, le tampon sera traité ultérieurement. Vous pouvez déplacer les données dans le tampon si nécessaire ; cela donne au programmeur plus de flexibilité dans le traitement. Cependant, vous devez vérifier que le tampon contient toutes les données que vous devez traiter. De plus, vous devez vous assurer que lorsque les données lues arrivent dans la mémoire tampon, vous ne pouvez pas écraser les données non traitées.

IO bloquant et non bloquant

2. Différents flux dans Java IO sont bloqués. Java NIO est un mode non bloquant pour garantir que les threads nécessitent la lecture des données du canal.

Divers flux dans Java IO sont bloqués, c'est-à-dire que lorsque les méthodes read() et write() sont appelées, le thread sera bloqué jusqu'à ce que les données soient lues ou complètement écrites. Pendant ce temps, le thread traitant le flux ne pourra pas se terminer.

Le mode non bloquant de Java NIO garantit que le thread demande de lire les données du canal jusque-là, ou si aucune donnée n'est disponible à ce moment, rien ne sera fait. Au lieu de maintenir le bloc jusqu'à ce que les données puissent être lues, le thread peut ici faire autre chose.

Quels sont les types de données de base de Java ?

Les types de données de base de Java sont divisés en :

1 Type entier, utilisé pour représenter le type de données des entiers.

2. Type à virgule flottante, un type de données utilisé pour représenter les décimales.

3. Type de caractère Le mot-clé du type de caractère est "char".

4. Le type booléen est le type de données de base qui représente les valeurs logiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer