・   「Java実習 I」実習 第10回

オブジェクトとJVMのメモリ管理

前期のまとめとして、オブジェクトとJVMのメモリ管理について考察します。 プログラム内でのオブジェクトの同一性の判定について練習します。


・ 準備1(学内向け):
Linux, Windows 2000いずれの環境でもかまいません。 端末エミュレータのウィンドウを開きなさい。 各自のJavaの課題の作業用のディレクトリ java に移動しなさいなさい。 その中で以下の作業を行いなさい。


・ 基本課題1:「オブジェクトの比較(1)」
Colorオブジェクトのコンストラクタによる生成と、 オブジェクトの比較を試してみます。

  1. ソースファイル EqualTest.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行結果を確認しなさい。

・ 基本課題2:「オブジェクトの比較(2)」
プログラム内の変数の寿命とは無関係にオブジェクトが存在することを確認します。

  1. ソースファイル EqualTest2.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行結果を確認しなさい。

・ 基本課題3:「オブジェクトの比較(3)」
新しく定義したクラスの equals()メソッドを実装してみます。

  1. ソースファイル MessageFrame.javaEqualTest3.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行結果を確認しなさい。

・ 今週のレポート課題(学内用):
ここまでの課題が終わった人は、下記の項目を tatsuo宛のメール で報告しなさい。(Subjectは program12)

  1. 課題1 の標準出力への出力結果
  2. 課題2 の標準出力への出力結果
  3. 課題3 の標準出力への出力結果

・ 応用課題1:「ルール違反のクラス」

  1. ソースファイル AbnormalClass.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。 問題なくコンパイルできましたか?
  3. 実行できるならば実行してみなさい。 このようなクラスは作成すべきでしょうか?

・ 応用課題2:「ルール違反のクラス(2)」

  1. 上記のクラスの getClass()メソッドもおかしな内容に書き加えようとしてみなさい。できるでしょうか?
  2. なぜそうなるのか調べてみなさい。(詳しくは後期の「クラスの継承」 のところで解説します。)

実習の目次   今週の講義の内容