2.1. Given:
1. enum Animals{
2. DOG(“woof”),CAT(“meow”),FISH(“burble”);
3. String sound;
4. Animal(String s){ sound = s;}
5. }
6. class TestEnum{
7. static Animal a;
8. public static void main(String[] args){
9. System.out.println(a.DOG.sound +” ” +a.FISH.sound);
10. }
11. }
What is the result?
A. woof burble
B. Multiple compilation errors
C. Compilation fails due to an error on line 2
D. Compilation fails due to an error on line 3
E. Compilation fails due to an error on line 4
F. Compilation fails due to an error on line 9
提示:枚举可以有构造方法和变量
3.1. Given the following code:(构造方法)
class Hello{ String title; int value; public Hello(){ title += "World"; } public Hello(int value){ this.value = value; title = "Hello"; Hello(); // } } class Example{ public static void main(String[] args) { Hello c = new Hello(5); System.out.println(c.title); } }
what is the result? Select all right answer:
A. Hello
B. Hello World
C. Compilation fails
D. Hello World 5
E. The code runs with no output
F. An exception is thrown at runtime
C考查构造器之间的调用,通过this关键字实现构造器的调用. 在同一个类的不同构造器中调用该类的其他构造器需要使用this(…)的形式,而且必须是在构造器的第一行调用.在本示例中,类Hello中存在两个构造器,一个带参数,一个无参数,再带参数的构造器中试图通过Hello()调用无参构造器导致编译错误.
如果将Hello()改为this()语句如果不放在第一行也会导致编译错误
class CardBoard{ Short story = 200;//这里的Short是一个包装对象,而不是short //story若小于128,是在常量池里,就不会创建这个对象了??? //结果就变成了(B)?? CardBoard go(CardBoard cd){ cd = null; return cd; } public static void main(String[] args){ CardBoard c1 = new CardBoard(); CardBoard c2 = new CardBoard(); CardBoard c3 = c1.go(c2); // null c1 = null; //do Stuff //共创建了4个对象,剩下了c2 } }
When //doStuff is reached, how many objects are eligible for GC?
A. 0
B. 1
C. 2
D. Compilation fails
E. It is not possible to know
F. An exception is thrown at runtime