その7この記事は2017年3月21日に書かれたものです。内容が古い可能性がありますのでご注意ください。動作環境と問題内容についてjavaの練習問題です。追加された範囲を中心とします。試験と同程度※を想定しています。※ただし、場合によっては同試験には出題されない内容や形式が含まれることもあります。難易度の目安として解答してください。実行環境は以下の通りです。Update102※問題文に書いてあるプログラムを実行する際は自己責任で実行してください。次のプログラムを作成した。コンパイル、実行に関して以下の問いに答えなさい。}}問.Sample.javaをコンパイルして画面に以下のように表示したい。2017-01-01T10:20:30.000/[A]/の部分に入れる選択肢として適切なものを以下のaからeの選択肢からすべて選びなさい。aからeに適切なものが無い場合はf,g,hから適切なものをすべて選びなさい。プログラムの実行時刻は2017年01月01日のAM10:20:30.000ちょうどであった。//aからeに適切な選択肢はなく、すべてコンパイルエラーとなる。実行時エラーになるものはない。//aからeに適切な選択肢はなく、すべて実行時エラーとなる。コンパイルエラーになるものはない。//aからgの中に適切な選択肢はない。解答h.aからgの中に適切な選択肢はない。8から追加されたパッケージで、日付や時間に関するクラスやインタフェースがまとめられている。7でもjava.util.Calendarクラスなどある。java.util.Calendarクラスなどの、日付や時刻を扱うための既存のクラスには特有の扱いにくさがあった。そこで、新しくまとめられたのがjava.timeパッケージ内の各クラスとインタフェースである。今回はその中でLocalDateクラスを利用している。8から新しく追加されたクラスで、「日付」を扱うクラスである。今回は実行すると「日付」と「時刻」の両方を表示するような選択肢を選ばなければいけない。そもそもLocalDateクラスでは「時刻」については扱えない。そのため選択肢c以外(a,b,d,e)はすべてコンパイルエラーとなる。LocalDate.now()メソッドはstaticメソッドで、現在の日付を保持したLocalDateクラスのインスタンスを獲得できるため、コンパイルエラーにはならない。そもそもLocalDateクラスでは「時刻」の情報は扱えない。そのため、今回の選択肢の中では「h.aからgの中に適切な選択肢はない。それぞれの選択肢をまとめた一覧は以下の通り。コンパイルエラーLocalDateクラスはそもそもnewを用いたインスタンス化はできず、コンパイルエラーとなる。LocalDateクラスでは時刻情報を扱えない。コンパイルエラーLocalDateクラスはそもそもnewを用いたインスタンス化はできず、コンパイルエラーとなる。LocalDateクラスでは時刻情報を扱えない。実行時の結果が合わないnow()メソッドが実行されると、実行時の「日付」を保持したLocalDateクラスのインスタンスを返してくる。コンパイルエラーや実行時エラーにはならないが、LocalDateクラスは「日付」情報しか保持していない。今回は「時刻」の情報も表示したいので不適。コンパイルエラーLocalDate.of()メソッドは引数で指定した数値をもとにしたLocalDateクラスのインスタンスを返してくる。そもそもLocalDateクラスのof()メソッドでは時刻情報を扱えない。引数の数が合わないためコンパイルエラー。コンパイルエラーLocalDateクラスでは時刻情報を扱えない。LocalDate.parse()メソッドは引数でで指定した文字列をもとにしたLocalDateクラスのインスタンスを返してくる。そもそもLocalDateクラスのparse()メソッドでは時刻情報を扱えない。引数のフォーマットが合わないためコンパイルエラー。*/適切な選択肢はなく、すべてコンパイルエラーとなる。実行時エラーになるものはない。正しく見えるが、選択肢cはコンパイル可能なので不適。*/適切な選択肢はなく、すべて実行時エラーとなる。コンパイルエラーになるものはない。今回は実行時エラーになる選択肢はaからeの中にはない。*/aからgの中に適切な選択肢はない。コンパイルと実行ができるが期待していた結果にはならないaからgの中に適切な選択肢はないため正解。LocalDateクラス、LocalTimeクラス、LocalDateTimeクラスについてまとめると以下の通り。