JavaMemo
Java Memo
実行(javaコマンド)
- JVM
- 標準クラスライブラリ
- 対象クラスはクラスファイル(.class)
関連クラスファイル
ClASSPATHが通っているクラスを実行可能
- 実行時、拡張子.classは省略
- クラスの指定は大文字小文字を区別する
クラスの定義
- クラス内に定義するもの
- フィールド(メモリ上に保持するデータ)
フィールドはクラス内で使用出来るデータを表したもので、メンバ変数とも呼ばれる。フィールドは「変数」として定義する。 - メソッド(処理を行う単位)
メソッドはクラスでもつ何らかの処理を行う機能の単位です。このメソッドを呼び出すことで処理を実行する。また、メソッドの中でフィールド情報を使用したり、書き換えたりすることができる。
- フィールド(メモリ上に保持するデータ)
変数の分類
- フィールド
- クラス内で宣言する
- ローカル変数
- メソッド内で定義する変数
- パラメータ変数
- メソッドの括弧()内で宣言する変数
特別なメソッド-main()メソッド
- main()メソッドはJVMが最初に実行する特別なメソッド
- main()メソッドの定義
- 修飾子にpublic,staticキーワードを指定すること
- 戻り値はvoidであること
- 引数リストにはString argsを推定すること
- 引数は、実行時にコマンドラインから入力される
- メソッドの実行時m引数は空白で区切ることにより複数入力が可能
public static void main(String args){...}
クラスのインスタンス化とnew演算子
- クラスからオブジェクトを生成することをインスタンス化と呼ぶ
- インスタンス化にはnew演算子を用いる
- オブジェクトを個別に扱うために参照変数名を指定する
- コンストラクタを使用してオブジェクトの初期化を行う
<インスタンス化の構文>
<クラス名><参照変数名>= new<コンストラクタ名>(引数リスト);
オーバーロード
- オーバーロードとは、異なる引数(型と数)を持つ同名のメソッドやコンストラクタを複数定義すること
- メリット
- 同一名で異なる処理を定義できる(メソッド、コンストラクタ)
- APIをシンプルに保てる
- オーバーロードの条件
- メソッド名が同じ
- 引数の型か数が異なる
- 戻り値が異なるだけではだめ(x)
ヒープとスタック
インスタンス化されたオブジェクトはデータ格納領域(メモリ)を使用
- データ格納領域はヒープとスタックに分かれる
- ヒープ
- すべてのオブジェクト、配列が格納される
- ヒープはガベージコレクションの対象となる
- スタック
- ローカル変数、メソッドの起動やリターンの一部、中間的な結果等
- FIFO(FirtsInFirstOut)方式
ガーベッジコレクション
- JVMはガベージコレクターを持つ
- ガベージコレクションとは自動メモリ管理機能のこと
- 使用されなくなったメモリ領域を自動的に検出して解放する
- プログラマはメモリ解放を意識しなくて良い
基本データ型と参照型
- Javaのデータ型は2種類に大別
- 基本データ型
- データそのものを指す
- 参照型
- オブジェクトを表す
- 基本データ型
- 基本データ型間の変換
- 基本データ型間で変換するには、直接代入やキャストを使用
- 基本データ型間で型変換できるのは、boolean型を除く7種類
基本データ型と参照型の変換
- 基本データ型を参照型に変換
- ラッパークラスを使用
- 参照型を基本データ型に変換
- 一部を除いて変換不可
基本データ型のキャスト
ラッパークラス
- ラッパークラスとは、基本データ型の値をオブジェクトとして保持するためのクラス
- 格基本データ型に対応して存在
- 各種の型に変換するメソッド
- 文字列(参照型)を任意に基本データ型に変換するメソッド
- 任意の基本データ型に変換するメソッド
## 1行づつコメントを入れた方がいい