Javaの学習における自分用のmemoです。
インスタンスとは
・クラス(設計図)を具現化したもの
・ヒープ領域に保存される※1
・newと言うキーワードを使って生成する※2
※1 ヒープとは、JVM上で「ユーザが作ったプログラムが利用するメモリ領域」のこと
※2 newはヒープ領域に「新しくインスタンス用の領域を確保する」という意味の命令
参照型変数とは
・インスタンスそのものでなく、インスタンスへの参照(住所のようなもの:リンク情報)が入っている
・オブジェクト型変数とも呼ぶ
・参照がない状態を示す特別な値にnullというのがある
プリミティブ型変数とは
・変数そのものがデータ
・int型やdouble型、char型など
・仕様として提供されている基本的な型
コンストラクタメソッド
・インスタンス生成と同時に自動的に実行される
・メソッド名はクラス名と同じにしなければならない
・戻り値型を記述できない
・インスタンス生成時のみ呼び出し可能
・プログラマーが定義しなくてもコンパイラによって自動的に定義される(デフォルトコンストラクタ)
・プログラム実行時、コンストラクタの処理が終わってから他のメソッドが呼び出せるようになる
ガベージコレクション
・不要になったインスタンスをメモリから自動で破棄してくれる自動メモリ管理機能があり、これを「ガベージコレクタ」という
・ガベージコレクションが実行されるタイミングはガベージコレクタが自動的に判断する
・ガベージコレクタがメモリ内のインスタンスを破棄する行為のこと
オーバーロード
・メソッド名と引数をまとめてシグニチャと呼ぶ
・シグニチャが異なれば異なるメソッドとしてコンパイラやJVMに識別される
・コンストラクタもオーバーロードできる
クラス変数とクラスメソッド
・ヒープ領域の一部にクラスファイルを保管しておき、そこからインスタンスを生成する仕組みがある
・このクラスファイルを保管する領域を「パーマネント領域」と呼ぶ
・static修飾子のついたメソッドやフィールドはstatic領域に作られる
・staticなメソッドやフィールドはインスタンスが生成されていなくても使うことができる
・staticメンバーからインスタンスメンバーにアクセスしようとするとコンパイルエラーになる
Comments