Java 8 練習問題 その10


java練習問題

java練習問題

動作環境と問題内容について

javaの練習問題です。 出題範囲はjava 8 で追加された範囲を中心とします。難易度は Java SE 8 Programmer I の試験と同程度※を想定しています。

※ただし、場合によっては同試験には出題されない内容や形式が含まれることもあります。あくまでも難易度の目安として解答してください。

実行環境は以下の通りです。

PC:MacBook Pro 2011early 15inch

OS:Windows 8.1(デュアルブート) 64bit版

メモリ:16GB(8GB x 2)

CPU:Core i7-2635QM 2.00GHz

javaのバージョン:java 8 Update102

 

※問題文に書いてあるプログラムを実行する際は自己責任で実行してください。

問題

次のプログラムを作成した。コンパイル、実行に関して以下の問いに答えなさい。

 

プログラム(Sample.java)

import java.time.*;

public class Sample{
  public static void main(String[] args){
    LocalDateTime dateTime = LocalDateTime.parse("2017-01-01T10:20:30");
    LocalDate date = LocalDate.parse("2017-01-01");
    LocalTime time = LocalTime.parse("10:20:30");

    if(dateTime == date){
      System.out.print("A");
    }else{
      System.out.print("B");
    }
 
    if(dateTime == time){
      System.out.print("C");
    }else{
      System.out.print("D");
    }

  }
}

 

問.Sample.javaをコンパイル、実行するとどうなるか。下記の選択肢 a ~ k から正しいものを選べ。

選択肢


a. Aと表示される

b. Bと表示される

c. Cと表示される

d. Dと表示される

e. ACと表示される

f. ADと表示される

g. BCと表示される

h. BDと表示される

i. 何も表示されない

j. コンパイルエラー

k. 実行時エラー

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解答

 

j. コンパイルエラー

 

解説

java.timeパッケージはjava 8から追加されたパッケージで、日付や時間に関するクラスやインタフェースがまとめられている。

日付を扱うクラスとしてはjava 7でもjava.util.Calendarクラスなどある。しかし、java.util.Calendarクラスなどの、日付や時刻を扱うための既存のクラスには特有の扱いにくさがあった。そこで、新しくまとめられたのがjava.timeパッケージ内の各クラスとインタフェースである。

 

今回はLocalDate、LocalTime、LocalDateTimeクラスのオブジェクトの比較を行おうとしている。

 

しかし、これら3つのクラスは継承関係が無い。そして、継承関係が無いクラス同士のオブジェクトは==を用いて比較仕様とするとコンパイルエラーとなる。

そのため、今回の解答は j. コンパイルエラーとなる。

 

 

 

そのほかのjavaの練習問題はこちら

そのほかのjava関連の記事はこちら

  • このエントリーをはてなブックマークに追加

PAGE TOP