Câu 1: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Foo { private String aName; private String bName; private int aNum; private int bNum; public int hashCode(){ return aNum;} public boolean equals(Object o){ if(!(o instanceof Foo)) { return false;} Foo f = (Foo)o; return this.aNum == f.aNum; } } |
A. Compile success
B. Dòng số 6 compile error
C. Dòng thứ 7 compile error
D. Dòng thứ 8 compile error
E. Dòng thứ 9 compile error
Câu 2: Rule khi implement 2 method equals và hasCode là (chọn 2 đáp án)
A. Nếu s1.equals(s2) trả về true thì s1.hashCode() == s2.hashCode() cũng phải trả về true
B. Nếu s1.equals(s2) trả về true thì s1.hashCode() == s2.hashCode() trả về true hay false đều dc
C. Nếu s1.equals(s2) trả về false thì s1.hashCode() == s2.hashCode() cũng phải trả về true
D. Nếu s1.equals(s2) trả về false thì s1.hashCode() == s2.hashCode() trả về true hay false đều dc
Câu 3: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Test { private int num = 100; public void show(){ String str="num : "; class Foo { private int num = Test.this.num; public void show(){ num += 100; System.out.println(str + num); } } new Foo().show(); } public static void main(String [] args){ new Test().show(); } } |
A. num : 100
B. num : 200
C. Dòng thứ 6 compile error
D. Dòng thứ 7 compile error
E. Dòng thứ 12 compile error
F. Runtime error
Câu 4: Để có thể sử dụng hằng số NUM của class Foo bên trong class Bar cần điền code gì vào chỗ trống (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 |
1. package com.se.mypg; 2. public class Foo { 3. public static final int NUM = 100; 4. } 1. package co.jp.knowd; 2. 「①」 3. public class Bar{ 4. public int getNum() { return NUM;} 5. } |
A. static import com.se.mypg.*;
B. static import com.se.mypg.Foo;
C. static import com.se.mypg.Foo.*;
D. import static com.se.mypg.*;
E. import static com.se.mypg.Foo;
F. import static com.se.mypg.Foo.*;
Câu 5: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 |
public enum Vals{ VAL1(false), VAL2(false), VAL3(Boolean.FALSE), VAL4(Boolean.FALSE); private boolean data; public Vals(boolean data) { this.data = data;} public boolean getData() { return data;} public void setData(){this.data = data;} public static void main(String[] args){ System.out.print(Vals.VAL3 + " "); System.out.println(Vals.VAL3.getData()); } } |
A. Dòng thứ 3 compile error
B. Dòng thứ 5 compile error
C. Dòng thứ 6,7 compile eror
D. Runtime error
E. VAL3 false
F. VAL3 FALSE
Câu 6: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Foo{ static class X{ public void method(){System.out.println("X");}} static class Y extends X{ public void method(){System.out.println("Y");}} static class Z extends X{ public void method(){System.out.println("Z";}}) public static void main(String[] args){ X obj1 = new Y(); Z obj2 = (Z) obj1; obj2.method(); } } |
A. X
B. Y
C. Z
D. Dòng thứ 9 compile error
E. Dòng thứ 10 compile error
F. runtime error
Câu 7: Code nào có thể điền dc vào chỗ trống sau (chọn 3 đáp án)
1 2 3 4 5 6 |
public interface Foo{ default void method(){} } class MyFoo implements Foo{ [①] } |
A. @Override public boolean equals(Object o){return false;}
B. @Override public boolean equals(MyFoo o){return false;}
C. @Override public int hashCode(){return 55;}
D. @Override public long hashCode(){return 55;}
E. @Override void method() {}
F. @Override public void method(){}
Câu 8: Câu nào sau đây đúng khi nói về class sử dụng singleton pattern (chọn 3 đáp án)
A. Nên có method static public trả về object singleton
B. Đảm bảo chỉ có 1 object của class trong toàn bộ chương trình
C. Biến lưu singleton object có thể là protected hoặc private
D. Biến lưu singleton object có tên là instance
E. Phương thức khởi tạo constructor của class singleton cần là private
F. Cần cung cấp method setter để thay đổi object singleton
Câu 9: Sửa class Foo như nào để đảm bảo class Foo là immutable object (chọn 4 đáp án)
1 2 3 4 5 6 7 8 9 10 11 |
import java.util.List; class Foo { String str; private final List<String> list; public Foo(String str, List<String> list){ this.str = str; this.list = list; } public String getStr(){ return str;} public List<String> getList(){return list;} } |
A. thêm final vào class Foo
B. Trong phương thức khởi tạo ko gán trực tiếp biến list vào this.list mà phải tạo bản copy rồi gán bản copy đó vào this.list
C. Dòng số 4 cần đổi List<String> thành List<Object>
D. Dòng thứ 10 cần thay đổi để ko thể access trực tiếp vào thuộc tính list
E. biến str cần thêm private và final
F. Class Foo cần implements interface Immutable
Câu 10: câu nào sau đây đúng khi nói về interface (chọn 2 đáp án)
A. Các thành phần khai báo trong interface đều là public
B. có thể khai báo final method
C. chỉ có thể khai báo method trừu tượng
D. class có thể implements nhiều interface
E. 2 interface ko thể kế thừa nhau
F. class có thể kế thừa interface
Câu 11: Câu nào sau đây là đúng (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 |
interface X { default void methodA() { System.out.println("X"); } } interface Y { default void methodA() { System.out.println("Y"); } public abstract void methodB(); } interface Z extends X, Y{ void methodC(int a, int b); } |
A. Dòng thứ 5 compile error
B. Dòng thứ 6 compile error
C. Dòng thứ 8 compile error
D. Dòng thứ 9 compile error
E. Compile success
Câu 12: Câu nào sau đây đúng khi nói về class thiết kế theo JavaBeans (chọn 3 đáp án)
A. Biến của instance phải là private
B. Biến của instance phải là final
C. Class phải implements JavaBeans interface
D. Biến lưu instance phải được chạy với lazy initalization
E. Phải có các method setter và getter cho biến của instance
F. method getter của biến trong instance mà có kiểu là boolean thì phải có dạng isXXX hoặc là getXXX
Câu 13: Câu nào sau đây đúng khi nói về kế thừa và composition (chọn 3 đáp án)
A. Thành phần protected có thể được sử dụng ở lớp con
B. composition có tính tái sử dụng code cao hơn kế thừa
C. composition được khuyến khích sử dụng hơn là kế thừa
D. composition là cách thiết kế 1 class có field là 1 instance của 1 class khác
E. composition là kỹ thuật để gọi các method đã ovverride trong khi run chương trình
F. Kế thừa là khái niệm của hướng đối tượng biểu thị cho quan hệ has-a
Câu 14: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án) **
1 2 3 4 5 6 7 8 9 10 11 |
public abstract class Test{ String s1; public abstract final void foo(); public static void main(String[] args){ Test obj = new ExTest(); obj.s1 = "hello"; obj.foo(); } public static class ExTest extends Test{ void foo(){ System.out.println(s1); } } } |
A. Dòng thứ 1 compile error
B. Dòng thứ 3 compile error
C. Dòng thứ 5 compile error
D. Dòng thứ 8 compile error
E. Dòng thứ 9 compile error
F. hello
Câu 15: Các class sau ko phải là nested class và được lưu trong file có tên giống với tên class. Chọn cách khai báo đúng (chọn 3 đáp án)
A. public strictfp class A {}
B. private final class B {}
C. abstract final class C {}
D. public final class D {}
E. strictfp final class E {}
Câu 16: Với điều kiện sau đây câu nào là đúng (chọn 1 đáp án)
1 2 3 4 5 |
interface A {} class B implements A {} class C {} class D {} abstract class E extends D {} |
Điều kiện:
+ C là B
+ C có chứa D
A. Class C implement B và có thuộc tính kiểu D
B. Class C kế thừa B và có thuộc tính kiểu D
C. Class C implement D và có thuộc tính kiểu E
D. Class C kế thừa D và có thuộc tính kiểu E
E. Class C implements B và kế thừa D
F. Class C kế thừa B và implements D
Câu 17: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 |
Deque<String> deque = new ArrayDeque<>(); deque.push("A"); deque.push("B"); deque.push("C"); deque.pop(); deque.peek(); while(deque.remove() != null){ System.out.print(deque.pop()); } |
A. A
B. BC
C. ABC
D. C
E. BA
F. CBA
G. compile error
H. runtime error
Câu 18: Code nào sau đây compile success (chọn 3 đáp án)
A. List<Integer> obj = new Vector<Integer>();
B. List<Object> obj = new HashSet<Object>();
C. List<Object> obj = new LinkedList<? extends Object>();
D. HashSet<Number> obj = new HashSet <Double>();
E. HashSet<? super ArithmeticException> obj = new HashSet<Exception>();
F. Map<String, ? extends Number> obj = new HashMap<String, Double>();
Câu 19: Điền code vào chỗ trống để compile success (chọn 1 đáp án)
1 2 |
Map<String, Double> map = new HashMap<>(); 「①」 |
A. map.put(10.0);
B. map.add(“val”,10L);
C. map.put(new Double(0.0));
D. map.add(“val”,new Double(0.0));
E. Các đáp án trên đều sai
Câu 20: Điền code vào chỗ trống để chương trình compile success (chọn 3 đáp án)
1 2 3 4 5 6 |
public static void main(String[] args){ 「①」 } static <T extends Exception> void foo(T t){ System.out.println(t.getMessage()); } |
A. Test.<NullPointerException>foo(new NullPointerException(“ex”));
B. Test.<Throwable>foo(new Exception(“ex”));
C. Test.foo(new Throwable(“ex”));
D. Test.foo(new IOException(“ex”));
E. Test.foo(new Exception(“ex”));
Câu 21: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import java.util.*; class Foo implements Comparable<Foo>, Comparator<Foo> { private String val1; private String val2; Foo(String val1, String val2){ this.val1 = val1; this.val2 = val2; } public String toString(){ return val1; } public int compareTo(Foo obj){ return val2.compareTo(obj.val2);} public int compare(Foo obj1, Foo obj2){ int num = Integer.parseInt(obj1.val1) - Integer.parseInt(obj2.val1); return num; } } public class Test { public static void main(String[] args){ Foo obj1 = new Foo("60", "x"); Foo obj2 = new Foo("10", "y"); TreeSet<Foo> set1 = new TreeSet<>(); set1.add(obj1); set1.add(obj2); TreeSet<Foo> set2 = new TreeSet<>(obj1); set2.add(obj1); set2.add(obj2); System.out.println(set1 + " " + set2); } } |
A. [60,10] [10,60]
B. [10,60] [60,10]
C. [60,10] [60,10]
D. [10, 60] [10, 60]
E. compile error
F. runtime error
Câu 22: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 |
Comparator<Integer> obj = (v1, v2) -> v2 - v1; List<Integer> list = Arrays.asList(10, 2, 30, 2); Collections.sort(list, obj); System.out.println(Collections.binarySearch(list, 2)); |
A. 0
B. 1
C. 3
D. Ko đảm bảo kết quả tìm kiếm đúng
E. compile error
F. runtime error
Câu 23: Chọn code điền vào chỗ trống để chương trình compile success (chọn 2 đáp án)
1 2 3 4 5 6 7 |
class Foo 「①」{} public class Test { public static void main(String[] args){ Foo<Integer> obj1 = new Foo「②」(); Foo<Object> obj2 = new Foo(); } } |
A. ① <?>
B. ① <T>
C. ① <>
D. ② <?>
E. ② <T>
F. ② <>
Câu 24: Để code compile success cần sửa chỗ nào (chọn 1 đáp án)
1 |
public static T method (T t){ return t;} |
A. thêm <T> vào sau public
B. thêm <T> vào sau static
C. thêm <T> vào sau T
D. thêm <T> vào sau public hoặc static
E. thêm <T> vào sau static hoặc T
F. Code hiện tại đã compile success
Câu 25: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 |
Stream<String> stream = Stream.iterate("", s-> s + "a"); System.out.println(stream.limit(2).map(x -> x + "x")); |
A. xax
B. axax
C. xaxaax
D. java.util.stream.ReferencePipline$3@1218025c
E. Compile error
F. Runtime error
Câu 26: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 |
Predicate<? super String> f = s-> s.length() > 3; Stream<String> stream = Stream.iterate("x", s -> s + s); boolean a = stream.noneMatch(f); boolean b = stream.anyMatch(f); System.out.println(a + " " + b); |
A. false true
B false false
C true true
D compile error
E. runtime error
F. Compile succes nhưng khi chạy sẽ bị treo
Câu 27: Những method nào sau đây hỗ trợ thao tác reduce của stream (chọn 2 đáp án)
A. findAny()
B. sorted()
C. distinct()
D. collect()
E. count()
F. toArray()
Câu 28: Chọn code điền vào chỗ trống để trường trình sau chạy in ra True (chọn 1 đáp án)
1 2 3 |
Stream<String> stream = Stream.of(" "); boolean x = stream.「①」(String::isEmpty); System.out.println(x); |
A. noneMatch
B. allMatch
C. anyMatch
D. findAny
E. findFirst
Câu 29: Code tương đương với đoạn code sau là (chọn 1 đáp án)
1 2 3 4 5 |
static List<String> mySort(List<String> list) { List<String> copyList = new ArrayList<>(list); Collections.sort(copyList, (x, Y) -> y.compareTo(x)); return copyList; } |
A. return list.stream().compareTo((x,y) -> y.compareTo(x)).sort();
B. return list.stream().sorted((x,y) -> y.compareTo(x)).collect();
C. return list.stream().sorted((x,y) -> y.compareTo(x)).collect(Collectors.toList());
D. return list.stream().compare((x,y) -> y.compareTo(x)).collect(Collectors.toList());
E. return list.stream().compare((x,y) -> y.compareTo(x)).sort();
F. return list.stream().compareTo((x,y) -> y.compareTo(x)).collect(Collectors.toList());
Câu 30: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 |
Stream.generate(() -> "hello") .limit(2) .filter(s -> s.length() > 3) .peek(x -> System.out.println(x + " ")) .forEach(x -> System.out.println(x + " ")); |
A. in ra 2 lần hel
B. in ra 2 lần hello
C. in ra 4 lần hello
D. compile eror
E. Runteim eror
F. compile success nhưng khi chạy thì bị treo
Câu 31: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 |
4. Stream<Integer> stream1 = Stream.of(10); 5. IntStream stream2 = stream1.mapToInt(a -> a); 6. Stream<Integer> stream3 = Stream.of(10); 7. DoubleStream stream4 = stream3.mapToDouble(a -> a); 8. Stream<Integer> stream5 = stream4.mapToInt(a -> a); |
A. Dòng thứ 4 compile error
B. Dòng thứ 5 compile error
C. Dòng thứ 7 compile error
D. Dòng thứ 8 compile error
E. Runtime error
F. compile, run success
Câu 32: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 |
Stream<String> stream1 = Stream.of("a", "b", "ax"); Stream<String> stream2 = Stream.empty(); Map<Boolean, List<String>> map 1 = stream1.collect(Collectors.partitioningBy(s -> s.startsWith("x"))); Map<Boolean, List<String>> map 2 = stream2.collect(Collectors.groupingBy(s -> s.startsWith("x"))); System.out.println(map1 + " " + map2); |
A. {false=[a,b,ax], true=[]} {false=[], true=[]}
B. {false=[a,b,ax]} {false=[], true=[]}
C. {false=[a,b,ax], true=[]} {}
D. {false = [a,b,ax]} {}
E. {} {}
F. compile error
Câu 33: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 |
DoubleStream stream = DoubleStream.of(0.3, 0.8); stream.peek(System.out::println).filter(a -> a > 0.5).count(); |
A. 1
B. 2
C. 0.3
D. 0.8
E. 0.3 0.8
F. 0.3 0.8 1
G. 0.3 0.8 in ra 2 lần
Câu 34: Câu nào sau đây là đúng (chọn 2 đáp án)
1 2 3 4 5 6 7 8 9 |
public static void main(String [] args){ 「①」 } public static void foo(Stream<Integer> stream){ Optional option = stream.filter(x -> x < 5) .limit(3) .max((x,y) -> x-y); System.out.println(option.get()); } |
A. Điền foo(Stream.empty()); vào chỗ trống => compile error
B. Điền foo(Stream.empty()); vào chỗ trống => runtime error
C. Điền foo(Stream.iterate(1, x -> ++x)); vào chỗ trống => compile error
D. Điền foo(Stream.iterate(1, x -> ++x)); vào chỗ trống => runtime error
E. Điền foo(Stream.of(5, 10)); vào chỗ trống => compile error
F. Điền foo(Stream.of(5, 10)); vào chỗ trống => compile error
Câu 35: Chọn đoạn code điền vào chỗ trống để chương trình chạy đúng (chọn 1 đáp án)
1 2 3 4 5 |
public static void main(String[] args){ try{ throw new IOException(); } catch(「①」){} } |
A. IOException e | RuntimeException e
B. IOException | RuntimeException e
C. FileNotFoundException e | RuntimeException e
D. FileNotFoundException | RuntimeException e
E. FileNotFoundException e | IOException e
F. FileNotFoundException | IOException e
Câu 36: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.io.*; public class Main{ static class Foo implements AutoCloseable{ public void close() { System.out.print("A"); throw new RuntimeException();}} static class Bar implements Closeable { public void close() { System.out.print("B"); throw new RuntimeException(); }} public static void main(String[] args){ try{ Foo foo = new Foo(); Bar bar = new Bar(); } catch(Exception e) { System.out.print("C"); } finally{System.out.print("D");} } } |
A. ABCD
B. BACD
C. ABD
D. ABD
E. C
F. D
Câu 37: Câu nào sau đây đúng (chọn 2 đáp án)
1 2 3 4 5 6 |
6. private int method(int x, int y){ 7. boolean assert = false; 8. assert ++x > 0; 9. assert y > 0; 10. return x + y; 11.} |
A. Dòng thứ 7 compile error
B. Cách dùng assert ở dòng thứ 8 là đúng
C. Cách dùng assert ở dòng thứ 9 là đúng
D. Dòng số 8 và 9 sau biểu thức so sánh ko chỉ rõ message nên compile error
E. Dòng số 8 và 9 biểu thức so sánh ko nằm trong ngoặc () nên compile error
Câu 38: Điền code vào chỗ trống để chuowgn trình chạy đúng (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 |
public static void main(String[] args) throws BException{ try{ throw new BException(); } catch(AException | RuntimeException e){ 「①」 throw e; } } static class AException extends Exception{} static class BException extends AException{} |
A. e = new AException();
A. e = new BException();
A. e = new Exception();
A. e = new RuntimeException();
E. Ko cần điền gì chương trình vẫn chạy đúng
Câu 39: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 |
public static void main(String[] args){ try(Foo obj1 = new Foo(); Foo obj2 = new Foo()){ throw new RuntimeException("main"); } catch(Exception e){ System.out.print(e.getMessage() + " " + e.getSuppressed().length); } } static class Foo implements AutoCloseable { public void close(){ throw new RuntimeException("close"); } } |
A. close 0
B. close 1
C. close 2
D. main 0
E. main 1
F. main 2
G. compile error
Câu 40: Câu nào sau đây là đúng (chọn 2 đáp án)
A. AutoCloseable interface là của package java.io
B. Closeable interface là của package java.lang
C. AutoCloseable và Closeable đều của package java.lang
D. AutoCloseable và Closeable đều của package java.io
E. Phương thức close() của AutoCloseable throws Exception
F. Phương thức close() của Closeable throws IOException
G. Cả 2 phương thức close của AutoCloseable và Closeable đều throw Throwable
Câu 41: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 |
public class Test { public static void main(String[] args){ Integer num = 100; num++; assert num != null && num <= 100; System.out.println(num); } } |
Chạy chương trình trên bằng lệnh như sau
javac Test.java
java Test
A. Dòng số 4 compile error
B. Dòng số 5 compile error
C. Dòng số 5 khi chạy sẽ sinh ra AssertionError
D. Dòng thứ 5 khi chạy sẽ sinh ra 1 exception khác
E. 100
F. 101
Câu 42: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 |
LocalDate date = LocalDate.parse("2020-06-01", DateTimeFormatter.ISO_LOCAL_DATE); date.plusMonths(2); date.plusHours(3); System.out.println(date.getYear() + " " + date.getMonth()); |
A. 2020 JUNE
B. 2020 AUGUST
C. 2020 6
D. 2020 8
E. Compile error
F. runtime error
Câu 43: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 |
LocalDate date = LocalDate.of(2020, Month.AUGUST, 32); System.out.println(date.getYear() + " " + date.getMonth() + " " + date.getDayOfMonth()); |
A. 2020 AUGUST 32
B. 2020 AUGUST 31
C. 2020 AUGUST 1
D. 2020 SEPTEMBER 1
E. Compile error
F. Runtime error
Câu 44: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 |
LocalDateTime date = LocalDateTime.of(2020, 3,3,12,35,50); Period p = Period.ofDays(1).ofYears(2); date = date.minus(p); DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT); System.out.println(formatter.format(date)); |
A. 18/03/02 12:35
B. 18/03/03 12:35
C. 20/03/03 12:35
D. 18/03/02
E. 18/03/03
F. 20/03/03
G. Compile error
H. Runtime error
Câu 45: Với 2 ngày giờ như sau câu nào sau đây là đúng (chọn 2 đáp án)
①2016-02-20T10:30:45-03:00「America/Araguaina」
②2016-02-20T14:30:45-08:00「America/Los_Angeles」
A. Theo giờ UTC thì ngày giờ ① sẽ là 2016-02-20T13:30:45
B. Theo giờ UTC thì ngày giờ ① sẽ là 2016-02-20T07:30:45
C. ① và ② chênh nhau 4 giờ
D. ① và ② chênh nhau 5 giờ
E. ① và ② chênh nhau 8 giờ
F. ① và ② chênh nhau 11 giờ
Câu 46: Giờ mua hè của khu vực America/Los_Angeles được quy định như sau
Giờ mùa hè của năm 2016 bắt đầu vào: năm 2016 tháng 3 ngày 13 lúc 2 giờ (EST)
Giờ mùa hè của năm 2016 kết thúc vào: năm 2016 tháng 11 ngày 13 lúc 2 giờ (EST)
Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 |
ZonedId zone = ZoneId.of("America/Los_Angeles"); LocalDateTime local = LocalDateTime.of(2016,3,13,1,00); ZonedDateTime zTime1 = ZonedDateTime.of(local, zone); ZonedDateTime zTime2 = zTime1.plus(1, ChronoUnit.HOURS); long num = ChronoUnit.HOURS.between(zTime1, ZTime2); int time1 = zTime1.getHour(); int time2 = zTime2.getHour(); System.out.println(num + " " + time1 + " " + time2); |
A. 1 1 2
B. 1 1 3
C. 2 1 2
D. 2 1 3
E. Compile error
F. Runtime error
Câu 47: Class Period hỗ trợ xử lý thời gian theo đơn vị nào (chọn 3 đáp án)
A. Năm
B. Tháng
C. Ngày
D. Giờ
E. Phút
F. Giây
Câu 48: Phép so sánh nào sau đây cho kết quả là True (chọn 2 đáp án)
1 2 3 4 5 |
String s1 = Duration.of(1, ChronoUnit.MINUTES).toString(); String s2 = Duration.of(60, ChronoUnit.SECONDS).toString(); String s3 = Duration.ofMinutes(1).toString(); String s4 = Duration.ofDays(1).toString(); String s5 = Period.ofDays(1).toString(); |
A. s1 == s2
B. s1 == s3
C. s4 == s5
D. s1.equals(s2)
E. s1.equals(s3)
F. s4.equals(s5)
Câu 49: Khi lập trình mà cần thiết phải chú ý đến giờ chuẩn quốc tế thì nên dùng class nào sau đây (chọn 1 đáp án)
A. LocalDateTime
B. LocalDate
C. LocalTime
D. Instant
E.ZonedDateTime
F. Tất cả các đáp án trên
Câu 50: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 |
5. String s1 = Duration.ofDays(1).toString(); 6. String s2 = Period.ofDays(1).toString(); 7. Boolean b1 = s1 == s2; 8. Boolean b2 = s1.equals(s2); 9. System.out.println(b1 + " " + b2); |
A. Dòng thứ 7 compile error
B. Dòng thứ 8 compile error
C. false false
D. false true
E. true false
F. true true
Câu 51: Giả sử hôm nay là ngày 8 tháng 5 năm 2016. Compile và chạy chương trình sau kết quả là (chọn 1 dáp án)
1 2 3 4 5 |
6. Stream<LocalDate> stream = Stream.of(LocalDate.now()); 7. UnaryOperator<LocalDate> uo = l -> l; 8. stream.filter(l -> l != null) 9. .map(uo) 10. .peek(System.out::println); |
A. 2016-05-08
B. 05-08
C. Dòng thứ 7 compile error
D. Dòng thứ 8 compile error
E. Runtime error
F. Compile success nhưng ko in ra gì cả
Câu 52: Câu nào sau đây đúng khi nói về Serializable trong java (chọn 2 đáp án)
A. Tất cả các class dùng cho đơn luồng đều nên implements interface Serializable
B. Class nào implements interface Serializable thì cần override 2 method serialize() và deserialize()
C. Class mà implement interface Serializable thì sẽ giống với final class ko thể kế thừa dc
D. Dữ liệu đã được Serializable khi phục hồi lại trong memory thì dc gọi là deserializable
E. Phương thức readObject của class ObjectInputStream khi chạy mà ko tìm dc file class của object đã dc serializable thì sẽ throw ClassNotFoundException
F. Nếu object được serializable thì tất cả những data có trong object đó đều dc serializable
Câu 53: Giả sử có file C:\doc\nu.txt. Code nào sau đây sinh ra dc object biểu thị file trên (chọn 2 đáp án)
A. File f = new File(“C:\doc\nu.txt”);
B. File f = new File(“C:\\doc\\nu.txt”);
C. File f = new File(“C:/doc/nu.txt”);
D. File f = new File(“C:.doc.nu.txt”);
E. File f = new File(“C:|doc|nu.txt”);
Câu 54: Để chương trình sau in ra chuỗi dc nhập từ console cần điền code nào sau đây vào chỗ trống (chọn 3 đáp án)
1 2 3 |
Console console = System.console(); String str = console.readLine("please input : "); console.「①」(str); |
A. out
B. writer().println
C. format
D. println
E.printf
F. print
Câu 55: Giả sử object Bar đã dc serialize. Khi deserialize thì biến data sẽ có giá trị là gì (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 |
class Foo implements java.io.Serializable{ transient String data = "taro"; public void setData(String data) { this.data = data;} public String getData() { return data; } public Foo() { this.data = "hana";} } class Bar extends Foo implements java.io.Serializable { {this.data = "nao";} public Bar() { this.data = "kei";} } |
A. taro
B. hana
C. nao
D. kei
E. null
Câu 56: Giả sử chương trình được lưu cùng chỗ với file t.txt. File t.txt có nội dung “JavaWorld”. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.io.*; public class Test{ public static void main(String[] args) throws IOException{ BufferedInputStream bi = new BufferedInputStream (new FileInputStream("t.txt")); FileInputStream in = new FileInputStream("t.txt"); foo(bi) foo(in); } public static void foo(InputStream stream) throws IOException{ for(int i = 0; i < 3; i++) stream.read(); stream.mark(10); StringBuilder sb = new StringBuilder(); for(int i = 0; i < 5; i++) sb.append((char)stream.read()); stream.reset(); stream.skip(1); sb.append((char)stream.read()); System.out.println(sb.toString()); } } |
A. Dòng thứ 3 compile error
B. Dòng thứ 10 compile error
C. Dòng thứ 7 gây ra runtime error
D. Dòng thứ 8 gây ra runtime error
E. Compile và runtime thành công màn hình in ra kết quả của dòng số 18
F. Compile và runtime thành công màn hình in ra kết quả ko phải của dòng số 18
Câu 57: Giả sử thư mục hiện tại là /tmp/miko. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 |
Path path = Paths.get("/memo/doc/sample/t.txt|); System.out.println(path.subpath(1, 3).getName(1).toAbsolutePath()); |
A. /memo/doc/sample
B. /memo/doc/t.txt
C. /tmp/miko/memo/doc/sample
E. /tmp/miko/sample/t.txt
F. /tmp/miko/sample
Câu 58: Giả sử /foo là symbolink của thư mục /doc/manual. Compile và chạy chương trình sau kết quả là. (Chọn 3 đáp án)
1 2 3 4 5 |
public static void main(String[] args) throws IOException{ Path path = Paths.get("/foo"); if(Files.isDirectory(path) && Files.isSymbolicLink(path)) Files.createDirectory(path.resolve("test")); } |
A. Chương trình sẽ luôn tạo ra thư mục test trong thư mục /doc/manual
B. Nếu ko có thư mục test trong thư mục /doc/manual thì sẽ tạo mới thư mục test
C. Nếu thư mục test dc tạo ra thì có thể truy cập đến bằng đường dẫn /doc/manual/test
D. Nếu thư mục test dc tạo ra thì có thể truy cập đến bằng đường dẫn /foo/test
E. Compile error
F. Runtime error
Câu 59: Câu nào sau đây đúng khi nói về phương thức lines() và readAllLines() của class Files(chọn 1 đáp án)
A. Phương thức lines có thể set bộ mã hóa (ví dụ utf8) còn phường thức readAllLines thì không
B. Phương thức lines() có giá trị trả về là Stream<String>
C. Phương thức readAllLines() có giá trị trả về là String[]
D. Phương thức readAllLines() có thời gian xử lý nhanh hơn lines()
E. Phương thức lines() có thời gian xử lý nhanh hơn readAllLines()
Câu 60: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 |
4. Path p1 = Paths.get("./foo.txt").normalize(); 5. Path p2 = Paths.get("mydata"); 6. Files.copy(p1, p2, StandardCopyOption.COPY_ATTRIBUTES); 7. System.out.println(Files.isSameFile(p1, p2)); |
A. Dòng thứ 4 compile error
B. Dòng thứ 6 compile error
C. Dòng thứ 7 compile error
D. Runtime error
E. false
F. true
Câu 61: Dưới thư mục /bar có file đuôi txt và 1 file symbolink. Chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 |
6. Path. path = Path.get("/bar"); 7. Files.find(path, 0, (pt, attr) -> attr.isSymbolicLink()) 8. .map(p -> p.toString()) 9. .collect(Collectors.toList()) 10. .stream() 11. .filter(x -> x.toString().endsWith(".txt")) 12. .forEach(System.out::print); |
A. Dòng thứ 7 compile error
B. Dòng thứ 9 compile error
C. Dòng thứ 10 compile error
D. Dòng thứ 11 compile error
E. Runtime error
F. Hiển thị tất cả các tên file symboliclink có đuôi txt
G. Ko hiện ra gì
Câu 62: Câu nào sau đây là đúng (chọn 1 đáp án)
A. phương thức getAttribute của class Files gọi 1 lần có thể lấy dc nhiều thuộc tính
B. phương thức readAttribute của class Files gọi 1 lần chỉ có thể lấy dc 1 thuộc tính
C. Phương thức getAttributes() của class Files chỉ có thể lấy dc thuộc tính của file
D. phương thức readAttributes của class Files có thể lấy dc thuộc tính của cả file và folder
E. cả 2 phương thức getAttributes và readAttributes đều chỉ lấy dc những thuộc tính chung trong file system
Câu 63: Chương trình sau dc lưu tại /tmp/miko. Compile và chạy kết quả là gì (chọn 2 đáp án)
1 2 3 4 5 |
6. Files.walk(Paths.get("..").toRealPath().getParent()) 7. .map(p -> p.toAbsolutePath().toString()) 8. .filter(x -> x.endsWith(".java")) 9. .collect(Collectors.toList()) 10. .forEach(System.out::println); |
A. In ra tất cả các đường dẫn của file có đuôi java dưới thư mục /tmp/miko
B. In ra tất cả các đường dẫn của file có đuôi java dưới thư mục /tmp
C. In ra tất cả các đường dẫn của file có đuôi java dưới thư mục /
D. Dòng thứ 6 compile error
E. Dòng thứ 7 compile error
F. Tùy vào môi trường chạy có thể sinh ra runtime error
Câu 64: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 |
Path p1 = Paths.get("foo/./").resolve(Paths.get("x.txt")); Path p2 = new File("foo/././bar/../x.txt").toPath(); boolean b1 = Files.isSameFile(p1, p2); boolean b2 = p1.equals(p2); boolean b3 = p1.normalize().equals(p2.normalize()); System.out.println(b1 + " " + b2 + " " + b3); |
A. true false true
B. true false false
C. false true false
D. false true true
E. true true true
F. false false false
Câu 65: Giả sử thư mục lưu chương trình có tồn tại file foo/hello.txt. Và dưới thư mục foo có các thư mục và file đuôi txt khác. Chạy chương trình sau kết quả là (chọn 2 đáp án)
1 2 3 4 5 6 7 8 9 |
5. public static void main(String[] args) throws IOException { 6. Path path = Paths.get("foo/hello.txt"); 7. Files.find( 8. path.getParent(), 10.0, 9. (p) -> p.toString().endsWith(".txt") || 10. Files.isDirectory(p)) 11. .collect(Collectors.toList()) 12. .forEach(System.out::println); 13.} |
A. Dòng thứ 8 compile error
B. Dòng thứ 9 compile error
C. Dòng thứ 10 compile error
D. Hiển thị các thư mục dưới thư mục foo
E. Hiển thị các file đuôi txt dưới thư mục foo
Câu 66: Xét những trạng thái dưới đây
① Nhiều thread cùng access đến 1 object nên tất cả các thread đều rơi vào trạng thái chờ
② Nhiều thread rơi vào trạng thái lặp vô hạn ko dừng
Câu nào sau đây đúng khi nói về các trạng thái trên
A. Trạng thái ① là thread starvation, trạng thái 2 là dead lock
B. Trạng thái ① là thread dead lock, trạng thái 2 là starvation
C. Trạng thái ① là thread dead lock, trạng thái 2 là live lock
D. Trạng thái ① là thread live lock, trạng thái 2 là dead lock
E. Trạng thái ① là thread starvation, trạng thái 2 là live lock
Câu 67: compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 |
6. List<Integer> listA = Arrays.asList(10, 20, 30); 7. List<Integer> listB = new CopyOnWriteArrayList<>(listA); 8. Set<Integer> setA = new ConcurrentSkipListSet<>(); 9. setA.addAll(listA); 10. for(Integer val : listB) listB.add(40); 11. for(Integer val : setA) setA.add(50); 12. System.out.println(listA.size() + " " + 6. 13. listB.size() + " " + setA.size()); |
A. compile error
B. Dòng thứ 10 runtime error
C. Dòng thứ 11 runtime error
D. 3 6 4
E. 3 6 6
F. 3 4 4
Câu 68: Compile và chạy chương trình sau kết quả là(chọn 1 đáp án)
1 2 3 4 5 6 7 8 |
6. Integer a = Array.asList(3, 4 ,5).stream().findAny().get(); 7. synchronized(a) { 8. Integer b = Arrays.asList(6, 7, 8) 9. .parallelStream() 10. .sorted() 11. .findAny().get(); 12. System.out.println(a + " " + b): 13. } |
A. Dòng thứ 7 compile error
B. Dòng thứ 10 compile error
C. 3 6
D. 3 8
E. Mỗi lần chạy ra 1 kết quả khác nhau
F. Runtime error
Câu 69: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
4. class MyTask extends 「①」{ 5. private Integer[] nums; 6. private int x; 7. private int y; 8. public MyTask(Integer[] nums, 9. int x, int y){ 10. this.nums = nums; 11. this.x = x; 12. this.y = y; 13. } 14. protected Integer compute() { 15. if( y - x < 2) { 16. return Math.min(num[x], nums[y]); 17. } else { 18. int m = x + (y-x)/2; 19. MyTask task1 = new MyTask(nums,x,m); 20. MyTask task2 = newMyTask(nums, m,y); 21. Integer r1 = task1.fork().join(); 22. Integer r2 = task2.compute(); 23. return Math.min(r1, r2); 24. } 25. } 26. } 27. public class Test { 28. public static void main(String[] args){ 29. Integer[] nums = {10, -20,40,-50); 30. MyTask task = new MyTask(nums, 0,nums.length-1); 31. ForkJoinPool pool = new ForkJoinPool(); 32. Integer r = pool.invoke(task); 33. System.out.println("Min : " + r); 34. } 35. } |
A. Điền RecursiveTask<Integer> vào chỗ trống thì sẽ in ra giá trị nhỏ nhất trong mảng nums
B. Điền RecursiveAction vào chỗ trống thì sẽ in ra giá trị nhỏ nhất trong mảng nums
C. Điền cái gì vào chỗ trống thì dòng 21 vẫn compile error
D. Điền cái gì vào chỗ trống thì dòng 23 vẫn compile error
E. Điền cái gì vào chỗ trống thì kết quả in ra cũng ko ổn định (mỗi lần 1 kết quả)
Câu 70: Compile và chạy chương trình sau kết quả là (chọn 2 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.concurrent.*; public class Test{ public static void main(String[] args) throws Exception{ Object obj1 = new Object(); Object obj2 = new Object(); ExecutorService service = Executors.newFixedThreadPool(2); Future<?> result1 = service.submit(() - > { synchronized(obj1){ synchronized(obj2){ System.out.println("hello"); } } }); Future<?> result2 = service.submit(() - > { synchronized(obj2){ synchronized(obj1){ System.out.println("bye"); } } }); System.out.println(result1.get() + " " + result2.get()); } } |
A. Dòng thứ 10 compile error
B. Dòng thứ 16 compile error
C. sau khi in ra hello sẽ in ra bye và sau đó là 2 lần null
D. sau khi in ra bye sẽ in ra hello sau đó in ra 2 lần null
E. Mỗi lần chay có thể ra 1 kết quả khác nhau
F. Khi chạy có thể phát sinh dead lock
G. Khi chạy có thể phát sinh live lock
Câu 71: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 |
4. static void exec(CyclicBarrier c){ 5. try{ 6. c.await(); 7. System.out.println("hey"); 8. } catch(BrokenBarrierException | InterruptedException e){} 9. } 10. public static void main(String[] args){ 11. CyclicBarrier c = new CyclicBarrier(5, 12. ()->System.out.print("task ")); 13. IntStream.interate(0, i -> i+1).limit(3) 14. .parallel().forEach(i -> exec(c)); 15.} |
A. Dòng thứ 6 compile error
B. Dòng thứ 12 compile error
C. Dòng thứ 14 compile error
D. Runtime error
E. in ra task và hey mỗi chữ 1 lần
F. Compile success nhưng khi chạy thì bị treo
Câu 72: Câu nào sau đây đúng khi nói về xử lý song song (đa luồng) (chọn 2 đáp án)
A. Xử lý song song ko đảm bảo task nào sẽ dc hoàn thành đầu tiên
B. Xử lý song song thường sẽ làm tăng hiệu suất cho ứng dụng
C. Mỗi thread sẽ sử dụng 1 vùng nhớ riêng biệt
D. PC chỉ có 1 CPU thì xử lý song song sẽ ko có ích
E. Trong chương trình sử dụng nhiều resource và có xử lý nặng thì xử lý song song sẽ có ích
Câu 73: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
4. public class Test{ 5. private static Integer num = 0; 6. public static void main(String[] args) throws Exception{ 7. ExecutorService service = Executors.newSingleThreadExecutor(); 8. List<Future<?>> list = new ArrayList<>(); 9. IntStream.iterate(0, i -> i + 1).limit(5) 10. .forEach(i -> list.add(service.execute(()-> ++num))); 11. for(Future<?> r :list){ 12. System.out.print(r.get() + " "); 13. } 14. service.shutdown(); 15. } 16. } |
A. 0 1 2 3 4
B. 1 2 3 4 5
C. Dòng thứ 10 compile error
D. Dòng thứ 12 compile error
E. Compile success nhưng khi chay thì bị treo
F. Runtime error
Câu 74: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
static void exec(CyclicBarrier c){ try{ c.await(); System.out.print("hey "); } catch(BrokenBarrierException | InterruptedException e){} } public static void main(String[] args){ ExecutorService service = null; try{ service = Executors.newFixedThreadPool(2); 14. CyclicBarrier c = new CyclicBarrier(1); IntStream.iterate(0, i -> i + 1).limit(3) .parallel().forEach(i -> exec(c)); } finally{ if(service != null) service.shutdown(); } } |
A. Dòng số 14 compile error
B. Dòng số 14 runtime error
C. in ra 1 lần hey
D. in ra 2 lần hey
E. in ra 3 lần hey
Câu 75: Câu nào sau đây là đúng (chọn 2 đáp án)
A. Từ sau JDBC 4.0 cần phải load driver khi sử dụng Class.forName()
B. Class.forName() nếu ko tìm dc class driver sẽ throw ClassNotFoundException
C. Class.forName nếu ko tìm dc class driver sẽ throw SQLException
D. DriverManager.getConnection() nếu ko thể lấy dc Connection sẽ throw ClassNotFoundException
E. DriverManager.getConnection() nếu ko thể lấy dc Connection sẽ throw SQLException
Câu 76: Giả sử Phương thức getConnect() của class DbConnector có thể tạo dc kết nối bình thường và bảng department có 5 record. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 |
public static void main(String[] args) throws SQLException{ String sql = "update department set dept_address = 'tmp'"; try(Connection con = DbConnector.getConnect(); Statement stmt = con.createStatement()){ int num = stmt.executeUpdate(sql); System.out.println(num); } } |
A. 0
B. 1
C. 5
D. compile error
E. Runtime error
Câu 77: Giả sử Phương thức getConnect() của class DbConnector có thể tạo dc kết nối bình thường và bảng department có 5 record với depth_code từ 1 đến 5. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 |
public static void main(String[] args) throws SQLException{ String sql = "SELECT dept_code FROM department " + "order by dept_code"; try(Connection con = DbConnector.getConnect(); Statement stmt = con.createStatement() ResultSet rs = stmt.executeQuery(sql))){ rs.absolute(3); rs.next(); rs.next(); rs.previous(); System.out.println(rs.getString(1)); } catch(SQLException e){ e.printStackTrace(); } } |
A. 1
B. 2
C. 3
D. compile error
E. Runtime error
Câu 78: Giả sử Phương thức getConnect() của class DbConnector có thể tạo dc kết nối bình thường và bảng department có 5 record với depth_code từ 1 đến 5. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 |
public static void main(String[] args) throws SQLException{ String sql = "SELECT dept_code FROM department " + "order by dept_code"; try(Connection con = DbConnector.getConnect(); Statement stmt = con.createStatement() ResultSet rs = stmt.executeQuery(sql))){ System.out.println(rs.getString(1)); } catch(SQLException e){ e.printStackTrace(); } } |
A. Chỉ in ra 1
B. in ra từ 1 đến 5
C. in ra 1 trong các số từ 1 đến 5
D. Compile error
E. Runtime error
Câu 79: Giả sử Phương thức getConnect() của class DbConnector có thể tạo dc kết nối bình thường và bảng department có 5 record với depth_code từ 1 đến 5. Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 5 6 7 8 9 10 11 12 |
public static void main(String[] args) throws SQLException{ String sql = "SELECT dept_code FROM department " + "order by dept_code"; try(Connection con = DbConnector.getConnect(); Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATEABLE) ResultSet rs = stmt.executeQuery(sql))){ rs.beforeFirst(); rs.absolute(3); rs.previous(); rs.relative(2); System.out.println(rs.afterLast()); } catch(SQLException e){ e.printStackTrace(); } } |
A. 4
B. 5
C. -1
D. Compile error
E. Runtime error
Câu 80: code nào sau đây đúng (chọn 2 đáp án)
A. Locale.create(“US”);
B. Locale.create(“en”, “US”);
C. new Locale(“US”);
D. new Locale(“en”, “US”);
E. Locale.”US”;
F. Locale.getLocale(“US”);
Câu 81: Những loại localize nào sau đây có thể sử dụng với JavaAPI (chọn 3 đáp án)
A. Giá trị số
B. Tên class
C. Tiền tệ
D. Ngày giờ
E. tên biến và tên method
Câu 82: Câu nào sau đây đúng khi nói về ResourceBundle (chọn 1 đáp án)
A. Resource Bundle ko thể sử dụng ở nhiều chỗ
B. ResourceBundle sử dụng ListResourceBundle hoặc file property có thể lấy được data ko phải dạng String
C. ResourceBundle sử dụng file property có thể chuyển sang class java sử dụng ListResourceBundle
D. Khi implement resource bundle: file class java sử dụng ListResourceBundle và file property ko thể sử dụng cùng nhau trong chương trình
E. Tên file property có thể lấy phần sau dấu chấm tùy ý
Câu 83: Chọn code điền vào chỗ trống để chương trình chạy in ra hana (chọn 2 đáp án)
1 2 3 4 5 6 7 8 9 10 11 |
package com.se; import java.util.ListResourceBundle; public class Foo_en extends ListResourceBundle{ protected Object[][] getContents(){ Object[][] contents = {{"name","hana"}}; return contents; } } Local locale = Locale.US; ResourceBundle obj = ResourceBundle.getBundle("「①」",locale); System.out.println(obj.getString("name")); |
A. Foo_en.java
B. Foo_en.class
C. Foo
D. Foo_en
E. com.se.Foo
F. com.se.Foo_en
Câu 84: Giả sử có các file như sau
MyResources.properties:
val1 = taro
val2 = 10
MyResources_en_US.properties
val1 = hana
val2 = 30
MyResources_fr.properties
val1 = anna
Chạy chương trình sau kết quả là (chọn 1 đáp án)
1 2 3 4 |
Locale locale = new Locale("fr"); ResourceBundle obj = ResourceBundle.getBundle("MyResources",locale); System.out.print(obj.getString("val1")); System.out.print(obj.getString("val2")); |
A. taro 10
B. hana 30
C. anna
D. anna 10
E. anna 30
F. Compile error
G. Runtime error
Câu 85: Giả sử có file sau
MyResources_en_US.properties:
val1 = hana
val2 = 30
1 |
ResourceBundle bundle = ResourceBundle.getBundle("MyResources", Locale.US); |
Dùng code nào sau đây có thể in ra tất cả giá trị (ko in ra key) của file properties (chọn 1 đáp án)
A. bundle.keys().stream().map(k -> bundle.getString(k)).forEach(System.out::println);
B. bundle.keys().stream().map(k -> k).forEach(System.out::println);
C. bundle.stream(0.map(k -> bundle.getString(k)).forEach(System.out::println);
D. bundle.stream().map(k -> k).forEach(System.out::println);
E. bundle.keySet().stream().map(k -> bundle.getString(k)).forEach(System.out::println);
F. bundle.keySet().stream().map(k -> k).forEach(System.out::println);
Đáp án:
- A
- A D
- B
- F
- B
- F
- A C F
- A B E
- A B D E
- A D
- C
- A E F
- A B D
- E
- A D E
- B
- H
- A E F
- E
- A D E
- A
- D
- B F
- B
- D
- E
- D E
- A
- C
- C
- D
- C
- E
- B F
- B
- F
- A C
- E
- F
- E F
- F
- E
- F
- B
- A D
- B
- A B C
- D E
- E
- C
- F
- D E
- B C
- B C E
- E
- D
- F
- B C D
- B
- E
- G
- D
- C F
- A
- A B
- C
- D
- E
- A
- E F
- F
- A E
- C
- E
- B E
- C
- E
- E
- D
- C D
- A C D
- C
- E F
- D
- E