アットウィキロゴ

技術情報 > Java > データと演算子

Top > 技術情報 > Java > データと演算子

データと演算子

基本データ型

boolean (1) : false (*) / true
byte (8) : -128 - 127
char (16) : 0x0000 - 0xffff ('\u0000' - '\uffff'
short (16) : -32768 - 32767
int (32) : -2^31 - 2^31-1
long (64) : -2^63[Ll] - 2^63-1[Ll]
float (32) : 3.4E38[Ff] - 1.4E-45[Ff]
double (64) : 1.8E308 - 4.9E-324
FやLを指定しない場合には、縮小変換となる可能性がある

拡大変換

基本データ型において、変換元のデータサイズ以上のサイズを格納先がもっていれば暗黙的に変換
参照型において、親型へのキャストは暗黙変換

縮小変換

範囲内であるint 変数を byte / short / char へ変換する際は、暗黙変換 それ以外では例外発生
参照型において、子型へのキャストはもともとその子型で生成していること(実行時例外発生)と、型名を指定する必要(コンパイルエラー)がある

評価順序

&& / || / ?: 以外の演算子に対し、左から評価される
 f1 () + f2() では f1とf2が評価されて + が実行

単項演算子

一つのオペランドに作用するもの

x はビット反転、-x-1になる

除算による例外

整数を0で割ると、Arithmetic Exceptionが発生
浮動小数点数をゼロで割るとDouble.POSITIVE_INFINITYなどになる
NaN かどうかの判断は、== Double.NaN ではなく、Double.isNaN()メソッドを使う

シフト演算

左オペランドが32ビットより小さい型のとき、まず32ビットに拡張され演算後元のサイズに戻される
右オペランドが32ビットより大きいとき、32で割った余りに変換される
新しいビットは << と >>>で0になり、>>では左端のビットで決められる
シフトではみ出すビットは捨てられる

ビット演算子

0 / 1 または、boolean 値にも作用する & (AND) / | (OR) / ^ (XOR)

比較演算子

大小の比較は、byte / short / char / intのみ byte / short / char は、演算により数値昇格されintに変換される
x instanceof Y演算子は、参照型の場合そのYへのキャストを調べる

短絡的評価

論理演算子 && や || では、短絡的評価が行われる
条件演算子 X ? A : B では、Xの真偽でAかBどちらかのみが評価される

代入演算子

x = y = z = 3は右から代入されている x = y = (z=3) -> x = (y=z) -> x=y
複合代入演算 x op= y では、x = x op y その時暗黙的な型変換が行われる

文字リテラル

引用符で囲む エスケープシーケンス \u \b \t \n \f \r \" \' \\

文字列リテラル

二重引用符で囲む エスケープシーケンスは文字リテラルと同じ

String の等価・不等価

参照型変数は、== / != によりオブジェクトが同一の物を指すかどうかを判断する
通常の参照型変数であれば、equals は == と等価であるが、String オブジェクトでは同じ文字列リテラルを指すかどうかを判断する

変数の初期化

一時非配列変数を除く全ての変数は、初期化しない場合デフォルト値で初期化される(フィールドと配列要素)

配列

基本データ型で作られた配列は、参照型オブジェクトとなる
次元ごとに異なる大きさを持つことができる

ハッシュコード

ObjectクラスのtoStringメソッドは、「クラス名@ハッシュコード」を返す

ラッパークラス

基本データ型からラッパークラスへの暗黙変換はない
== や equalsなどで比較することもできない

タグ:

+ タグ編集
  • タグ:
最終更新:2007年11月15日 07:21