基本は、黒本を読んでポイントをメモっているだけ。
1.Javaの基本
・クラス宣言
class hoge { ~ }のこと
フィールドとメソッドで構成。
インポート宣言やパッケージ宣言は含まれない。
・パッケージ
名前空間を提供し、名前の衝突を避ける
アクセス修飾子と組み合わせ、アクセス制御機能を提供する
クラスの分類を可能にする
ドメイン名を逆にしたものが「よく使用される」
デフォルトで「無名パッケージ」に属する
ソースの1行目にしか、記述できない
java.langパッケージは、よく使うので勝手にインポートされる
同じパッケージに属するクラスも、勝手にインポートされる
→サブパッケージのクラスは、勝手にインポートされない
違うパッケージに属するクラスにアクセスできない
staticインポート
宣言時は「import static」、言葉と逆
メソッド名だけを記述する、()や引数は書かない
インポート元クラスに、インポート先クラスと同名のメソッドやフィールドがあった場合、インポートは無視される
→インポート元が複数あって、同名のメソッドやフィールドがあった場合、コンパイルエラー
・mainメソッド(エントリーポイント)
publicであること
staticであること(インスタンス化しなくても実行可能)
voidであること
メソッド名は「main」であること
引数は「String配列型」が一つ
・javaコマンド
java 完全修飾クラス名 [引数 引数 …]
>java Main java one two
→mainメソッドの引数に「java one two」が渡される
2.Javaのデータ型の操作
・プリミティブ型
boolean,char,byte,short,int,long,float,double
→値そのものを扱う
・参照型
オブジェクト型、列挙型、配列型
→インスタンスへの参照を扱う
・整数リテラル
10進数・・・接頭辞無し「123」
8進数 ・・・「0」をつけて、0~7で表現「067」
16進数・・・「0x」をつけて、0~Fで表現「0x3F」
2進数 ・・・「0b」をつけて、0~1で表現「0b0111」
・アンダースコアを使った数値表記
桁数が多いときに見やすくする目的、らしい(現場では使わん)
int i = 123_456_789;とか
ルール
・リテラルの先頭と末尾には記述できない
→int b = _123;はNG
・記号の前後(ドット「.」、longやfloatの「L」「F」、2進数を表す「0b」など)には記述できない
→long l = 999_L;はNG
・char型(文字リテラル)
シングルクォーテーションで囲ったひと文字
シングルクォーテーションで囲った\uで始まるUnicode番号
0~65535までの数値
・識別子の命名規則
予約語は使えない
記号は、アンダースコアと通貨記号(¥、$、€、£とか)のみ
先頭数字はNG
・nullは「NULL」って書いたらNG
・メソッドの呼び出し
同じクラスに定義されてるなら「メソッド名(引数)」
インスタンスに定義されてるなら「変数.メソッド名(引数)」
staticメソッドなら「クラス名.メソッド名(引数)」
・ガーベッジコレクション
明示的にガーベッジコレクションは実行できない
gcメソッドでも、ガーベッジコレクションを促すだけ
ガーベッジコレクションの主な対象は、参照されなくなったインスタンス
(nullを代入)
コメント