【intに短し、longに長し】
»
■原典:
帯に短したすきに長し
■意味:
int型で定義するには桁が足りないが、long型で定義するには大げさという意味。
■解説:
Java言語の場合、int型は32bit(-2^31)~(2^31-1)で、long型は64bit(-2^63)~(2^63-1)になります。ただの利用メモリの効率だけならたいした問題はありませんが、long型やdouble型は、2つの32ビット値として扱うことが許されているため、そのままではスレッドセーフな動作が保証されません。
その場合、volatile宣言を行い、アトミック性を確保する必要が出てきます。
9桁の整数なら、int型の範囲内ですが、10桁となると、int型の範囲を超える場合がある、色々と厄介なことが増えてしまいます。
●用例:
川伊さん。この間のヨソノ工業様のデータ連携プログラムで、時々異常終了するって件、解決したよ。
え、なんだったんですか?
取り込んだデータの数量を加算している処理で、int型の範囲を超えるデータが発生していたんだ。
そういえば、最近大口の取引が増えてきてるって聞いてたけど、その関係もあるのかな。
関係する箇所を、int型からlong型に変更するだけですんだよ。
「intに短し、longに長し」ってか。
すべてlong型にするっていっても、大変だもんね。
コメント
彩都
ん? 表現として逆じゃないですか。
intに入れるには長く、longに入れるには短い、ということだから
「longに短し、intに長し」と表現すべきでは?
ちゃとらん
じぇじぇじぇ!
ご指摘の通り、間違ってますね。
この場をお借りして、訂正とさせていただきます。
「longに短し、intに長し」です。
本当に、ありがとうございました。
コメントを投稿する
SpecialPR