티스토리 뷰

반응형

NEW QUESTION 61
Given:

1

2

3

4

5

6

7

8

class Block{

    String color;

    int size;

    Block(int size, String color){

        this.size = size;

        this.color = color;

    }

}

Colored by Color Scripter

cs


and the code fragment:

1

2

3

4

5

List < Block > blocks = new ArrayList < >();

blocks.add(new Block(10, "Green"));

blocks.add(new Block(7, "Red"));

blocks.add(new Block(12, "Blue"));

Collections.sort(blocks, new ColorSorter());

cs


Which definition of the ColorSorter class sorts the blocks list?

A. Option A
B. Option B
C. Option C
D. Option D

Answer: C

NEW QUESTION 62
Given:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public class StrMan {

  public static void doStuff(String s) {

    try {

      if (s == null) {

        throw new NullPointerException();

      }

    } finally {

      System.out.println("-finally-");

    }

    System.out.println("-doStuff-");

  }

  public static void main(String[] args) {

    try {

      doStuff(null);

    } catch(NullPointerException npe) {

      System.out.println("-catch-");

    }

  }

}

Colored by Color Scripter

cs


What is the result?
A. –catch--finally--dostuff-
B. –catch-
C. –finally--catch-
D. –finally-dostuff--catch-

Answer: C

NEW QUESTION 63
Given the code fragment:
What is the result ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

final List < String > list = new CopyOnWriteArrayList < >();

final AtomicInteger ai = new Atomicinteger(0);

final CyclicBarrier barrier = new CyclicBarrier(2, new Runnable() {

  public void run() {

    System.out.println(list);

  }

});

Runnable r = new Runnable() {

  public void run() {

    try {

      Thread.sleep(1000 * ai.incrementAndGet());

      list.add("X");

      barrier.await();

    } catch(Exception ex) {}

  }

};

new Thread(r).start();

new Thread(r).start();

new Thread(r).start();

new Thread(r).start();

Colored by Color Scripter

cs


A. [X][X, X][X, X, X][X, X, X, X]
B. [X, X]
C. [X][X, X][X, X, X]
D. [X, X][X, X, X, X]

Answer: A

NEW QUESTION 64
The data.doc, data.txt and data.xml files are accessible and contain text.
Given the code fragment:

1

2

3

4

5

6

7

8

Stream < Path > paths = Stream.of(Paths.get("data.doc"), Paths.get("data.txt"), Paths.get("data.xml"));

paths.filter(s ->s.toString().endWith("txt")).forEach(s ->{

  try {

    Files.readAllLines(s).stream().forEach(System.out::println); //line n1 

  } catch(IOException e) {

    System.out.println("Exception");

  }

});

Colored by Color Scripter

cs

What is the result?
A. The program prints the content of data.txt file.
B. The program prints: Exception<<The content of the data.txt file>> Exception
C. A compilation error occurs at line n1.
D. The program prints the content of the three files.

Answer: A

NEW QUESTION 65
Given:

1

2

3

4

5

6

7

8

9

10

11

12

class Vehicle {

  int vno;

  String name;

  public Vehicle(int vno, String name) {

    this.vno = vno;

    this.name = name;

  }

  public String toString() {

    return vno + ":" + name;

  }

}

Colored by Color Scripter

cs

and this code fragment:

1

2

3

4

Set < Vehicle > vehicles = new TreeSet < >();

vehicles.add(new Vehicle(10123, "Ford"));

vehicles.add(new Vehicle(10124, "BMW"));

System.out.println(vehicles);

cs

What is the result?
A. 10123 Ford10124 BMW
B. 10124 BMW10123 Ford
C. A compilation error occurs.
D. A ClassCastException is thrown at run time.

Answer: D

Explanation: Exception in thread “main” java.lang.ClassCastException: com.test.Vehicle cannot be cast to java.lang.Comparable
vehicles.add(new Vehicle(10123, "Ford"));부분에서 에러가 난다

NEW QUESTION 66
Given the code fragment:

1

2

3

4

5

6

Map < Integer, String > books = new TreeMap < >();

books.put(1007, "A");

books.put(1002, "C");

books.put(1001, "B");

books.put(1003, "B");

System.out.println(books);

cs

What is the result?
A. {1007 = A, 1002 = C, 1001 = B, 1003 = B}
B. {1001 = B, 1002 = C, 1003 = B, 1007 = A}
C. {1002 = C, 1003 = B, 1007 = A}
D. {1007 = A, 1001 = B, 1003 = B, 1002 = C}

Answer: B

Explanation: TreeMap은 대소를 구분하여 저장되고, 중복값은 새값으로 대체한다.

NEW QUESTION 67
Given:

1

2

3

4

5

6

7

8

9

10

11

12

13

class Engine {

  double fuelLevel;

  Engine(int fuelLevel) {

    this.fuelLevel = fuelLevel;

  }

  public void start() {

    //line n1

    System.out.println("Started");

  }

  public void stop() {

    System.out.println("Stopped");

  }

}

Colored by Color Scripter

cs


Your design requires that:

Which code fragment should be added at line n1 to express this invariant condition?

A. assert (fuelLevel) : "Terminating...";
B. assert (fuelLevel > 0) : System.out.println ("Impossible fuel");
C. assert fuelLevel < 0: System.exit(0);
D. assert fuelLevel > 0: "Impossible fuel" ;

Answer: C

Explanation: Java에서 단언문 assert는 JDK 1.4 부터 지원합니다. 객체가 아니고 예약어 입니다.
사용법은 두 가지 형식이 있는데, 다음과 같습니다.

assert expression1;
assert expression1: expression2;

첫 번째는 인자로 boolean으로 평가되는 표현식 또는 값을 받아서 참이면 그냥 지나가고, 거짓이면 AssertionError 예외가 발생합니다. 두 번째는 표현식1이 거짓인 경우 두번째 표현식의 값이 예외 메세지로 보여지게 됩니다.
Assertion은 디버깅 용도로 사용되어서 JVM 기본 설정으로 프로그램을 실행하게 되면 assert문은 모두 실행에서 제외 됩니다. assert가 동작하게 하려면 실행시 -ea 옵션을 사용해서 실행합니다.

java -ea 클래스명

NEW QUESTION 68
Given the code fragment:

1

2

3

4

List < String > qwords = Arrays.asList("why ", "what ", "when ");

BinaryOperator < String > operator = (s1, s2) ->s1.concat(s2); //line n1

String sen = qwords.stream().reduce("Word: ", operator);

System.out.println(sen);

Colored by Color Scripter

cs


What is the result?
A. Word: why what when
B. Word: why Word: why what Word: why what when
C. Word: why Word: what Word: when
D. Compilation fails at line n1.

Answer: A

Explanation: reduce는 Stream의 데이터를 변환하지 않고, 더하거나 빼는 등의 연산을 수행하여 하나의 값으로 만들 수 있습니다

두 개의 인자를 받는 경우입니다. 여기서 10은 초기값이고,
스트림 내 값을 더해서 결과는 16(10 + 1 + 2 + 3)이 됩니다. 여기서 람다는 메소드 참조(method reference)를 이용해서 넘길 수 있습니다.

int reducedTwoParams =
IntStream.range(1, 4) // [1, 2, 3]
.reduce(10, Integer::sum); // method reference
NEW QUESTION 69
Given the code fragments:

1

2

3

4

5

6

class TechName {

  String techName;

  TechName(String techName) {

    this.techName = techName;

  }

}

cs

and

1

2

3

4

List < TechName > tech = Arrays.asList(    new TechName("Java-"), 

                                        new TechName("Oracle DB-"), 

                                        new TechName("J2EE-"));

Stream < TechName > stre = tech.stream(); //line n1

cs


Which should be inserted at line n1 to print Java-Oracle DB-J2EE-?
A. stre.forEach(System.out::print);
B. stre.map(a-> a.techName).forEach(System.out::print);
C. stre.map(a-> a).forEachOrdered(System.out::print);
D. stre.forEachOrdered(System.out::print);

Answer: B

NEW QUESTION 70
Given the code fragment:

1

2

3

4

5

6

7

8

9

10

11

try {

  Properties prop = new Properties();

  prop.put("user", userName);

  prop.put("password", passWord);

  Connection conn = DriverManager.getConnection(dbURL, prop);

  if (conn != null) {

    System.out.print("Connection Established");

  }

} catch(Exception e) {

  System.out.print(e);

}

Colored by Color Scripter

cs


and the information:

What is the result?

A. A ClassNotFoundException is thrown at runtime.
B. The program prints nothing.
C. The program prints Connection Established.
D. A SQLException is thrown at runtime.

Answer: C

NEW QUESTION 71
Which two are elements of a singleton class? (Choose two.)

A. a transient reference to point to the single instance
B. a public method to instantiate the single instance
C. a public static method to return a copy of the singleton reference
D. a private constructor to the class
E. a public reference to point to the single instance

Answer: CD

Explanation: 싱글턴 패턴의 공통적인 특징은 private constructor 를 가진다는 것과, static method 를 사용한다는 점입니다.

NEW QUESTION 72
Given:

1

2

3

4

5

6

7

8

9

10

11

public class Product {

  int id;

  int price;

  public Product(int id, int price) {

    this.id = id;

    this.price = price;

  }

  public String toString() {

    return id + ":" + price;

  }

}

Colored by Color Scripter

cs

and the code fragment:

1

2

3

4

5

6

7

8

9

10

List < Product > products = new ArrayList(Arrays.asList(    new Product(1, 10), 

                                                                      new Product(2, 30), 

                                                                      new Product(3, 20)));

Product p = products.stream().reduce(

                         new Product(4, 0),

                                             (p1, p2) ->{

                                                      p1.price += p2.price;

                                                      return new Product(p1.id, p1.price);

                                             });

products.add(p);

products.stream().parallel().reduce((p1, p2) ->p1.price > p2.price ? p1: p2)

                                .ifPresent(System.out::println);

Colored by Color Scripter

cs

What is the result?
A. 2 : 30
B. 4 : 0
C. 4 : 60
D. 4 : 602 : 303 : 201 : 10
E. The program prints nothing.

Answer: C

Explanation: reduce는 값을 리턴할뿐 스트림자체를 변경하지는 않는다.

4번째줄에서 reduce연산을 통해 p(4,60)인 값을 얻고 add연산을 통해 스트림에 삽입한다. 이를 ifPresent를 통해 출력한다.

* ifPresent(Consumer<? super T> consumer) : 값이 존재할 때 인수로 넘겨준 동작 실행 가능
값이 없으면 아무 일도 일어나지 않음

NEW QUESTION 73
Given the content:


and the code fragment:

1

2

3

4

5

6

7

8

Locale currentLocale = new Locale.Builder().setRegion("FR").setLanguage("fr").build();

ResoureBundle message = ResourceBundle.getBundle("MessagesBundle", currentLocale);

Enumeration < String > names = messages.getKeys();

While(names.hasMoreElements()) {

  String key = names.nextElement();

  String name = messages.getString(key);

  System.out.println(key + " = " + name);

}

Colored by Color Scripter

cs


What is the result?
A. username = Entrez le nom d’utilisateur
password = Entrez le mot de passe
B. username = Enter User Name
password = Enter Password
C. A compilation error occurs.
D. The program prints nothing.

Answer: A

NEW QUESTION 74
Given the code fragment:

1

2

3

4

List < String > li = Arrays.asList("Java", "J2EE", "J2ME", "JSTL", "JSP", "Oracle DB");

Predicate < String > val = p ->p.contains("J");

List < String > neLi = li.stream().filter(x ->x.length() > 3).filter(val).collect(Collectors.toList());

System.out.println(neLi);

Colored by Color Scripter

cs


What is the result?
A. A compilation error occurs.
B. [Java, J2EE, J2ME, JSTL, JSP]
C. null
D. [Java, J2EE, J2ME, JSTL]

Answer: D

NEW QUESTION 75
Given the code fragment:

1

2

3

List < String > nums = Arrays.asList("EE", "SE");

String ans = nums.parallelStream().reduce("Java ", (a, b) ->a.concat(b));

System.out.println(ans);

Colored by Color Scripter

cs


What is the result?

A. Java EEJava EESE
B. Java EESE
C. The program prints either:Java EEJava SE orJava SEJava EE
D. Java EEJava SE

Answer: D

Explanation:

NEW QUESTION 76
Given that version.txt is accessible and contains: 1234567890
and given the code fragment:

1

2

3

4

5

6

7

8

9

10

11

12

13

try (FileInputStream fis = new FileInputStream("version.txt");

      InputStreamReader isr = new InputStreamReader(fis);

       BufferedReader br = new BufferedReader(isr);) {

  if (br.markSupported()) {

    System.out.println((char) br.read());

    br.mark(2);

    System.out.println((char) br.read());

    br.reset();

    System.out.println((char) br.read());

  }

} catch(Exception e) {

  e.printStackTrace();

}

Colored by Color Scripter

cs


What is the result?
A. 121
B. 122
C. 135
D. The program prints nothing.

Answer: B

Explanation:

void mark() 

현재우치를 마킹, 차 후 reset() 을 이용하여 마킹위치부터 시작함

void reset() 

마킹이 있으면 그 위치에서부터 다시시각, 그렇지 않으면 처음부터 다시시작

5,7,9 라인 차례로 1,2,다시 마킹위치인 2 를 출력한다

NEW QUESTION 77
Given the code fragments :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

public class Product {

  String name;

  Integer price;

  Product(String name, Integer price) {

    this.name = name;

    this.price = price;

  }

  public void printVal() {

    System.out.print(name + " Price:" + price + " ");

  }

  public void setPrice(int price) {

    this.price = price;

  }

  public Integer getPrice() {

    return price;

  }

}

Colored by Color Scripter

cs


and

1

2

3

4

List < Product > li = Arrays.asList(new Product("TV", 1000), new Product("Refrigerator", 2000));

Consumer < Product > raise = e ->e.setPrice(e.getPrice() + 100);

li.forEach(raise);

li.stream().forEach(Product::printVal);

Colored by Color Scripter

cs


What is the result?
A. TV Price :1100 Refrigerator Price :2100
B. A compilation error occurs.
C. TV Price :1000 Refrigerator Price :2000
D. The program prints nothing.

Answer: A

NEW QUESTION 78
Given the code fragment:

1

2

3

4

5

6

7

8

9

LocalTime now = LocalTime.now();

long timeToBreakfast = 0;

LocalTime office_start = LocalTime.of(7, 30);

if (office_start.isAfter(now)) {

  timeToBreakfast = now.until(office_start, ChronoUnit.MINUTES);

} else {

  timeToBreakfast = now.until(office_start, ChronoUnit.HOURS);

}

System.out.println(timeToBreakfast);

cs


Assume that the value of now is 6:30 in the morning.
What is the result?

A. An exception is thrown at run time.
B. 60
C. 1

Answer: B

Explanation:

// these two lines are equivalent
amount = start.until(end, MINUTES);
amount = MINUTES.between(start, end);
util이 두번째인자 단위의 차이를 나타내므로 6시30분과 7시30분의 분단위 차이인 60이 답이다.

NEW QUESTION 79
Given the code fragment:

1

2

3

4

5

6

7

8

Deque<Integer> nums = new ArrayDeque<>();

nums.add(1000);

nums.push(2000);

nums.add(3000);

nums.push(4000);

Integer i1 = nums.remove();

Integer i2 = nums.pop();

System.out.println(i1 + " : " + i2);

cs


What is the result?
A. 4000 : 2000
B. 4000 : 1000
C. 1000 : 4000
D. 1000 : 2000

Answer: A

Explanation: deque에서 add는 addLast를 push는 addFirst를 의미한다.
따라서, [4000 2000 1000 3000] 순서였고, 4000과 2000이 나온다

NEW QUESTION 225
Given the code fragment:

1

2

3

4

5

6

7

8

9

class CallerThread implements Callable < String > {

  String str;

  public CallerThread(String s) {

    this.str = s;

  }

  public String call() throws Exception {

    return str.concat("Call");

  }

}

Colored by Color Scripter

cs

and

1

2

3

4

5

6

public static void main(String[] args) throws InterruptedException, ExecutionException {

  ExecutorService es = Executors.newFixedThreadPool(4); //line n1 

  Future f1 = es.submit(new CallerThread("Call"));

  String str = f1.get().toString();

  System.out.println(str);

}

Colored by Color Scripter

cs


Which statement is true?
A. The program prints Call Call and terminates.
B. The program prints Call Call and does not terminate.
C. A compilation error occurs at line n1.
D. An ExecutionException is thrown at run time.

Answer: B

Explanation:
자바 쓰레드 구현 방법
: 자바에서 Thread를 만드는 방법은 크게 Thread 클래스를 상속받는 방법과 Runnable인터페이스를 구현하는 방법이 있다.
https://programmers.co.kr/learn/courses/9/lessons/271
https://programmers.co.kr/learn/courses/9/lessons/272
Callable 은 Runnable의 확장개념으로서
차이점은 제너릭으로 받은 타입으로 return값을 낼수있다

ExecutorService
: ExecutorService는 병렬작업 시 여러개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA의 라이브러리이다.FixedThreadPool : 고정된 개수를 가진 쓰레드풀을 의미한다
해당 클래스에서 ExecutorService에 작업을 submit을 하게 되면, ExecutorService 내부에서 해당 작업을 내부적으로 스케쥴링 하면서 적절하게 일을 처리한다

.
https://gompangs.tistory.com/entry/JAVA-ExecutorService-%EA%B4%80%EB%A0%A8-%EA%B3%B5%EB%B6%80
ExecutorService(스레드 풀) 구현객체는 Executors 클래스 메소드를 통해 간편하게 생성할 수 있다.

메소드명

초기 스레드 수

코어 스레드 수

최대 스레드 수

newCachedThreadPool()

0

0

Integer.MAX_VALUE

newFixedThreadPool(int num)

0

num

num

초기 스레드 수 : 기본적으로 생성되는 스레드 수
코어 스레드 수 : 최소한으로 유지해야 할 스레드 수
최대 스레드 수 : 스레드풀에서 관리하는 최대 스레드 수
1개 이상의 스레드가 추가되었을 경우 60초 동안 추가된 스레드가 아무 작업을 하지 않으면 추가된 스레드를 종료하고 풀에서 제거한다.

스레드 풀은 데몬 스레드가 아니기 때문에 main 스레드가 종료되어도 실행 상태로 남아있다.
애플리케이션을 종료하려면 스레드풀을 종료시켜 스레드들이 종료상태가 되도록 처리해주어야 한다.

리턴 타입

메소드명(매개변수)

설명

void

shutdown()

현재 처리중인 작업, 작업 큐에 대기하는 모든 작업을 처리한 뒤 종료

List

shutdownNow()

작업 중인 스레드를 interrupt해서 작업 중지를 시도하고 스레드 풀을 종료 시킴. 리턴 값은 미처리된 작업(Runnable) 목록

boolean

awaitTermination(long timeout, TimeUnit unit)

shotdown() 메소드 호출 후, 모든 작업 처리를 timeout 시간내에 처리하면 true 리턴 못하면 interrupt하고 false 리턴



NEW QUESTION 80
Given the code fragment:

10

11

12

13

14

15

16

17

18

try {

  Connection conn = DriverManager.getConnection(dbURL, userName, passWord);

  String query = "SELECT * FROM Employee WHERE ID = 110";

  Statement stmt = conn.createStatement();

  ResultSet rs = stmt.executeQuery(query);

  System.out.println("Employee ID: " + rs.getInt("ID"));

} catch(Exception se) {

  System.out.println("Error");

}

Colored by Color Scripter

cs


Assume that:
The required database driver is configured in the classpath.
The appropriate database is accessible with the dbURL, userName, and passWord exists
The Employee table has a column ID of type integer and the SQL query matches one record.
What is the result?

A. Compilation fails at line 14.
B. Compilation fails at line 15.
C. The code prints the employee ID.
D. The code prints Error.

Answer: D

Explanation: the cursor is before the first record, so we need rs.next() before retrieving the record.
커서가 첫번째 record 앞에 있으므로 if(rs.next())나 while(rs.next())로 감싼다음에 rs.getInt(“ID”)를 호출해야한다

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함