String クラスのインスタンスを作るには、実は特別の方法があります。 といっても、当たり前すぎて、誰も特別とは思っていないかも知れませんが、 Java の世界では、ちょっと珍しいのです。
String str = "wakkanai" ;
何が珍しいのかというと、Java では、クラスのインスタンスは、コンストラクタ を通じて生成されるのですが、この例では、コンストラクタは登場しません。 でも、次のような、コンストラクタ無しの例もあるのではと思う人がいるかも 知れません。
int a = 10 ; float f = 3.14;
たしかにこれらの例では、コンストラクタは出てきていません。しかし、int も
float も primitive type と呼ばれる特別の「型」なのですが、クラスでは
ありません。クラスとしては、String クラスだけが、コンストラクタ無しで、
インスタンスが出来るということになります。
もちろん、String クラスには、沢山のコンストラクタが用意されています。
String str = new String("wakkanai"); char charArray[] = {'w','a','k','k','a','n','a','i'}; String str = new String( charArray ); byte byteArray[] = ...... String str = new String( byteArray , 0 ) ;
第一の方法は、文字列をそのまま、コンストラクタに与えるものです。
第二の方法は、char の配列をコンストラクタに与えて、String インスタンス をつくっています。
第三の方法は、byteの配列から、String インスタンスを作るのですが、 コンストラクタの二番目の引数の0に注目してください。 これは、hi-byte と呼ばれるものです。