study-note

基礎

目次

dynamic型付け


基本構文

変換修飾子

メモリ領域

  1. 静的領域(static area)
    • プログラム起動時に確保され、終了まで保持される
    • クラスの情報、staticメンバなどが格納される
  2. ヒープ(heap)
    • 大きなメモリ領域
    • インスタンスや動的なデータを保存
  3. スタック(stack)
    • 小さな高速メモリ
    • 関数の実行時に確保、終了時に解放

変換修飾子の種類

  1. const
    • 絶対に変わらない値(定数)
    • コンパイル時に値が確定され、静的領域に保存される
    • 実行中に変更することはできず、実行時に決まる値は持てない
    • 同じ値のconstはメモリを再利用するため、メモリ効率も良い
  2. final
    • 一度だけ値を設定できる変数
    • 動的に決まる一度きりの値
    • プログラム実行時に決定され、初期化された後は変更できない
    • メモリ領域はヒープかスタック
  3. late
    • 遅延初期化
    • 変数の初期化を後回しにすることで、無駄なメモリを節約できる
    • 変数の宣言時に初期化しなくてもコンパイラが警告を出さず、後で実際に初期化することができる
    • 初期化されるまでメモリを消費しないため、メモリ節約に使う
  4. static
    • クラス全体で共有される変数
    • インスタンスごとではなくクラス単位でメモリが確保される
    • クラスのメタデータがメモリにロードされる対ミグで1つだけ初期化され、すべてのインスタンスで共有されるため、同じクラスのインスタンスがあっても1つだけ使用され、メモリの効率が良い
    • メモリ領域は静的領域