・   「Java入門編」実習 第5回

まとめ(オブジェクトとJVMのメモリ管理)

前期のまとめとして、オブジェクトとJVMのメモリ管理について考察します。


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


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

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

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

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

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

  1. 課題1 の実行結果
  2. 課題2 の実行結果

・ 応用課題:「ソートのアルゴリズムの比較」
適当な個数のサンプルを自動生成させ、ソートのアルゴリズムのテストをします。 先週のサンプルに、ソート無しの場合の実行速度や、 SDKのクラスライブラリに提供されているソートのメソッドも 呼び出す場合も追加しました。比較してみてください。 また、ソートのアルゴリズムによってどの程度処理の速度が違うか考察しなさい。

  1. ソースファイル SortTest.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. (この課題は Linuxの環境で行ってください。)
    コマンドの処理の時間を調べるコマンド time を使用します。
    標準出力への表示は行わないように /dev/null にリダイレクトします。
    次のように引数を与えてみて、実行結果を確認します。
  4. それぞれのアルゴリズムについて、データ数が 100個、1000個、10000個、100000個 でどのくらいの差が生じるか調べなさい。
    また、ソートを実行しないオプション(d)で、ソート以外の処理でどの程度の 時間が消費されているかも調べ、比較に利用しなさい。
    既存のSDKのクラスライブラリにある java.util.Arraysクラスによって 提供される sort()メソッドとも比較してみなさい。

time java SortTest d 100 > /dev/null
time java SortTest s 100 > /dev/null
time java SortTest b 100 > /dev/null
time java SortTest q 100 > /dev/null
time java SortTest m 100 > /dev/null
time java SortTest j 100 > /dev/null


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