:Javaは、データの2種類があり
、基本的なタイプ:バイト、短い、int型、長い 、ブール、フロート、ダブル、char型の
参照型:クラス、インタフェース
参照型は空を意味し、nullに割り当てることができますが、基本的なタイプがnullを割り当てることはできません。
文字列s = nullを。 INT、N = NULL ; // comileエラー!
どのように、そして、オブジェクト(参照型)などのプリミティブ型に?
たとえば、あなたが参照型にプリミティブ型をint型にしたい、私たちは、整数クラスを定義することができ
、それが含まれている唯一のインスタンスフィールドint型なので、Integerクラスはint型の包装(ラッパークラス)として見ることができます。
パブリック クラス整数{ プライベート int型の値。 公共の整数(INTの値){ この .VALUE = 値。 } 公共 のint intValue(){ 戻り 、この.VALUEと、 } }
良いクラスの定義整数、我々はint型と整数の相互変換を置くことができます。
= N-整数NULL ; 整数N2 = 新しい新規整数(99) // 変換INT整数 INT N3 = n2.inValue(); //は整数整数変換します
パッケージングは非常に便利ですので、実際には、各基本型のJavaコアライブラリは、対応するパッケージの種類を提供します。
私たちは、直接、あなたが自分自身を定義する必要はありません、使用することができます。
パブリック クラスcatchExample2 { 公共の 静的な 無効メイン(文字列[] args)を{ int型 I = 100 ; // 整数のインスタンスで新しい演算子を作成し、このように、コンパイラの警告があるでしょう。 整数N1 = 新しい整数(I); // 静的メソッドのvalueOf例整数によって作成することができ、 整数N2 = Integer.valueOf(I); // 整数静的メソッドのvalueOf(String)をすることによっても可能で作成し、 整数Integer.valueOf N3 =( "100" ) のSystem.out。 println(n3.intValue()); } }
int型と整数を相互に変換することができますので。
int型私は= 100 ; 整数のn = Integer.valueOf(I); int型 X-n.inValue =(); // そのため、Javaコンパイラは、int型と整数の間に自動的に移行するように私たちを助けることができます。 整数のn = 100; // コンパイラ自動的Integer.valueOf(int型) int型 X = N-; // コンパイラ自動的Integer.inValue()
これは、書き込みをint型の整数、と呼ばれるオートボクシング(オートボクシング)の割り当てに直接行き、
今度は、オートアンボクシング(オートアンボクシング)と呼ばれる整数int型の書き込みの割り当て、になります。
自動ボックス化とアンボックス化はコンパイル時にのみ自動的に発生するように注意し、目的のコードを減らすことです。
コードは、プリミティブ型と参照型の間にクラスの厳密な区別がコンパイルされているので、パッキンとコードの効率に影響を与えるアンパック。
そして、それは、開梱時にNullPointerExecptionが自動的に実行報告することがあります。
すべてのパッケージタイプは同じクラスです。
パブリック 最終 クラス整数{ 民間 最終 int型の値。 }
Integerオブジェクトを作成したらそのため、オブジェクトが同じです。
私たちは、整数を作成すると、2つの方法があります。
整数N = 新しい整数(100 )。 整数N = Integer.valueOf(100)。
前者は、常に方法が優れている新しいオブジェクトを作成します。
私たちは、静的なファクトリメソッドという静的メソッドの新しいオブジェクトを作成することができるようになります
)(Integer.valueOfメモリを節約するために可能な限りキャッシュ・インスタンスを返すstaticファクトリメソッドです。
整数クラス自体は、最も頻繁に整数に文字列を解析することができる)のparseInt(例えば使用方法、多数の静的メソッドを提供します。
INTの X1 = Integer.parseInt( "100"); // 100 INTの X2 = Integer.parseInt( "100"、16); // 256 16進数で解決として
整数整数フォーマットは、16進数の文字列であることを指定することができます。
パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ するSystem.out.println((持つInteger.toString)100); // "100"、小数で発現 するSystem.out.println(持つInteger.toString( 100、36)); // 進数36のように示される"2S" のSystem.out.println()(100 Integer.toHexString); // "64"は、16進数として表現 するSystem.out.println(整数。 toOctalString(100)); // 進で表されるように"144"、 のSystem.out.println(Integer.toBinaryString(100)); // "1100100"、バイナリとして表さ } }