2006-01-01から1年間の記事一覧
さて、未了項目のそうざらえも済んで、これで「レッスン with Java言語プログラミングレッスン」は終了となります。 「すごいスピード!」との評をいただきましたが、本当に無茶なペースで、凄いスピードでやってきました。あっという間に一週間、でも上下巻…
未了だった「String.replaceのドキュメントを読んでみる。」を再考してみます。分からなかったのは、ドキュメントには、 String replace(CharSequence target, CharSequence replacement) リテラルターゲットシーケンスに一致するこの文字列の部分文字列を、…
未了だった「参照遊び。」を再考してみます。分からなかったのは、この点でした。 気になるのは、「Rectangle@17590db」という表記。「Rectangleオブジェクト」で「メモリのロケーションが17590db」とか? 結局分からないままでしたが、でも一通りレッスンを…
未了だった「傘を持って。」を再考してみます。せっかくなので、「確率の範囲外」という例外を作ってみました。 import java.io.*; public class Kasa4 { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputSt…
未了だった「"&"と"&&"と"and"。」を再考してみます。実はif文を覚えた直後にもちょっと書き直してみたのですが、こんなコンパイル・エラーになって、解決できずにいました。 E:\study\02>javac testAndOr.java testAndOr.java:5: ここで 'void' 型を使用す…
7日目。未了だった項目をそうざらえ。これで一巻の終わりでございます。
下巻の付録まで、ゆっくりゆっくり読み終わりました。「上巻終了、下巻へ。」で「昨夜で上巻の資料まで読み終え、今日から下巻、章でいえば11章以降に入ります」と書いたのが3日目の朝、今が6日目の夜ですから、上巻は2日で終え、下巻は4日かけたということ…
練習問題19-3で、作成したMyStringArrayListの結果確認のため、MyStringArrayListにtoString()メソッドを追加し、UseMyStringArrayListクラスを作成しました。 まず、MyStringArrayListクラスのtoString()メソッド。 public String toString() { int size = …
「ArrayListのtoString();」を試したついでに、Set、Map、Map.EntryのtoString();も確認しておきます。 import java.util.*; public class HashTest { public static void main(String[] args) { Set<String> set = new HashSet<String>(); set.add("Alice"); set.add("Bob")</string></string>…
リスト19-10でLinkedListインスタンスをSysytem.out.printlnの引数にして、次のような出力を得ています。 [Bob, Chris, Diana, Elmo]もしかして、「Aliceは何人いる?」や「バイバイ、Alice」でforループを使って出力していた部分も、ListArrayですが同じよ…
「Aliceは何人いる?」ですが、よく考えたら保留するほどのことでもないですね。きっと、removeの引数がStringの"Alice"であれば"Alice"が消えて、intの5であれば5番目が消えるのでしょう。やってみます。 // list.remove("Alice"); list.remove(5);E:\study…
ArrayListからの削除と確認の項に、次のようなコードがあります。 // AliceとBobとElmoを削除 list.remove("Alice");Aliceが二人いたら、一人だけ消えるのでしょうか?それとも二人とも消えるのでしょうか?一人だけの時は、どちらが消えるのでしょうか? と…
本日の作業環境はJava1.4.2_11なので、genericsを試そうとしたらコンパイル・エラー。こんなエラーになります。 E:\STUDY\19>javac GcArray3.java GcArray3.java:4: <identifier> がありません。 static ArrayList<int[]> list = new ArrayList<int[]>(); ^業務用PCで、業務で使うパッ</int[]></int[]></identifier>…
ファイルから"EUC-JP"の文字データを読み込むと、文字が化けているように思われたので、対応方法を調査。まず、以下を手がかりにしました。 文字ストリームを扱うReaderやWriterを使えば、入出力を行うと同時に、文字コードの変換も行うことができるのです。…
JDKのコンパイラであるjavacは、コンパイル作業を行う前に、内部的に「OS依存文字コード→Unicode」の変換を行います。 Windows上で、上記のMakeHtml2をEUCコードに変換してから実行してみます。 E:\STUDY\18>javac MakeHtml2.java E:\STUDY\18>java MakeHtml…
ファイルの読み込み、ファイルの書き出しまで勉強したところで、第7章の練習問題で作成したMakeHtmlを次のような呼び出し方で使えるように改造してみます。 使用法:java MakeHtml2 入力(テキスト)ファイル 出力(HTML)ファイル 例:java MakeHtml2 profi…
closeメソッドを呼んで「ファイルをクローズする」必要があります。(略)これで、読み込みのために確保されていた資源(メモリやファイルハンドル、ファイルディスクリプタなど)が開放されます。 closeを明示的に呼ばなかった場合、どうなるんでしょう? ここ…
ShowFile1で「ファイル中のタブを半角空白×2に変換してから表示したい」と思い、whileループ内に一行追加してみました。 while ((line = reader.readLine()) != null) { line.replace("\t", " "); System.out.println(line); }E:\study\18>javac ShowFile1.j…
前のエントリでコンパイルができたので、いよいよ実行。 E:\study\17>java yourtool\YourTool Exception in thread "main" java.lang.NoClassDefFoundError: yourtool\YourTool (wrong name: yourtool/YourTool)javaコマンドに引数で与えるクラス名と、ソー…
素でコードを書き間違えたものを含めて、エラーメッセージをメモ。 E:\study\17>javac mytool\PublicTool.java yourtool\YourTool.java yourtool\YourTool.java:5: シンボルを解決できません。 シンボル: クラス PublicTool 場所 : yourtool.YourTool の ク…
1つのソースファイルに複数のpublicなクラスは宣言できません。 実験してみます。 public class PublicClasses { public static void main(String[] args) { System.out.println("PublicClasses executed."); } } public class PublicClasses2 { public stat…
練習問題16-6を1クラスで作ってしまったので、16-7も解答とはちょっと違う感じに。 public class PrintLines2 implements Runnable { String line = ""; int interval = 0; public PrintLines2(String s, int i) { this.line = s; this.interval = i * 1000;…
6日目。カウンタが跳ね上がっていることにびっくりしつつ(結城さん、ご紹介ありがとうございます!)やることは同じなので、淡々と進めます。
練習問題16-6で、考えすぎ。 それぞれ一つずつ動かすクラスをThreadクラスの拡張クラスとして作ってください。 メインクラスはThreadクラスの拡張クラス。 メインクラス自身はマルチスレッドで動く必要はない(=Threadを継承する必要がない)。 各ラインを…
サンプルどおりに実行すると、何度実行しなおしてもmainメソッド内でのカウントアップが終わってから、作成したスレッド側でのカウントアップが始まります。 main:i = 8 main:i = 9 run:i = 0 run:i = 1カウントの最大値(≒forループの終了条件)を100にして…
Perlでは気にしたこともないメモリ管理とガーベッジコレクションの話でしたので、簡単にキーワードだけメモしておきます。 Runtimeクラスには動作状況を管理するためのメソッドがあります。 Runtime.getRuntimeメソッドで、現在のRuntimeインスタンスを取得…
GcArray.javaを実行すると、最後にはメモリ不足のエラーになるのですが、途中では次のように何回かガーベッジコレクションが働いている形跡が。 残りメモリ = 130624 残りメモリ = 125408 残りメモリ = 1802192 残りメモリ = 1802192これで何回か途中で実行…
5日目。今日で終わりたいのだけど、15章から開始で19章までというのは結構つらいペースかな?
大事なものを入れる。 鍵をかける。 鍵をはずす。 入れたものを出す。 Lockableな実装群を考えると、部屋などもあるので「入る」「出る」もいりますよね。むしろこの辺りは「LockableBox」か「LockableRoom」かといった問題なので、「入れる」「出す」が入っ…
再起呼出が無限に行われてるからですね。ということで直感的に修正してみたものの、正しく動いているか心もとなかったので、出力を少し変えてみます。 public class FactorialTest { public static void main(String[] args) { System.out.println(factorial…