
|
製品の説明
Java の包括的な知識から、プログラムの作成まで
他言語での経験はあるが、オブジェクト指向プログラミング言語の経験がなく、アプリケーションを Java に移植ないし、Java を守備範囲に加えたいと思っているプログラマの方向けにプログラミングコンセプト、開発知識とともに Java の文法の知識、基本的なライブラリを使用したプログラミングの作成能力についてなど、Java の包括的な知識についてテストします。
※こちらの試験はSun Certified Developer, Web Component Developer, Business Component Developer受験の際の前提条件となっております。
Web サイトでご購入いただいた試験は、日本以外の国ではご使用いただけない場合があります。日本以外にお住まいの場合は、国を選択して、お客様の居住国で提供されている製品についてお問い合わせください。試験バウチャーをご購入いただいた場合、その使用期限は購入日から 1 年間です。各バウチャーは 1 つの試験に対して有効であり、バウチャーを購入した国の Sun 認定 Prometric テストセンターでしかご利用いただけない場合があります。試験バウチャーの払い戻しは一切お受けできませんので、あらかじめご了承ください。
詳細情報
- 提供場所: プロメトリック認定試験場
- 前提条件: なし
- 試験方式: 多肢選択式/ドラッグ&ドロップ
- 設問数: 60
- 合格スコア: 58%(60問中35問以上)正解
- 時間制限: 180 分
上に戻る
主な出題範囲
宣言、初期化、スコープ
- クラス(抽象クラス、およびあらゆる形式のネストクラスを含む)、インタフェース、列挙型を宣言し、パッケージおよびインポート文(staticインポートを含む)を正しく使用しているコードを書く。
- インタフェースを宣言するコードを書く。1つまたは複数のインタフェースを実装または拡張するコードを書く。抽象クラスを拡張するコードを書く。
- プリミティブ型、配列型、列挙型、オブジェクトをstatic、インスタンス変数、ローカル変数として宣言、初期化、使用するコードを書く。変数名に正しい識別子を使用する。
- {staticメソッドとstaticでないメソッドの両方を宣言するコードを書く。この場合、JavaBeansの命名規則に準拠したメソッド名を使用する。可変長引数リストを宣言、使用するコードを作成する。
- 与えられたコード例で、あるメソッドが別のメソッドを正しくオーバーライドまたはオーバーロードしているかを確認し、そのメソッドに対する正しい戻り値(共変戻り値を含む)を識別する。
- 与えられたクラスおよびスーパークラスに対し、1つまたは複数のクラスに対するコンストラクタを作成する。与えられたクラスに対し、デフォルトコンストラクタが作成されるかどうかを判断し、作成される場合はそのコンストラクタのふるまいを特定する。与えられたネストまたはネストされていないクラスに対し、そのクラスをインスタンス化するコードを書く。
フロー制御
- if文またはswitch文を実装するコードを書いて、それらの文に対して正しい式を識別する。
- for、拡張forループ(for-each)、do、while、ラベル、break、continueなど、あらゆる型のループや反復子を実装するコードを書き、ループ実行中と実行後のループカウンタ変数の値を説明する。
- アサーションを使用するコードを書いて、アサーションの適切な使用方法と不適切な使用方法を識別する。
- 例外と例外処理句(try、catch、finally)を使用し、例外をスローするメソッドおよびそのメソッドをオーバーライドするメソッドを宣言するコードを書く。
- コード内の特定の行で例外が発生する影響を認識している。例外には、実行時例外、チェックされる例外、エラーが含まれる。
- 次のいずれかがスローされる結果になる状況を認識できる。
ArrayIndexOutOfBoundsException、ClassCastException、IllegalArgumentException、IllegalStateException、NullPointerException、NumberFormatException、AssertionError、ExceptionInInitializerError、StackOverflowError、NoClassDefFoundError
これらのうちのどれが仮想マシンでスローされるかを知っており、その他については、プログラムでスローすべき状況を認識できる。
APIコンテンツ
- プリミティブラッパークラス(Boolean型、Character型、Double型、Integer型など)、autoboxing/unboxingを使用するコードを書く。String、StringBuilder、StringBufferクラス間の違いを説明する。
- ファイルシステムのナビゲーション、ファイルの読み込み、ファイルの書き込みを含むシナリオが与えられたとき、java.ioパッケージのクラスのうち、BufferedReader、BufferedWriter、File、FileReader、FileWriter、PrintWriterを使用して(組み合わせを含む)正しいソリューションを作成する。
java.ioパッケージのAPIのうち、DataInputStream、DataOutputStream、FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream、Serializableを使用してオブジェクトをシリアライズまたはデシリアライズするコードを書く。さらに、transient変数およびprivate指定されたreadObjectメソッドとwriteObjectメソッドを宣言して使用するSerializableクラスを作成する。シナリオやコード例が与えられたとき、デシリアライズ中、オブジェクトの継承チェーンでコンストラクタが呼び出されるか、呼び出されるとするといつどのコンストラクタが呼び出されるかを知っている。
- java.textパッケージの標準J2SE APIを使用して、特定のロケール用の日付、数値、通貨の値の正しい書式化または解析を行う。与えられたシナリオで、デフォルトロケールまたは特定のロケールを使用する場合に適切なメソッドを特定する。java.util.Localeクラスの目的と用途を説明する。
- java.utilパッケージおよびjava.util.regexパッケージの標準J2SE APIを使用して文字列またはストリームを書式化または解析するコードを書く。文字列に対しては、PatternクラスとMatcherクラスおよびString.splitメソッドを使用したコードを書く。マッチングの正規表現パターン(.(ドット)、*(アスタリスク)、+(プラス)、?、\d、\s、\w、[]、()に限定)を認識、使用できる。*、+、?は最長マッチの修飾子に限られ、括弧演算子はグルーピングメカニズムにのみ使用し、マッチング中の内容の捕捉には使用しない。ストリームに対して、FormatterクラスとScannerクラスおよびPrintWriter.format/printfメソッドを使用したコードを書く。書式文字列で書式化パターン(%b、%c、%d、%f、%sに限定)を認識、使用できる。
並行性
- java.lang.Threadとjava.lang.Runnableの両方を使用して新しいスレッドを定義、インスタンス化、開始するコードを書く。
- 存在し得るスレッドの状態を認識し、スレッドの状態がどのように変化できるかを識別する。
- 与えられたシナリオで、static変数やインスタンス変数が同時にアクセスされないように保護するオブジェクトロックを正しく使用するコードを書く。
- シナリオが与えられたとき、waitメソッド、notifyメソッド、notifyAllメソッドを正しく使用するコードを書く。
オブジェクト指向コンセプト
- 密なカプセル化、弱い結合度、高い凝集度を実装するコードを書いて、利点を説明する。
- 与えられたシナリオで、ポリモフィズムを使用するコードを書く。さらに、キャストが必要な場合を識別し、オブジェクト参照のキャストに関するコンパイラエラーとランタイムエラーを識別する。
- コンストラクタ、インスタンス変数またはstatic変数、インスタンスメソッドまたはstaticメソッドに関する継承の修飾子の効果を説明する。
- 与えられたシナリオで、オーバーライドまたはオーバーロードされたメソッドを宣言/呼び出すコード、およびオーバーロードされたスーパークラスのコンストラクタを宣言/呼び出すコードを書く。
- "is-a"または"has-a"関係を実装するコードを書く。
コレクション/ジェネリックス
- 与えられた設計シナリオで、その設計を正しく実装するにはどのコレクションクラス/インタフェースを使用するかを判断する。(Comparableインタフェースの使用を含む)
- 対応するhashCodeメソッドとequalsメソッドの正しいオーバーライドと正しくないオーバーライドを識別し、==とequalsメソッドの違いを説明する。
- Collections APIのうち、特に、Set<E>、List<E>、Queue<E>、Map<K,V>("<",">"は半角)インタフェースとその実装クラスのジェネリックスを使用するコードを書く。ジェネリックスを使用しないCollections APIの制限事項、およびジェネリックスを使用するためにコードをリファクタリングする方法を知っている。
- クラス/インタフェース宣言、インスタンス変数、メソッド引数、戻り値の型に型パラメータを正しく使用するコードを書き、ジェネリックスを使用したメソッドまたはワイルドカードの型を使用するメソッドを書いて、これらの2つのアプローチ間の類似点と相違点を説明する。
- java.utilパッケージの機能を使用して、リストのソート、バイナリ検索、リストから配列への変換など、リストの操作を行うコードを書く。リストと配列のソートにはjava.util.Comparatorとjava.lang.Comparableインタフェースを使用する。さらに、ソートに対するプリミティブラッパークラスとjava.lang.Stringの「自然順(natural ordering)」の効果を識別する。
Java言語の基礎
- 与えられたコード例とシナリオで、正しいアクセス修飾子、パッケージ宣言、インポート文を使用して例のコードと相互作用する(アクセスを行う、または継承関係を持つ)コードを書く。
- 与えられたクラスとコマンドラインの例で、期待される実行時のふるまいを特定する。
- オブジェクト参照やプリミティブ型の値が、代入やその他のパラメータの変更処理を行うメソッドに渡されたときに受ける影響を特定する。
- 与えられたコード例で、オブジェクトがガーベッジコレクションの対象になる時点を認識し、ガーベッジコレクションシステムによって何が保証されており、何が保証されていないかを識別する。System.gcとfinalizationのふるまいを識別する。
- JARファイルの内外にあるクラスの完全修飾名が与えられたとき、そのクラスの正しいディレクトリ構造を構成する。コード例とクラスパスが与えられたとき、そのクラスパスがコードのコンパイルに支障を来たすかどうかを判断する。
- 代入演算子(=、+=、-=に限定)、算術演算子(+、-、*、/、%、++、--に限定)、関係演算子(<、<=、>、>=、==、!=に限定)、instanceof演算子、論理演算子(&、|、^、!、&&、||に限定)、条件演算子(? :)などの演算子を使用して希望する結果を得るためのコードを書く。2つのオブジェクトまたは2つのプリミティブが等しいかどうかを判定するコードを書く。
上に戻る
|
|