Q-041
public static void main(String[] args) { String[] arr={"Hi", "How", "Are", "Yo"}; ListarrList=new ArrayList <> (Arrays.asList(arr)); if(arrList.removeIf((String s) -> {return s.length() <= 2;})){ System.out.println(s + " removed"); } } What is the result? A. The program compiles, but it prints nothins. B. Compilation failes. C. An UnsupportedOperationException is thrown at runtime. D. Hi removed Ans : B String s 為Lambda內的區域變數, 所以無法被Lambda之外使用 Arrays.asList() : 將陣列轉為 List. 但請注意, 陣列裏不可以為基本資料型態, 如 int[] arr={1, 2, 3} Integer[] arr={1, 2, 3}才可以放入 asList()裏
Q-042
public static void main(String[] args) { int ii=0; int jj=7; for (ii=0;ii<jj-1;ii=ii+2){ System.out.print(ii + " "); } } What is the result? A. Compilation fails. B. 0 2 4 6 C. 2 4 D. 0 2 4 Ans : D
Q-043
The following grid shows the state of a 2D array This grid is created with the following code: char[][] grid=new char[3][3]; grid[1][1]='X'; grid[0][0]='O'; grid[2][1]='X'; grid[0][1]='O'; grid[2][2]='X'; grid[1][2]='O'; //line n1 Which line of code, when inserted in place of //line n1, adds an x into the grid so that the grid contains three consecutive X's? A. grid[2][0]='X'; B. grid[1][3]='X'; C. grid[0][2]='X'; D. grid[1][2]='X'; E. grid[3][1]='X'; Ans : A
Q-044
public static void main(String[] args) { String ta="A "; ta=ta.concat("B "); String tb="C "; ta=ta.concat(tb); ta.replace('C', 'D'); ta=ta.concat(tb); System.out.println(ta); } What is the result? A. A C D B. A B C C C. A B D D. A B C D E. A B D C Ans : B
Q-045
Given : class Test{ public static int stVar = 100; public int var = 200; public String toString(){ return var + ":" + stVar; } } And given the code fragment: Test t1=new Test(); t1.var = 300; System.out.println(t1); Test t2=new Test(); t2.stVar = 300; System.out.println(t2); What is the result? A. 300:100 200:300 B. 200:300 200:300 C. 300:300 200:300 D. 300:0 0:300 Ans : A
Q-046
public static void main(String[] args) { //line n1 array[0]=10; array[1]=20; System.out.print(array[0] + ":" + array[1]); } Which code fragment, when inserted at line n1, enables the code to print 10:20? A. int[] array=new int[2]; B. int array = new int[2]; C. int array[2]; D. int [] array; array = int[2]; Ans : A
Q-047
class Vehicle{ String type; int maxSpeed; Vehicle(String tyep, int maxSpeed){ this.type=type; this.maxSpeed=maxSpeed; } } class Car extends Vehicle{ String trans; Car(String trans){ //line n1 this.trans=trans; } Car(String type, int maxSpeed, String trans){ super(type, maxSpeed); this(trans); //line n2 } } And given the code fragment: Car c1=new Car("Auto"); Car c2=new Car("4W", 150, "Manual"); System.out.println(c1.type + " " +c1.maxSpeed + " " + c1.trans); System.out.println(c2.type + " " +c2.maxSpeed + " " + c2.trans); What is the result? A. null 0 Auto 4W 150 Manual B. Compilation fails at both line n1 and line n2 C. Compilation fails only at line n2 D. 4W 100 Auto 4W 150 Manual E. Compilation fails only at line n1 Ans : B line n1下一行需寫入 super("",100) line n2需刪除, super()及this()都必需放在建構子第一行, 所以只能出現一種.
Q-048
You are asked to create a method that accepts an array of integers and returns the highest value from that array. Given the code fragment: class Test { public static void main(String[] args) { int numbers[] ={12,13,42,32,15,156,23,51,12}; int max=findMax(numbers); } /* line n1*/{ int max=0; /* code goes here*/ return max; } } What method signature do you use at line n1? A. public int findMax(int[] numbers) B. final int findMax(int[]) C. static int findMax(int[] numbers) D. static int[] findMax(int max) Ans : C
Q-049
int n[][] = {{1, 3}, {2, 4}}; for (int i=n.length-1;i>=0;i--){ for (int y: n[i]){ System.out.print(y); } } What is the result? A. 4231 B. 3142 C. 2413 D. 1324 Ans : C
Q-050
13. List colors=new ArrayList(); 14. colors.add("green"); 15. colors.add("red"); 16. colors.add("blue"); 17. colors.add("yellow"); 18. colors.remove(2); 19. colors.add(3, "cyan"); 20. System.out.print(colors); What is the result? A. An IndexOutOfBoundsException is thrown at runtime. B. [green, red, yellow, cyan] C. [green, red, cyan, yellow] D. [green, blue, yellow, cyan] Ans : B
Q-051
class Animal{ String type = "Canine"; int maxSpeed=60; Animal(){} Animal(String type, int maxSpeed){ this.type=type; this.maxSpeed=maxSpeed; } } class WildAnimal extends Animal{ String bounds; WildAnimal(String bounds){ //line n1 } WildAnimal(String type, int maxSpeed, String bounds){ //line n2 } } And given the code fragment: 7. WildAnimal wolf=new WildAnimal("Long"); 8. WildAnimal tiger=new WildAnimal("Feline", 80, "Short"); 9. System.out.println(wolf.type + " " + wolf.maxSpeed + " " + wolf.bounds); 10. System.out.println(tiger.type + " " + tiger.maxSpeed + " " + tiger.bounds); Which two modification enable the code to print the following output? Canine 60 Long Feline 80 Short A. Replace line n1 with: this("Canine", 60); B. Replace line n2 with: super(type, maxSpeed); this(bounds); C. Replace line n1 with: super(); this.bounds = bounds; D. Replace line n1 with: this.bounds = bounds; super(); E. Replace line n2 with: super(type, maxSpeed); this.bounds = bounds; Ans : C E
Q-052
public static void main(String[] args) { LocalDate date=LocalDate.of(2012, 01, 32); date.plusDays(10); System.out.println(date); } What is the result? A. Compilation fails. B. 2020-02-10 C. A DateTimeException is thrown at runtime. D. 2012-02-11 Ans : C 日期 2012,01 32 超過31 另外, 要寫成 date=date.plusDays(10);
Q-053
public class Test { public static void main(String[] args) { String str1="Java"; String[] str2={"J","a","v","a"}; String str3=""; for (String str:str2){ str3=str3+str; } boolean b1=(str1==str3); boolean b2=(str1.equals(str3)); System.out.print(b1 + ", "+b2); } } What is the result? A. true, true B. true, false C. false, true D. false, false Ans : C
Q-054
Given the code fragments: class Student{ String name; int age; } And, 4. public class Test { 5. public static void main(String[] args) { 6. Student s1=new Student(); 7. Student s2=new Student(); 8. Student s3=new Student(); 9. s1=s3; 10. s3=s2; 11. s2=null; 12. } 13. } Which statement is true? A. After line 11, two objects are eligible for garbage collection. B. After line 11, none of the objects are eligible for garbage collection. C. After line 11, three objects are eligible for garbage collection. D. After line 11, one object is eligible for garbage collection. Ans : D
Q-055
Given the following segment of code: ArrayList<Vehicle>myList = new ArrayList<>(); myList.add(new MotorCycle()); Which two statements, if either were true, would make the code compile? A. MotorCycle is a superclass of Vehicle. B. Vehicle and MotoryCycle both implement the Transportation interface. C. Vehicle is an interface that is implemented by the Motorcycle class. D. Vehicle is a superclass of MotorCycle. E. Vehicle and MotorCycle both extend the Transportation superclass. F. MotorCycle is an interface that implements the Vehicle class. Ans : C D
Q-056
class Student{ String name; public Student(String name){ this.name=name; } } public class Test { public static void main(String[] args) { Student[] students = new Student[3]; students[1]=new Student("Richard"); students[2]=new Student("Donald"); for (Student s: students){ System.out.println(""+s.name); } } } What is the result? A. A NullPointerException is thrown at runtime. B. Compilation fails. C. Richard Donald D. null Richard Donald E. An ArrayIndexOutOfBoundsException is thrown at runtime. Ans : A student[0] 並沒有產生Student物件
Q-057
Given the code fragment: public class Test { void readCard(int cardNo)throws Exception{ System.out.println("Reading Card"); } void checkCard(int cardNo)throws RuntimeException { //line n1 System.out.println("Checking Card"); } public static void main(String[] args) { Test ex=new Test(); int cardNo=1234; ex.checkCard(cardNo); //line n2 ex.readCard(cardNo); //line n3 } } What is the result? A. Compilation fails only at line n2. B. Reading Card Checking Card C. Compilation fails only at line n1 D. Compilation fails at both line n2 and line n3. E. Compilation fail only at line n3. Ans : E
Q-058
int nums1[]=new int[3]; int nums2[]={1, 2, 3, 4, 5}; nums1=nums2; for (int x:nums1){ System.out.print(x+":"); } What is the result? A. Compilation fails. B. 1:2:3:4:5: C. An ArrayOutOfBoundsException is thrown at runtime. D. 1:2:3: Ans : B
Q-059
public class Test { public static void main(String[] args) { int x=1; int y=0; if(x++ > ++y){ System.out.print("Hello "); } else{ System.out.print("Welcome "); } System.out.print("log " + x + ":" + y); } } What is the result? A. Welcome Log 1:0 B. Hello Log 2:1 C. Hello Log 1:0 D. Welcome Log 2:1 Ans : D
Q-060
public class Test { int a1; public static void doProduct(int a){ a=a*a; } public static void doString(StringBuilder s){ s.append(" " + s); } public static void main(String[] args) { Test item=new Test(); item.a1=11; StringBuilder sb=new StringBuilder("Hello"); Integer i=10; doProduct(i); doString(sb); doProduct(item.a1); System.out.println(i + " " + sb +" " + item.a1); } } What is the result? A. 10 Hello Hello 121 B. 100 Hello 121 C. 10 Hello Hello 11 D. 100 Hello Hello 121 E. 10 Hello 11 Ans : D