specification pageを見ると、%h
がInteger.toHexString()にコールされていますが、2つの指定子の間には実用的な違いはありません。Java:フォーマット指定子%xと%hの違いは何ですか?
同じ入力のto指定子を使用すると結果が異なる場合がありますか?
System.out.println(String.format("%1$h %1$x", 123));
これは%x
指定子はちょうど16進数の引数をフォーマットするのに対し、%h
指定子は、(あなたが「ヌル」を取得するとき、それは、null
ではありません提供された)その引数にhashCode
を呼び出し
7b 7b
は、フォーマッタに 'null'なのでを渡して試してみてください。 –
いいえ、Integer.toHexString(arg.hashCode())を呼び出します。これは、まったく別のものです。 –
説明はかなり異なっています。 '%h'は、argのhashCodeでtoHexStringを呼び出します。 –