ホームページ  >  記事  >  Java  >  Java I/O 操作 - ラッパー クラスとプリミティブ クラス変数

Java I/O 操作 - ラッパー クラスとプリミティブ クラス変数

PHPz
PHPz転載
2023-09-14 10:45:03843ブラウズ

Java I/O 操作 - 包装类与原始类变量

Java 入出力 (I/O) 操作は、さまざまなタイプのデータを処理する上で重要な役割を果たし、さまざまなソースからの読み取りと書き込みを可能にします。例には、ファイル、ネットワーク接続、標準入出力ストリーム。 Java で入出力を処理する場合、プリミティブ データとオブジェクト型データを処理する必要がある状況に遭遇します。 Java には、これを容易にするための 2 つのオプションが用意されています。それは、ラッパー クラス、または生のクラス変数を直接使用することです。

このチュートリアルでは、ラッパー クラスとプリミティブ データ型について説明します。これらの各方法には利点と注意点があり、Java I/O 操作に関して情報に基づいた意思決定を行うのに役立つように、それらについて詳しく説明します。

プリミティブデータ型

「int」、「float」、「boolean」、「char」などのプリミティブ データ型は、Java のデータの基本構成要素を表します。これらはオブジェクトではなく、ラッパー クラスのような追加の機能やメソッドはありません。 I/O 操作でプリミティブ データ型を使用する場合、プリミティブ値を直接操作できます。

プリミティブ データ型には、その型に基づいてデフォルト値が割り当てられます。たとえば、「int」、「byte」、および「short」変数にはデフォルト値 0 が割り当てられ、「float」および「double」変数にはデフォルト値 0.0 が割り当てられ、ブール変数にはデフォルト値 false が割り当てられます。 char プリミティブ データ型のデフォルト値は、値 '\u0000' を持つ Unicode 文字です。これは、印刷不可能な文字であるヌル文字を表します。

I/O 操作にプリミティブ データ型を使用する場合に考慮すべき重要な点をいくつか示します -

パフォーマンスノート

ラッパー クラスと比較して、プリミティブ データ型はパフォーマンスが優れています。メモリ使用量が小さく、データの保存と操作に必要なリソースが少なくなります。

直接データ操作

プリミティブ データ型を使用すると、プリミティブ値を直接操作できるため、データをきめ細かく制御する必要がある場合に便利です。数学演算、ビット単位の演算、その他の低レベルの演算を、オブジェクト指向演算のオーバーヘッドなしで実行できます。

機能制限事項

ラッパー クラスとは異なり、プリミティブ データ型は、数値変換や書式設定などの操作のためのユーティリティ メソッドを提供しません。プリミティブ型を操作する場合、そのような機能を手動で実装するか、他のライブラリのヘルパー メソッドに依存する必要がある場合があります。

パッケージングクラス

Java のラッパー クラス (「Integer」、「Float」、「Boolean」、「Character」など) は、プリミティブ データ型を操作するためのオブジェクト指向機能を提供します。これにより、プリミティブ型をオブジェクトとして扱い、個々のプリミティブ データ型では使用できない追加のメソッドと操作を提供できるようになります。

明示的に値が割り当てられていない場合、ラッパー クラスはオブジェクトであるため、デフォルト値「null」で初期化されます。 I/O 操作にラッパー クラスを使用する場合に考慮すべき重要な点をいくつか示します -

ボックス化とボックス化解除

ラッパー クラスは、ボックス化およびボックス化解除を通じて、プリミティブ型とオブジェクト間の変換プロセスを容易にします。ボックス化では、元の値を対応するラッパー クラス オブジェクトでラップし、アンボックス化ではラッパー オブジェクトから元の値を抽出します。これにより、オブジェクトを必要とする I/O 操作でプリミティブ型を使用できるようになります。

実践的な方法

ラッパー クラスは、対応するプリミティブ型に対するさまざまな操作のためのユーティリティ メソッドを提供します。たとえば、Integer クラスは、文字列を整数に変換し、数学的演算を実行し、数値形式を操作するためのメソッドを提供します。

ジェネリックおよびコレクションとの相互運用性

ラッパー クラスは、ジェネリックとコレクションが関係するシナリオで重要な役割を果たします。 Java のジェネリックは参照型のみを受け入れるため、ラッパー クラスを使用すると、ジェネリック クラスおよびコレクションでプリミティブ型を使用できるようになります。これにより、I/O 操作でさまざまな種類のデータを処理するときにジェネリックの機能を活用できるようになります。

プリミティブ データ型のラッパー クラス

Java のラッパー クラスは、プリミティブ データ型とそれに対応するオブジェクトの間で変換する方法を提供します。この変換 (アンボックス化と呼ばれます) により、シームレスな交換が可能になり、ラップされたクラス オブジェクト内の元の値にアクセスできるようになります。

###例###

コード例では、オートボックス化を使用して値 3.14 を「Double」ラッパー クラス オブジェクトに割り当てますが、ボックス化を解除するとラッパー オブジェクトが元の「double」に変換されます。

リーリー ###出力### リーリー

プリミティブ データ型からラッパー クラスへの変換

Java では、プリミティブ データ型から、オートボクシングと呼ばれる対応するラッパー クラスへの変換が可能です。この自動変換は、プリミティブ値をラッパー クラス オブジェクトに直接割り当てることでコードを簡素化し、プリミティブではなくオブジェクトを必要とする操作を容易にします。

###例###

サンプルコードでは、ブールプリミティブ値「true」が「primitiveValue」に割り当てられています。この生の値は、オートボクシングを使用して「ブール」ラッパー クラス オブジェクト「wrapperValue」に変換されます。

public class Main {
   public static void main(String[] args) {
      // Primitive data type value
      boolean primitiveValue = true;         
      // Autoboxing: conversion to Boolean
      Boolean wrapperValue = Boolean.valueOf(primitiveValue);         
      System.out.println("Wrapper Value: " + wrapperValue);
   }
}

输出

Wrapper Value: true

结论

总之,在使用 Java I/O 操作时有两种选择:使用包装类或直接使用原始数据类型。两种方法都有其优点和考虑因素。使用原始数据类型时,您可以直接使用原始值,这提供了更好的性能、直接的数据操作和更小的内存占用。另一方面,包装类提供了用于处理原始数据类型的面向对象的功能。最终,包装类和原始数据类型之间的选择取决于您的要求和性能考虑。

以上がJava I/O 操作 - ラッパー クラスとプリミティブ クラス変数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。