模擬試験 問題、問題、また問題 試験には難しい問題が多く出題されます。実際、簡単と思えるような問題は稀 です。重要なのは、問題文をよく読んで理解することです。 これは、すべての問題文を時間をかけて読まなければならないということでは ありません。問題文が長く複雑で、とくにコード例が含まれているような場合に は、選択肢から先に読んだ方がよいこともあります。そうすれば、何に注意すべ きかを踏まえた上で問題文を読むことができます。 正解を選ぶ方法 当たり前のことですが、試験に合格する唯一の方法は、合格基準を満たす数の 正解を得ることです。この模擬試験で言えば、 59 問中 42 問以上に正解しなければ なりません。正解となる選択肢が複数ある問題もあるので、実際に選ぶ正解の選 択肢数は 42 以上になります。試験問題はランダムな順序で出題されます。 1 つの 問題で触れている内容がほかの問題にも出てくることもよくあります。 1 つの問題 で不正解だった選択肢が別の問題の正解であることも珍しくありません。正解が すぐにわかった場合でも、それぞれの問題のすべての選択肢に目を通してくださ い。これによって、ほかの問題に関係する事項を思い出すこともあります。 どの問題も、何度でも好きなだけ見直すことができます。自信のない問題があ る場合は、後から見直すために、チェックポックスにマークを付けておきましょ う。また、ほかの問題を解くのに役立っと思われる情報を含む問題にもマークを 付けることができます。 試験ソフトウェアでは、すべての問題にマークを付けられるようになっていま す。このしくみを大いに利用してください。後からもう一度見たい問題にはすべ てマークを付けましよう。試験ソフトウェアでは、マークを付けた問題に手早く 簡単に戻ることができます。 402
本書について 「ヒント」はこのスタイルで示します。この部分を注意して読んでお きましよう。 > - 練習問題 各章の後半には練習問題を用意しています。この部分では、練習用の問題と、 正誤両方の解答についての解説を掲載しています。 練習問題では次のアイコンを使用します。 す ck ! 通常、このアイコンは、完全な引っかけ問題ではないとしても、かなりひね くれた設問であることを示します。このアイコンのある問題は、じっくりよ く読まないと間違えやすい問題です。数は多くありませんが、この種の問題 は必ず出題されます。試験に合格するには、学習ポイントをあらゆる角度か ら理解していることが必要ですが、それと同じぐらいに読解力も重要視され ます。 以上のレイアウトを除いた残りの部分は、学習テーマに関する補足的な説明で す。ただし、いくつかのほかの要素もあります。巻末には模擬試験を用意してい ます。この模擬試験を解くことで、本書を通じて習得した知識をおさらいして、試 験に備えることができます。模擬試験の後には模擬試験の解答があります。さら に、「自己評価リスト」、「試験会場一覧」、「参考資料」、「サン・マイクロシステム ズ社提供のトレーニングコース」を掲載した付録、用語の意味を解説する用語集、 用語を探すための索引があります。 表紙の次にある切り離し可能なチェックシートには、試験を受ける前に暗記し ておく必要がある項目、数値、ヒントなどが簡潔にまとめられています。問題を 解く直前に、このシートを使って暗記した知識をメモ用紙に書き留めることがで きるので、とにかく強引に丸暗記するようにしてください。試験会場に入ってメ モ用紙を受け取るまで覚えていれば十分です。車の中やテストセンターのロビー でチェックシートの内容を頭に叩き込んでから、試験会場に入るとよいでしよう。
試験の環境 で実施されます。通常、このプースには大きな窓があり、試験官が受験者を監視 して、受験者同士の会話やカンニング行為を見張れるようになっています。当然 のことですが、プースにメモを持ち込むことはできません。 プースには、白紙またはマーカー付きのホワイトボードが用意されています。 試験に出そうな情報をメモしておくのに使うことができます。ただし、試験会場 からメモを持ち出すことはできません。覚えたかどうか自信のないトピックがあ る場合は、試験の直前に本書に付属しているチェックシートを丸暗記して、試験 プースに入ってからメモ用紙に書いておくとよいでしよう。 試験に使われるコンピュータは、マウスとキーポードがある普通のタイプのも のです。最初の画面には、オリエンテーション試験を実行するオプションが表示 されています。まだこのオリエンテーションを実行したことがない場合は、実行 する必要があります。実際の試験を開始するオプションを選択するまでは、試験 のタイマーは作動しません。認定試験の出題数は約問で、これを 120 分間で解 答します。本書を使って十分に学習していれば、時間は余るでしよう。 1 解説 問題の種類 問題は、スクロールできる形式でウインドウに表示されます。問題のパター ン には、次の 3 タイプがあります。 > - ラジオボタンを使った選択問題 小文字のラベルが付いた丸いラジオボタンのある複数選択肢から成る問題形 式。マウスでボタンをクリックするか、ラベル文字をキーポードで入力して 解答を選択します。選択できるのは 1 つのボタンだけです。 > ・チェックポックスを使った選択問題 このタイプの問題では、正解は 1 つだけとは限りません。そのため、丸いラ ジオボタンではなく、四角いチェックポックスが使われます。問題に正解す るには、正しい答えをすべてチェックする必要があります。正しい答えを部 分的に選択したからといって、その分だけ得点が与えられるわけではありま せん。 9
受験時の注意 問模擬試験 暗記しておきたい部分 Java のキーワードについては完全に理解しておくことが重要です。アクセス修 飾子の正しい解釈に関する問題は、驚くほど多くの割合を占めています。本書の 巻頭にある直前チェックシートを使って、とくによく出題されるキーワードを見 直しておきましよう。各章の練習問題および模擬試験で間違った問題を十分に分 析して、自分の弱みを理解する必要があります。チェックシートに自分で必要事 項を書き足してもよいでしよう。 貮験の心構え 試験の心構えをするには、十分に勉強した後で、模擬試験を少なくとも 1 回は 受けるのが最適です。この章には模擬試験を用意してあります。これまでの各章 の練習問題とは異なり、問題のすぐ後には解答がありません。解答は次章に別途 己載してあります。 この模擬試験の制限時間は 90 分です。試験の規則を忠実に守り、この章以前の 章を調べたり、次章の解答を覗いたりしないようにしましよう。制限時間になる か、問題をすべて解き終わったら、「模擬試験の解答」を見て答え合わせをしてく ださい。不正解の選択肢についての解説もよく読んでください。それによって、そ れぞれのトピックに対する理解がより深まります。正しい選択肢を見極める方法 を知ることは重要ですが、不正解の選択肢が間違っている理由を理解することも 同じくらい重要です。 当然のことですが、紙面では実際のコンピュータ管理試験をシミュレートする ことはできません。 受験時の注意 リラックスして試験に臨みましよう。いったんテスト用コンピュータの前に 座ってしまったら、自分の知識を増やすためにできることはもう何もありません。 深呼吸をし、伸びをしたら、 1 つ目の問題から解きはじめましよう。 403
模擬試験の解答 問題 51 正解は選択肢 C です。 + = 代入では、元の S ⅲ ng テキストとリテラルを連結した 新しい S ⅲ ng オプジェクトが作成されます。このため、選択肢 A と選択肢 D は不 正解です。 + = 代入は完全に有効なので、選択肢 B は不正解です。もし無効だった としても、コンパイラが問題を検出します。元の S ⅲ ng オプジェクト値が変わら ないのは事実ですが、 2 行目のステートメントでは新しい S ⅲ ng オプジェクトを作 成しています。有効な S ⅵ ng オプジェクト操作についての知識を試す問題は、少 なくとも 1 題は出題されます。 答模擬試験 問題 52 正解は選択肢 B だけです。 + = 演算子が定義されているのは S ⅲ ng クラスだけで す。この操作では、新しい S ⅲ ng オプジェクトを作成して A 変数に代入していま す。 - = 演算子は S ⅵ ng オプジェクトに対して定義されていないので、選択肢 A は 不正解です。 lnteger オプジェクトには算術演算子が定義されていないので、選択 肢 c と選択肢 D は不正解です。 lnteger オプジェクトを変更することはできないの で、選択肢 D は正しいように見えるかもしれませんが、無効です。 問題 53 正解は選択肢 B です。コンパイラは「 + 」演算子を使うには S ⅲ ng オプジェクト の連結が必要だということを認識します。このため、選択肢 A は不正解です。コ ンパイルされるコードは日 oat. toS ⅲ ng ( ) メソッドを使って A 変数の値を S ⅲ ng オ プジェクトに変換するので、選択肢 C は不正解です。 問題 54 正解は選択肢 A です。 Ac ⅱ onEvent は List オプジェクト上の項目をダブルクリッ クしたときに発生します。選択肢 B は不正解です。 rollb オプジェクトは移動 されたときに AdjustmentEvent を生成します。 Canvas と panel は ActionEvent を生 成できないので、選択肢 c と選択肢 D は不正解です。生のマウス / キーポードイ べントは、イベントを受け取るコンポーネントが実装するロジックによって解釈 されるので、 ActionEvents は「意味上のイベント」と考えられています。 467
第 1 章 Java とサン・マイクロシステムズ認定試験 Swing グラフィックスコンポーネント、 JDBC (Java Database Connectivity) 、ま Java 言語の基礎 ガーベッシコレクション 制御文と例外処理 クラス定義とアクセス制御 オーバーロード、オーバーライド、実行時のデータ型 演算子とデータのメモリ割り当て スレッド java. iO / ヾッケージ java. util パッケーシ java 」 ang パッケージ java. awt パッケージ - レイアウト ていない C および C + + プログラマを狙った問題が数多く出題されることにお気づ すでに認定試験を受けたことのある方は、 C + + と Java の基本的な違いを把握し の深い基本知識を忘れているためにつまづくことがあります。 があり、本格的なアプリケーションを作成したことのあるプログラマでさえ、 Java かを判定することであり、それが徹底的に問われます。数年間の Java の実務経験 いないことに注意してください。この試験の目的は Java の基本知識があるかどう たは JavaBe s といった特定のライプラリやツールキットにはいっさい言及されて 示す 2 点です。 Java2 試験のトピックは、 JDKI. 1 試験とよく似ています。大きな違いは、次に JDK 1.1 試験との違い ては、本書の解説の中で特にその点を強調します。 きでしよう。 C 言語が頭から抜けていない場合につまづきやすいトピックに つし、
模擬試験の解答 問題 20 正解は選択肢 B と選択肢 C です。メンバ変数の基本データ型数値配列は作成時 に自動的に 0 に初期化されるので、選択肢 B のコードは正しく動作します。メソッ ド内で宣言された変数の場合、このことは当てはまりません。選択肢 C のコード は正しく動作しますが、ループが必要なのは、 0 以外の初期値を設定する場合だけ です。選択肢 A では初期化された配列を作成していますが、これはメンバ変数で はなく口一カル変数なので、不正解です。問題文では「 Test コンストラクタ内に」 と述べています。重複した変数宣言に関する問題を見極めるのは困難です。選択 肢 D のように大カッコリストを使った初期化方法は、変数を宣言するステートメ ント内でしか使用できません。したがって、選択肢 D は不正解です。 答模擬試験 問題 21 正解は選択肢 A です。コンストラクタでは S ⅶ lg 日型の新しい配列を作成してい ます。この配列内の項目にはすべて n ⅶ値が格納されています 0NuIIPointerException が生成されるのは、コンストラクタで配列を作成していない場合だけなので、選択 肢 B は不正解です。配列はサイズ 10 で作成されており、配列インデックス 2 は有効 なので、選択肢 C は不正解です。 nu Ⅱ参照が見つかると、 S ⅲ ng オプジェクトの変換 プロセスによって空白ではなく「 null 」という文字に置き換えられるので、選択肢 D は不正解です。 問題 22 正解は選択肢 A と選択肢 C です。この設問の 16 進リテラルは 10 進数の 101 に相 当し、 8 進リテラルは 10 進数の 53 に相当します。 1 行目では 16 進リテラルを、 2 行 目では 8 進リテラルを使っているので、選択肢 B は不正解です。例外を報告するの はコンパイラではなく Java ランタイムなので、選択肢 D のようなことはあり得ま せん。 問題 23 正解は選択肢 B です。 ralpha 」のインデックスは 0 です。このため、選択肢 A と 選択肢 c は不正解です。すべての Java 配列と同様、 argsString 配列のアドレスは 0 からはじまります。 m 凾 n メソッドには問題がないので、選択肢 D は不正解です。 試験では、 m ⅲ n メソッドの正しいシグニチャとコマンドラインの解釈方法につい ての問題が、少なくとも 1 つは出題されます。 459
模擬試験の解答 の原因になるだけで、利点は何もありません。「 SportingDog が Dog を持つ (SpoügDoghas a Dog) 」必要はないので、選択肢 B は不正解です。 SportingDog は Dog を継承しているので、はじめから「 SportingDog は Dog (SportingDog is a Dog) 」です。サン・マイクロシステムズの資料では、よく「である ( isa ) 」と「を 持つ (hasa) 」の違いを説明しているので、試験ではこれらの用語が出題される可 能性があります。 問題 33 正解は選択肢 A 、 B 、 D です。ⅲ ner クラスはそれを囲んでいるクラス内のすべ ての s ねⅱ c な変数とメンバ変数にアクセスできるので、選択肢 A と選択肢 B は正解 です。選択肢 D はローカル変数ですが、血として宣言されているので、正解で す。ローカル変数 nn は血として宣言されていないので、選択肢 C は不正解で す。このように血キーワードを特殊な方法で使うと、コンパイラは永続的な位 置にこの変数用の記憶域を用意します。メソッド内で作成したインナークラスオ プジェクトはそのメソッドよりも長く存続することができるので、このような手 段が必要となります。 問題 34 正解は選択肢 A です。メソッド名と入力パラメータの型が同じなので、コンパ イラは親クラス内の 0 ⅱ es メソッドをオーバーライドしようとしていることを発 見します。しかし、メソッドをオーバーライドする際に異なる戻り値型を使うこ とはできないので、コンパイルエラーが発生します。パラメータリストで使われ ている名前はメソッドのシグニチャには含まれないので、選択肢 B は不正解です。 重要なのは変数の型です。このコードはコンパイルできないので、選択肢 c と選 択肢 D は不正解です。問題 34 と問題 31 では、使っている語が多少違っているだ けですが、結果は大きく異なっています。メソッドのオーバーロードとオーバー ライドの違いをしつかりと理解しておいてください。 問題 35 正解は選択肢 C です。コンパイラはこのメソッドコードを問題なくコンパイル できます。 instanceof テストでは抽象クラスを使用できるので、選択肢 A は不正解 です。ⅲ s ね nceof テストではインタフェースを使用できるので選択肢 B は不正解で す。 Java でプログラミングを行うにはⅲ s ね nceof 演算子の使い方を覚えておくこと 462
模擬試験の解答 セスに関する処理はすべてランタイムシステムではなくコンパイラが行うので、 選択肢 c は不正解です。派生クラスから親クラス内のⅵ vate 変数にアクセスする ことはできないので、選択肢 D は不正解です。試験では、アクセス修飾子につい ての問題が必す出題されます。問題文で正しいものをすべて選ぶように述べてい ても、正解は 1 つしかないことがあります。 答模擬試験 問題 5 正解は選択肢 B です。次のコンパイルエラーメッセージが表示されます クラス Base は public であり、ファイル Base. java で宣言しなければなりません。 1 つの Java ソースコードをコンパイルすることによって複数のクラスが生成さ れることは珍しくありませんが、 2 つの public クラスを同じ Java ソースファイル に含めることはできません。選択肢 A は不正解です。 public クラスの名前がファ イル名と一致していないので、コンパイルエラーが発生します。選択肢 C は不正 解です。ただし、ソースファイルの名前が Base.java であれば選択肢 C が正解にな ります。 問題 6 正解は選択肢 A です。 6 行目で synchronized を使っているので、複数のスレッ ドから W1dget オプジェクトを作成しようとしても、番号割り当てが割り込まれる ことはありません。 W1dget. addW1dget を使うこともできますが、 10 行目の構文は 正しいので、選択肢 B は不正解です。 addW1dget メソッドには、ランタイムエラー を生成するようなコードはないので、選択肢 C は不正解です。 6 行目で synchron ed を使っているため、複数のスレッドから W1dget オプジェクトを作成しようとして も番号割り当てが割り込まれることはないので、選択肢 D は不正解です。 問題 7 正解は選択肢 B と選択肢 D です。 protected 修飾子を使うと、派生クラスおよび 同じパッケージ内のクラスからアクセスできるので、選択肢 B は正解です。 public 修飾子を使うとどこからでもアクセスできるので、選択肢 D は正解です。 p ⅱ vate 修 飾子を使うとほかのクラスからはいっさいアクセスできないので、選択肢 A は不 455
模擬試験の解答 ないので、選択肢 C は不正解です。 問題 8 正解です。デフォルトのアクセスでは、同じパッケージ内からしかアクセスでき 正解は選択肢 A です。 5 行目のステートメントが実行されるたびに、 continue に 456 の制限は、コンパイラが s ⅵ tch ステートメントを処理する各 case のコードを指す テートメントで long 型値を使うことはできないので、選択肢 C は不正解です。 すべての case ステートメント定数が正しい範囲内でなければなりません。 s ⅵ h ス 正解は選択肢 A と選択肢 B です。 ch 型と b e 型の値を使用できます。ただし、 問題 11 switch((int)x) というようにキャストを行わないと、コンパイルできません。 ステートメントで long 型値を使うことはできないので、選択肢 D は不正解です。 持たない b e 型を指定することができないので、選択肢 A は不正解です。 switch また int 型に変換できなければなりません。 x には case の 28 と 38 との互換性を トメントの変数は、 case ステートメント内のすべて値に対応できなければならず、 と選択肢 C は有効です。コンパイラは 2 つの点をチェックします。 switch ステー トメント内のすべての値に対応していなければなりません。このため、選択肢 B 正解は選択肢 B と選択肢 C です。 s ⅵ tch ステートメントで使う型は、 case ステー 問題 10 ります。したがって、選択肢 D は不正解です。 は Run ⅱ meExcep ⅱ on から派生していないので、メソッド宣言で宣言する必要があ 「 maythrow 」は有効な表現ではないので、選択肢 c は不正解です。これらの例外 です。選択肢 B のように、各例外をカンマで区切って指定することができます。 正解は選択肢 A と選択肢 B です。 BadTasteException においても例外処理は可能 問題 9 クを書き出してみましよう。 題はよく出題されます。焦らずに、必要であればメモ用紙を使ってループロジッ よって 2 行目からループが再開されます。このような複雑なループロジックの問