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種類

基本データ型と参照型の変換

  • 基本データ型を参照型に変換
  • ラッパークラスを使用
  • 参照型を基本データ型に変換
  • 一部を除いて変換不可

基本データ型のキャスト

  • キャストとは強制的に型を変換すること
  • Java言語では、キャスト演算子()を使って
  • 基本データ型のキャスト
  • ビット幅の小さな型を大きな型に変換
  • ビット幅の大きな型を小さな型に変換

ラッパークラス

  • ラッパークラスとは、基本データ型の値をオブジェクトとして保持するためのクラス
  • 格基本データ型に対応して存在
  • 各種の型に変換するメソッド
  • 文字列(参照型)を任意に基本データ型に変換するメソッド
  • 任意の基本データ型に変換するメソッド

## 1行づつコメントを入れた方がいい