模擬試験の解答 ないので、選択肢 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 行目からループが再開されます。このような複雑なループロジックの問
模擬試験の解答 問題 28 正解は選択肢 A です。浮動小数点数では 1 / 3 という分数を正確に表すことはで きません。 3 を掛けても元の数値には戻りません。このため、選択肢 B は不正解で す。 2 つの浮動小数点数が等しいかどうかをテストする際には、とくに注意が必要 です。コンパイラは A 変数の初期化を支障なく行えるので、選択肢 C は不正解で す。 = = は基本データ型と参照変数に使用できるので、選択肢 D は不正解です。 答模擬試験 問題 29 正解は選択肢 A です。とくにキャストを指定しなければ、コンパイラが d 。 uble 値を int 値に変換することはありません。このプログラムはコンパイルできす、 キャスト例外は参照変数のキャストによってのみ生成されるので、選択肢 B は不 正解です。このコードはコンパイルできないので、選択肢 C は不正解です。 1 行目 では double 型値を正しく初期化しているので、選択肢 D は不正解です。小数点を 持っ数値定数は自動的に d 。 uble 値と解釈されます。 問題 30 正解は選択肢 B です。 J はし ng オプジェクトではないので、テスト結果は se になります。このため、選択肢 A は不正解です。参照変数の equals テストでは、 常に入力オプジェクトのクラスが正しいことを確認してから内容を比較します。 equ ホメソッドのシグニチャはすべてのオプジェクト参照を受け取るので、選択 肢 C と選択肢 D は不正解です。 問題 31 正解は選択肢 C です。パラメータリストが異なるため、この宣言では GenericFruit クラスのメソッドをオーバーライドできません。選択肢 A と選択肢 B は不正解です。コンパイラはこれをオーバーロードメソッドと見なすので、コン パイルできます。 問題 32 正解は選択肢 C です。この S ⅲ ng オプジェクト配列は、 SportingDog を使って狩 をする猟獣の名前を保存するために使用できます。選択肢 A と選択肢 D は不正解 です。基本クラスの avgWeight 変数と breedName 変数をシャドウしてもトラブル 461
模擬試験の解答 問題 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
模擬試験の解答 示しないので、選択肢 B は不正解です。選択肢 C は有効な GridBagLayout コンス トラクタではないので不正解です。 C d レ y 。 ut では一度に 1 コンポーネントしか 表示されないので、選択肢 D は不正解です。 問題 43 正解は選択肢 A と選択肢 D です。選択肢 A については、 Frame オプジェクトに はデフォルトで Border レ yout が使われるので、レイアウトマネージャを nu Ⅱに設 定しなければなりません。そうしないと、ラベルは Center 位置に表示されます。 選択肢 D は、 Frame オプジェクトのインセットを考慮してラベルを正しく配置す るために必要です。選択肢 B は setLayoutManager という存在しないメソッドを 使っているので、不正解です。試験では、存在しないメソッドを使う選択肢がよ く出てきます。選択肢 C ではインセットを考慮していないので、不正解です。イ ンセットを考慮しないと、メニューバーの一部または全部にラベルが重なります。 答模擬試験 問題 44 正解は選択肢 C です。 MenuB オプジェクトに Menu オプジェクトを追加し、 Menu オプジェクトに MenuItem オプジェクトを追加します。 MenuComponent は ほかのメニュー関係のクラスの派生元にある抽象クラスなので、選択肢 A は不正 解です。 MenuItem はユーザーが実際に選択するオプジェクトなので、選択肢 B は 不正解です。 PopupMenu は任意のコンポーネントに追加できる MenuItem オプ ジェクトのコンテナなので、選択肢 D は不正解です。 P 叩 upMenu を MenuBar に 追加することもできますが、これは一般的ではありません。 問題 45 正解は選択肢 D です。日 ow レ yout は高さを修正せずにコンポーネントを配置し ます。 BorderLayout では East 、 west 、 center の各位置のコンポーネントの高さが 修正されるので、選択肢 A は不正解です。 GridBagLayout では一般にコンポーネン トの高さと幅が修正されるので、選択肢 B は不正解です。 CardInyout のコンポー ネントのサイズはコンテナに合わせて変更されるので、選択肢 C は不正解です。 問題 46 正解は選択肢 B と選択肢 c です。これらはどちらも有効な配置オプションです。 465
模擬試験の解答 問題 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
練習問題 8 練習問題 、 T 0 問題 8 - 8 Java のガべージコレクションに関する説明として正しいのは、次のどれで すか ( 正しいものをすべて選んでください ) 。 ロ A. 次のコードを使って、ガべージコレクションを開始できる Runtime. getRuntime ( ) . gc ( ) : Thread. yield ( 房 ロ B. 次のコードを使って、ガべージコレクションを開始できる System. gc() ー Thread. S1eeP(1000) : ロ c. ガべージコレクションスレッドの優先度は低い ロ D. 使われないオブジェクトを検出する手順は、 Java 言語仕様で規定さ れている ロ E. メモリを再利用できることを確認する手順は、 JVM の実装時に独自 に決めてかまわない 解説 正解は選択肢 C と選択肢 E です。 JVM は低い優先度をガべージコレクションス レッドに与えるので、選択肢 c は正解です。 JVM を実装する設計者は、最適なガ べージコレクションの手順を独断で選択できるので、選択肢 E も正解です。選択 肢 A と選択肢 B は不正解です。ガべージコレクションを「開始できる」と断言さ れていますが、その保証はありません。 Java 言語仕様に手順は規定されていない ので、選択肢 D は不正解です。 21 1
練習問題 問題 13 - 8 あるアプリケーションのユーザーインタフェースに java. awt. Choice オブ ジェクトがあり、アプリケーションのフォアグラウンドカラーを設定するた めにユーサーが選択できる色のリストを表示しています。新しい色が選択さ れた場合に通知を受けるには、このコンポーネントにどのリスナーを追加す ればよいですか。 〇 A. ItemListener 〇 B. ActionListener 〇 C. SelectionListener 〇 D. MouseEventListener ー解説 正解は選択肢 A です。 Choice オプジェクト、 List オプジェクト、メニューの項目 を選択または選択解除すると、 ItemEvent オプジェクトが作成されて lteml-istener オプジェクトに送られます。 Ac ⅱ onEvent イベントは Choice オプジェクトでは生成 されないので、選択肢 B は不正解です。 SeIectionEvent というイベントは存在しな いので、選択肢 C は不正解です。マウスイベントを使って Choice オプジェクトの 項目選択を解釈することはできないので、選択肢 D は不正解です。 た練習問題 367
練習問題 第 解説 正解は選択肢 c です。 b e 型のサイズは 8 ビットで、符号付きの値を表します。 選択肢 A と選択肢 B は不正解です。 問題 2 - 7 long 型変数に格納できる値の範囲は、次のどれですか。 〇 A. 0 ~ 232 - 1 〇 B. - ~ 2 ~ 2 - 1 〇 C. - ~ 3 ~ 263 - 1 2 練習問題 正解は選択肢 C です。 long 型のサイズはビットで、符号付きの値を表します。 選択肢 A と選択肢 B は不正解です。 問題 2 - 8 Java 変数の名前として使用できないのは、次のどれですか。 ロ A. my_stuff ロ B. —yourStuff ロ C. $money ロ D. % path ロ 2enchantedEvening E.
模擬試験の解答 問題 39 正解は選択肢 A と選択肢 B です。選択肢 A では Bo d オプジェクト全体をロッ クしているので、正しく動作します。選択肢 B では pics 配列をロックしているの で正しく動作します。 mglmage をロックしても配列は保護されないので、選択肢 C は不正解です osynchronized ステートメントにはオプジェクト参照を指定しなけ ればなりませんが、 ac ⅱ ve は基本データ型変数なので、選択肢 D はコンパイルでき ません。 問題 40 正解は選択肢 B と選択肢 C です。 imT ( ) メソッドが w 血 ( ) メソッドを呼び出 すと、 animC オプジェクトのロックは解放されます。選択肢 A は不正解です。待 機状態の animT( ) メソッドはオプジェクトをロックしていないので、ほかのス レッドは任意のメソッドを使って囲 C オプジェクト内のデータを修正できます。 スレッドが割り込まれると InterruptedException が生成されるので、選択肢 D は不 正解です。この例外は while ループ内でキャッチされるので、 animT メソッドは再 び wait() メソッドに入ります。 問題 41 正解は選択肢 B 、 D 、 E です。 st 叩 ( ) は推奨されないメソッドなので、選択肢 B は正解です。 suspend ( ) は推奨されないメソッドなので、選択肢 D は正解です。 sleep ( ) はインスタンスメソッドではなく static ( クラス ) メソッドなので、選択肢 E は正解です。 s ね ( ) は新しいスレッドを runnable 状態にするための羽 lread クラ スのインスタンスメソッドなので、選択肢 A は不正解です。 run() は ffread クラ スのインスタンスメソッドなので、選択肢 C は不正解です。すべての Java オプジェ クトには toS ⅲ ng ( ) インスタンスメソッドがあり、 lread オプジェクトも例外で はないので、選択肢 F は不正解です。 jo ⅲ ( ) は lread クラスのインスタンスメソッ ドなので、選択肢 G は不正解です。問題文は少し入り組んでいますが、このこと から問題文を慎重に読むことの重要さが窺えます。 問題 42 正解は選択肢 A です。 GridLayout は、パネルのサイズが変わったときに、各ポ タンを同じ分ずつ表示しようとします。 FlowI-ayout は収まりきらないボタンを表 464
練習問題 解説 正解は選択肢 B と選択肢 C です。選択肢 B のコードは、 7 行目でこのシグニチャ のコンストラクタが呼び出されているので、不可欠です。選択肢 C のコードは、 3 行目のコンストラクタをコンパイルするためにデフォルト ( パラメータのない ) コ ンストラクタが必要なので、不可欠です。選択肢 A のシグニチャのコンストラク タは、 DerivedDemo クラスで呼び出されないので、不要です。 4 練習問題 1 09