11.5 小测验

(1) Groovy在很大程度上与Java兼容。这是否意味着对于兼容的Java代码,Groovy编译它们的方式与Java编译器完全相同,没有任何副作用呢?

  a) 是的,Java编译器和Groovy编译器生成的Java字节码完全相同,编译得到的类的行为也完全相同。

  b) 不对,在语法层面,Java和Groovy不完全兼容。

  c) 不对,遇到Java基本数据类型时,Groovy将崩溃。

  d) 不对,在语法层面,Groovy在很大程度上与Java兼容,但由于Groovy开发小组在设计方面做出的选择不同,对于同一个类,使用Groovy编译器和Java编译器编译后,行为可能不完全相同。

(2) 在下面的代码中,变量msg1的值是什么?

  1. def name1 = 'reader'
  2. def msg1 = "hello, $name1"

  a) "hello, reader"

  b) "hello, $name"

  c) 这个程序会引发异常。

  d) 以上答案都不对。

(3) 在下面的代码中,变量msg2的值是什么?

  1. def name2 = "reader"
  2. def msg2 = 'hello, $name2'

  a) "hello, reader"

  b) "hello, $name"

  c) 这个程序会引发异常。

  d) 以上答案都不对。

(4) 在下面的代码中,变量longValue是哪种数据类型?

  1. long longValue = 999

  a) 基本类型long

  b) groovy.lang.Long

  c) java.lang.Long

  d) 以上答案都不对。

(5) 判断对错:动态语言的一个优点是,生成的代码的运行速度总是比使用静态语言编写的等效代码的运行速度快。

  a) 对。

  b) 错。