wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

JAVA6

Total questions: 151

Worksheet time: 37hrs 16mins

Name
Class
Date
1.

Chon interface

@FunctionalInterface

public interface Demo4Inter{

void m1(int x);

}

Hãy chọn mã đúng khi tạo đối tượng

a)

Demo4Inter o4 = x - > System.out.println(x);

b)

Demo4Inter o3 = x - > {};

c)

Demo4Inter o1 = new Demo4Inter() { @Override public void m1(int x) {} };

d)

Demo4Inter o2 = new Demo4Inter() { @Override public void m1(int x) {} public void m2() {} };

2.

Chon interface

@FunctionalInterface

public interface Demo4Inter{

void m1(int x);

}

Hãy chọn mã đúng khi tạo đối tượng

a)

Demo4Inter o3 = x - > {};

b)

Demo4Inter o4 = x - > System.out.println(x);

c)

Demo4Inter o1 = new Demo4Inter() { @Override public void m1(int x) {} };

d)

Demo4Inter o2 = new Demo4Inter() { @Override public void m1(int x) {} @Override public void m2() {} };

3.

Đâu là cú pháp đúng của phương thức readValue() trong ObjectMapper

1. readValue(source, Class < T > ): T

2. readValue(source, TypeReference < T > ): T

a)

1 sai, 2 đúng

b)

1 đúng, 2 đúng

c)

1 sai, 2 sai

d)

1 đúng, 2 sai

4.

Đâu là phương thức trung gian trong Stream API?

a)

filter()

b)

map()

c)

sorted()

d)

forEach()

5.

Đâu là phương thức trung gian trong Stream API?

a)

count()

b)

min()

c)

mapToDouble()

d)

max()

6.

Cho lớp Student:

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Student {

String name;

Boolean gender = false;

Double marks = 0.0;

}

Hãy điền mã đúng vào chỗ trống:

List < Student > list = Arrays.asList(

new Student("Nguyễn Văn Tèo", true, 7.5)

...

);

Collections.sort(list, _____);

a)

(sv1, sv2) - > sv1.getName().compareTo(sv2.getName())

b)

(sv1, sv2) - > { return sv1.getName().compareTo(sv2.getName());}

c)

(sv1, sv2) - > sv1.getName().compareTo(sv2.getName());

d)

(sv1, sv2) - > { return sv1.getName().compareTo(sv2.getName())}

7.

Đâu là các phương thức của ObjectMapper được sử dụng để đọc nguồn dữ liệu JSON và cho kết quả là JSonNode

a)

readTree()

b)

readValue()

c)

writeValueAsString()

d)

writeValue()

8.

Phương thức nào có các Stream của đầu vào và đầu ra chứa các phần tử cùng kiểu?

a)

limit()

b)

map()

c)

peek()

d)

filter()

9.

Đâu là phương thức kết thúc trong Stream API?

a)

peek()

b)

sum()

c)

reduce()

d)

collect()

10.

Lệnh nào được sử dụng để duyệt các key trong đối tượng JavaScript?

a)

for(var key: object)

b)

for(var key in object)

c)

foreach(var key in object)

d)

foreach(var key: object)

11.

Đâu là các phương thức của JsonNode được sử dụng để chuyển đổi sang Iterator < JsonNode > ?

a)

node(key)

b)

get(key)

c)

iterator()

d)

iterator(key)

12.

Đâu là phương thức kết thúc trong Stream API?

a)

filter()

b)

sorted()

c)

forEach()

d)

map()

13.

Cho lớp Student:

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Student {

String name;

Boolean gender = false;

Double marks = 0.0;

}

Hãy điền mã đúng vào chỗ trống:

List < Student > list = Arrays.asList(

new Student("Nguyễn Văn Tèo", true, 7.5)

...

);

Collections.sort(list, _____);

a)

(sv1, sv2) - > -sv1.getMarks().compareTo(sv2.getMarks());

b)

(sv1, sv2) - > { return -sv1.getMarks().compareTo(sv2.getMarks())}

c)

(sv1, sv2) - > { return -sv1.getMarks().compareTo(sv2.getMarks());}

d)

(sv1, sv2) - > -sv1.getMarks().compareTo(sv2.getMarks())

14.

Đâu là phương thức trung gian trong Stream API?

a)

mapToInt()

b)

average()

c)

anyMatch()

d)

allMatch()

15.

Hãy chọn lệnh đúng duyệt Map sau

Map < String, Double > map = new HashMap < > ();

a)

map.forEach((k, v) - > System.out.printf("%s=%.2f", k, v));

b)

map.forEach(k, v - > System.out.printf("%s=%.2f", k, v));

c)

map.forEach(k, v - > {System.out.printf("%s=%.2f", k, v);});

d)

map.forEach(k, v - > {System.out.printf("%s=%.2f", k, v)});

16.

Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?

a)

th:text

b)

th:with

c)

th:title

d)

th:object

17.

Đâu là phương thức trung gian trong Stream API?

Chọn mã cho kết quả tương đương với thẻ sau

< span th:utext="${message}" > < /span >

a)

< span > [(${message})] < /span >

b)

< span > [[${message}]] < /span >

c)

< span > ((${message})) < /span >

d)

< span > ([${message}]) < /span >

18.

Cho 2 phát biểu về dự án Spring Boot sử dụng Thymeleaf như sau:

1. Thymeleaf là một động cơ tạo mẫu (template engine) chạy phía server có khả năng xử lý việc tạo ra HTML, XML, CSS, JS và TEXT.

2. Thymeleaf dựa vào các nguyên mẫu (HTML, CSS…) và bổ sung các quy luật cần thiết để sản sinh ra template hoàn thiện với dữ liệu động.

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 đúng

19.

Đâu là các thuộc tính do Thymeleaf định nghĩa mới mà không dựa vào các thuộc tính của HTML?

a)

th:fragment

b)

th:utext

c)

th:remove

d)

th:href

20.

Giả sử x là biến trong Model có kiểu là Integer. Nếu x có giá trị là 10 thì đâu là kết quả của đoạn mã sau?

< ul th:switch="${x}" >

< li th:case="1" > Một < /li >

< li th:case="2" > Hai < /li >

< li th:case="3" > Ba < /li >

< li th:case="*" > Bốn < /li >

< /ul >

a)

Một

b)

Ba

c)

Bốn

d)

Hai

21.

Đâu là các toán tử số học được sử dụng trong Thymeleaf

a)

x

b)

:

c)

-

d)

+

22.

Đâu là các toán tử so sánh trong Thymeleaf?

a)

lt

b)

gt

c)

>

d)

<

23.

Giả sử x là biến trong Model có kiểu là Double. Đâu là biểu thức hiển thị x có dạng #,###.## (2 số lẻ, tách nhóm phần nguyên bởi dấu phẩy)

a)

${#numbers.formatDecimal(x, 0, 'COMMA', 2, 'POINT')}

b)

${#numbers.formatDecimal(x, 0, 'COMMA', 3, 'POINT')}

c)

${#numbers.formatDecimal(0, 'COMMA', 2, 'POINT', x)}

d)

${#numbers.formatDecimal(x, 0, 'POINT', 2, 'COMMA')}

24.

Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?

a)

th:block

b)

th:replace

c)

th:insert

d)

th:src

25.

Giải sử p.html có chứa một fragment x. Hãy chọn mã đúng để thay thế thẻ < div > bằng fragment x.

a)

< div th:replace="~{/p :: x}" > < /div >

b)

< div th:replace="~{/p.html}" > < /div >

c)

< div th:replace="~{/p.html :: x}" > < /div >

d)

< div th:replace="~{/p}" > < /div >

26.

Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?

a)

th:if

b)

th:switch

c)

th:each

d)

th:action

27.

Đâu là biểu được sử dụng để truy xuất dữ liệu trong file tài nguyên (.properties)

a)

*{}

b)

~{}

c)

#{}

d)

${}

28.

Giả sử list là biến trong Model có kiểu là List < String > . Hãy chọn mã lệnh đúng hiển thị các phần tử của list.

a)

< b th:each="item, state: list" th:text="${item}" > < /b >

b)

< b th:each="item: list" th:text="${item}" > < /b >

c)

< b th:each="item: ${list}" th:text="${item}" > < /b >

d)

< b th:each="item, state: ${list}" th:text="${item}" > < /b >

29.

Đâu là biểu được sử dụng để làm đúng đường dẫn url?

a)

${}

b)

~{}

c)

@{}

d)

*{}

30.

Giả sử list là biến trong Model có kiểu là List < String > . Hãy điền vào chỗ trống để hiển thị thứ tự và giá trị các phần tử của list.

< li th:each="item, state: ${list}" >

< b th:text="_____" > < /b >

< b th:text="_____" > < /b >

< /li >

a)

${state}, ${item}

b)

${state.index}, ${item}

c)

${state.index}, ${state.item}

d)

${index}, ${item}

31.

@NotEmpty có thể được sử dụng để kiểm lỗi cho trường có kiểu dữ liệu nào?

a)

Map

b)

String

c)

Array

d)

Collection

32.

@NotBlank có thể được sử dụng để kiểm lỗi cho trường có kiểu dữ liệu nào?

a)

Collection

b)

Array

c)

Map

d)

String

33.

Hãy điền vào chỗ trống biểu thức thích hợp để buộc thuộc tính p của bean b trong Model

< form th:action="@{/save}" >

< input th:field="_____" >

< /form >

a)

*{b.p}

b)

*{p}

c)

${p}

d)

${b.p}

34.

Đâu là cú pháp chọn fragment có tên là myfrag được khai báo trong file frags.html cùng thư mục?

a)

< div th:replace=“frags.html :: myfrag" > … < /div >

b)

< div th:replace=“frags :: myfrag" > … < /div >

c)

< div th:replace=“frags :: myfrag.html" > … < /div >

d)

< div th:replace=“frags(myfrag)" > … < /div >

35.

Đâu là biểu thức lựa chọn fragment đúng?

a)

~{frags.html :: myfrag}

b)

~{frags.html :: .myclass}

c)

~{frags.html :: body}

d)

~{frags.html :: #myid}

36.

Chọn phát biểu đúng về @DecimalMax() và @Max().

a)

@Max() và @DecimalMax() là tương đương

b)

@DecimalMax() chỉ áp dụng cho số thực @Max() chỉ áp dụng cho số nguyên

c)

@Max() áp dụng cho cả số thực và số nguyên trong khi @DecimalMax() chỉ áp dụng cho số nguyên

d)

@DecimalMax() áp dụng cho cả số thực và số nguyên trong khi @Max() chỉ áp dụng cho số nguyên

37.

Đâu là các annotation kiểm lỗi số?

a)

@Size()

b)

@FutureOrPresent()

c)

@Future()

d)

@Min()

38.

Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?

a)

public String validate(@Valid Student sv, Errors errors){}

b)

public String validate(@Validated Student sv, BindingResult errors){}

c)

public String validate(@Validated Student sv, Errors errors){}

d)

public String validate(@Valid Student sv, Errors errors){}

39.

Annotation nào được sử dụng để yêu cầu Spring kiểm lỗi bean?

a)

@Check

b)

@Validated

c)

@Valid

d)

@Error

40.

Đâu là các annotation kiểm lỗi thời gian?

a)

@Past()

b)

@PastOrPresent()

c)

@Max()

d)

@DecimalMax()

41.

Cho 2 phát biểu về annotation kiểm lỗi sau:

1. Tất cả annotation kiểm lỗi đều có thuộc tính message

2. Nếu không cung cấp thông báo lỗi cho thuộc tính message thì hệ thống sẽ hiển thị lỗi mặc định khi có lỗi

a)

1 đúng, 2 sai

b)

1 đúng, 2 đúng

c)

1 sai, 2 sai

d)

1 sai, 2 đúng

42.

File tài nguyên đa ngôn ngữ phải đặt thao nguyên tắc nào.

a)

< tên > - < mã quốc gia > .properties

b)

< tên > - < mã ngôn ngữ > .properties

c)

< tên > _ < mã quốc gia > .properties

d)

< tên > _ < mã ngôn ngữ > .properties

43.

Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?

a)

public String validate(Errors errors, @Valid Student sv){}

b)

public String validate(@Valid Student sv, Errors errors){}

c)

public String validate(@Validated Student sv, BindingResult errors){}

d)

public String validate(@Validated Student sv, Errors errors){}

44.

Biểu thức ~{/frags :: dynamic(~{::#main})} được hiểu là gì?

1. Chọn fragment dynamic khai báo trong frags.html và truyền thẻ main ở trang web hiện tại cho tham số của fragment dynamic trong frags.html

2. Chọn fragment dynamic khai báo trong frags.html và truyền fragment main ở trang web hiện tại cho tham số của fragment dynamic trong frags.html

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 đúng

45.

Giả sử trong cấu hình java có khai báo bean để nạp các file tài nguyên đa ngôn ngữ như sau

@Bean("messageSource")

public MessageSource getMessageSource() {

ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();

ms.setBasenames("classpath:i18n/layout", "classpath:i18n/home");

ms.setDefaultEncoding("utf-8");

return ms;

}

Hãy cho biết các file tài nguyên đa ngôn ngữ đặt ở thư mục nào của dự án?

a)

src/main/java/i18n

b)

src/i18n

c)

src/main/i18n

d)

src/main/resources/i18n

46.

URL url = new URL("...");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestProperty("Accept", "_____");

conn.setRequestMethod("_____");

a)

application/json, PUT

b)

application/json, GET

c)

application/json, POST

d)

application/json, DELETE

47.

Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS để truy vấn dữ liệu.

$http._____(url).then(response = > {}).catch(error = > {}))

a)

put

b)

post

c)

get

d)

delete

48.

Hãy điền vào các chỗ trống để tạo thành câu lệnh đúng cú pháp trong AngularJS.

$http._____(url, data)._____(response = > {})._____(error = > {}))

a)

get/then/catch

b)

post/then/catch

c)

delete/then/catch

d)

put/then/catch

49.

Khi thực hiện POST, Firebase REST API sẽ trả về dữ liệu gì?

a)

Đối tượng vừa thêm mới thành công

b)

Đối tượng rỗng

c)

Chuỗi chứa key được sinh tự động

d)

Đối tượng chứa thuộc tính name là key được sinh tự động

50.

Với RestTemplate API, HttpEntity < T > được sử dụng để làm nhiệm vụ gì?

a)

Thực hiện DELETE

b)

Thực hiện GET

c)

Không có nhiệm vụ quan trọng

d)

Đóng gói dữ liệu gửi đến REST API

51.

Trong REST, POST đại diện cho hoạt động nào?

a)

Truy vấn dữ liệu

b)

Xóa dữ liệu

c)

Thêm mới dữ liệu

d)

Cập nhật dữ liệu

52.

Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS.

$http._____(url).then(response = > {}).catch(error = > {}))

a)

delete

b)

put

c)

post

d)

get

53.

Cho 2 phát biểu:

1. RESTful Web Service và RESTful API là một

2. REST API khác RESTful Web Service

a)

1 sai, 2 sai

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 đúng

54.

Đối số thứ 2 (x) của phương thức RestTemplate.getForObject(url, x) có ý nghĩa gì?

1. Quy định kiểu dữ liệu trả về

2. Quy định kiểu dữ liệu gửi đi

a)

1 sai, 2 đúng

b)

1 đúng, 2 đúng

c)

1 đúng, 2 sai

d)

1 sai, 2 sai

55.

Thuật ngữ API trong REST API viết tắt của?

a)

Application Programming Interface

b)

Application Programming Integration

c)

Apply Programming Interface

d)

Apply Program Integration

56.

Cho 2 phát biểu sau:

1. Với SOAP, dữ liệu truyền thông cồng kềnh hơn REST

2. Với SOAP, dữ liệu truyền thông nhẹ hơn REST

a)

1 sai, 2 đúng

b)

1 sai, 2 sai

c)

1 đúng, 2 sai

d)

1 đúng, 2 đúng

57.

Cho 2 phát biểu:

1. REST API và RESTful API là một

2. REST API khác RESTful API

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 sai

d)

1 sai, 2 đúng

58.

Đâu là các phương thức của RestTemplate?

a)

postForObject(url, httpEntity, responseType < T > ): T

b)

delete(url)

c)

put(url, httpEntity)

d)

getForObject(url, responseType < T > ): T

59.

Với Firebase REST API, entrypoint được quy định kết thúc là gì?

a)

.html

b)

không quy định kết thúc

c)

.json

d)

.jsp

60.

Cho Realtime Database của firebase như hình trên, Để cập nhật thông tin liên lạc của Nguyễn Thị Diễm Phương bạn cần?

a)

Key: PS09013

b)

URL: https://poly-java-6-d4e0b-default-rtdb.firebaseio.com/users/PS09013/contact.json

c)

Data: { email: "?", address: "?"}

d)

Operation: PUT

61.

Hãy viết phương thức DSL tương đương với truy vấn sau:

@Query(“SELECT p FROM Product p WHERE p.available=true AND p.price=?1 OR p.name LIKE ?2 ORDER BY createDate”)

a)

List < Product > findByAvailableTrueAndPriceEqualOrNameLikeOrderByCreateDate(double price, String name);

b)

List < Product > findByAvailableTrueAndPriceIsOrNameLikeOrderByCreateDate(double price, String name);

c)

List < Product > findByAvailableTrueAndPriceOrNameLikeOrderByCreateDate(double price, String name);

d)

List < Product > findByAvailableAndPriceOrNameLikeOrderByCreateDate(double price, String name);

62.

Trong interface JpaRepository < T, ID > thì

1. T là kiểu của Entity

2. ID là kiểu của field @Id của Entity

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 đúng

63.

Hãy điền vào chỗ trống để thực hiện tổng hợp số lượng sản phẩm từng loại

@Query("SELECT o.category, count(o) FROM Product o GROUP BY o.category")

List < _____ > getReport();

a)

Category

b)

Object[]

c)

Category, Long

d)

Object, Object

64.

Đâu là các phương thức của ResponseEntity có mã trạng thái là 404?

a)

notFound()

b)

ok()

c)

badRequest()

d)

noContent()

65.

Đâu là cú pháp đúng khi tạo một DAO

1. public class MyDAO extends JpaRepository < T, ID > {}

2. public interface MyDAO extends JpaRepository < T, ID > {}

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 đúng

66.

Thông số nào chỉ ra JDBC Driver cần nạp vào để làm việc với hệ quản trị CSDL?

a)

spring.datasource.url

b)

spring.datasource.password

c)

spring.datasource.driverClassName

d)

spring.datasource.username

67.

Hãy điền vào chỗ trống để cho phép phương thức sau đây được sử dụng như hoạt động GET của REST API

_____

@GetMapping("/rest/find-all")

public List < T > findAll() {…}

a)

@Data

b)

@RequestBody

c)

@RestController

d)

@ResponseBody

68.

spring.jpa.hibernate.ddl-auto có những giá trị hợp lệ nào?

a)

delete

b)

create

c)

none

d)

create-drop

69.

Tại sao nên sử dụng ResponseEntity trong các RestController method?

1. Có nhiều lựa chọn trả về với mã trạng thái khác nhau

2. Tránh được lỗi

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 sai

d)

1 sai, 2 đúng

70.

Đâu là các phương thức được khai báo trong CrudRepository?

a)

Iterable < T > findAll()

b)

Page < T > findAll(Pageable pageable)

c)

boolean exists(ID id)

d)

Long count()

71.

Đâu là các phương thức được khai báo trong PagingAndSortingRepository?

a)

Page < T > findAll(Pageable pageable)

b)

List < T > findAll(Sort sort)

c)

Iterable < T > findAll(Sort sort)

d)

List < T > findAll()

72.

Với Spring Data JPA, trong entity class khi khai báo thực thể kết hợp là @JoinColumn(name="UserId") sẽ ánh xạ với cột khóa ngoại có tên như thế nào?

1. UserId

2. User_Id

a)

1 sai, 2 sai

b)

1 đúng, 2 đúng

c)

1 đúng, 2 sai

d)

1 sai, 2 đúng

73.

spring.jpa.hibernate.ddl-auto=none

Khai báo trên có ý nghĩa gì?

a)

Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)

b)

Không kiểm tra các ràng buộc trong entity với CSDL

c)

Xóa các bảng hiện có và tạo lại dựa trên các entity class

d)

Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng

74.

Đâu là khai báo phương thức truy vấn đùng cú pháp DSL?

a)

Page < Product > findByNameLike(String name, Pageable pageable);

b)

Page < Product > findAllByNameLike(String name, Pageable pageable);

c)

Page < Product > findByNameLikeAndPage(String name, Pageable pageable);

d)

Page < Product > findAllByNameLikeAndPage(String name, Pageable pageable);

75.

Đâu là annotation được sử dụng để chú thích đọc dữ liệu JSON từ đối số của phương thức REST API?

a)

@RequestBody

b)

@DeleteMapping

c)

@RestController

d)

@ResponseBody

76.

Với http là HttpSecurity, đâu là những URL đã được bảo vệ với lệnh sau

http.authorizeRequests().antMatchers("/a/**").authenticated()

a)

/a/b

b)

/a/b/c/d

c)

/a/b/c

d)

/a

77.

Trong bảo mật, XSS (Cross-Site Scripting) là kỹ thuật dùng để?

a)

Ngăn chặn thực hiện của script được nhập từ người sử dụng

b)

Ngăn chặn chia sẻ tài nguyên

c)

Ngăn chặn các request giả lập

d)

Ngăn chặn thực hiện khi chưa đăng nhập

78.

Với http là HttpSecurity và bạn có cấu hình đăng nhập và đăng xuất như sau:

http.formLogin().loginPage("url1")

Thì

1. Bạn cần viết phương thức ánh xạ với các url1 trong controller để chuyển đến giao diện đăng nhập

2. Không cần viết mã trong controller, hệ thống sẽ tự nhận biết form đăng nhập

a)

1 đúng, 2 đúng

b)

1 sai, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 sai

79.

Với http là HttpSecurity, đâu là những url cần được khai báo xử lý trong controller?

http.formLogin()

.loginPage("/security/login/form")

.loginProcessingUrl("/security/login")

.defaultSuccessUrl("/security/login/success", false)

.failureUrl("/security/login/error")

a)

/security/login/error

b)

/security/login/success

c)

/security/login

d)

/security/login/form

80.

Trong Authentication phương thức nào cho phép lấy username của người đăng nhập?

a)

getDetails()

b)

getName()

c)

getAuthorities()

d)

getPrincipal()

81.

Trong Authentication phương thức nào cho phép lấy UserDetails chứa thông tin của người đăng nhập?

a)

getPrincipal()

b)

getDetails()

c)

getName()

d)

getAuthorities()

82.

Spring Security sẵn có

1. Mô hình dữ liệu người sử dụng được chuẩn hóa

2. Phương pháp mã hóa mật khẩu

a)

1 sai, 2 sai

b)

1 sai, 2 đúng

c)

1 đúng, 2 đúng

d)

1 đúng, 2 sai

83.

Với Thymeleaf Extras Spring Security, đâu là các thẻ sử dụng security thích hợp?

a)

< div sec:authorize="isAuthenticated()" > < /div >

b)

< div sec:authorize="hasAnyRole('ADMIN')" > < /div >

c)

< div sec:authentication="isAuthenticated()" > < /div >

d)

< div sec:authentication="hasAnyRole('ADMIN')" > < /div >

84.

Với http là HttpSecurity, hãy điền vào chỗ trống tên phương thức phân quyền không cần đăng nhập cũng được phép truy xuất

http.authorizeRequests().antMatchers("/**")._____

a)

permitAll()

b)

hasAnyRole("ADMIN", "STAFF")

c)

hasRole("ADMIN")

d)

authenticated()

85.

Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền hợp lệ

http.authorizeRequests().antMatchers("/**")._____

a)

authenticated()

b)

permitAll()

c)

hasAnyRole("ADMIN", "STAFF")

d)

hasRole("ADMIN")

86.

Trong Thymeleaf, biểu thức nào cho phép truy xuất username của người đăng nhập

a)

${#authentication.principal.getUsername()}

b)

${#authentication.getName()}

c)

${#authentication.principal.username}

d)

${#authentication.name}

87.

Trong bảo mật, CORS (Cross-Site Resource Sharing) là kỹ thuật dùng để ngăn chặn?

a)

Ngăn chặn thực hiện của script được nhập từ người sử dụng

b)

Ngăn chặn các request giả lập

c)

Ngăn chặn chia sẻ tài nguyên

d)

Ngăn chặn thực hiện khi chưa đăng nhập

88.

Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền yêu cầu phải đăng nhập với vai trò ADMIN hoặc STAFF thì mới được phép truy xuất

http.authorizeRequests().antMatchers("/**")._____

a)

authenticated()

b)

hasAnyRole("ADMIN", "STAFF")

c)

hasRole("ADMIN")

d)

permitAll()

89.

Đâu là sự thể hiện của trang web được bảo mật?

1. Trang web trước và sau khi đăng nhập có thể khác nhau

2. Không thể thực hiện một số hành vi nếu chưa đăng nhập

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 đúng

90.

Trong file cấu hình Security, bạn cần viết mã phân quyền sử dụng trong phương thức nào?

a)

configure(WebSecurity web)

b)

configure(HttpSecurity http)

c)

getPasswordEncoder()

d)

configure(AuthenticationManagerBuilder auth)

91.

Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?

1. User.password("B").withUsername("A").roles("C").build();

2. User.withUsername("A").roles("C").password("B").build();

a)

1 sai, 2 đúng

b)

1 đúng, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 sai

92.

Đâu là phương thức được khai báo trong UserDetails có thể truy xuất đến vai trò của người sử dụng?

a)

getUsername()

b)

isEnable()

c)

getAuthorities()

d)

getRole()

93.

Đâu là lệnh được sử dụng để tạo đối tượng Authentication từ UserDetails (user)?

a)

new UsernamePasswordAuthenticationToken(user, user.getAuthorities())

b)

new UsernamePasswordAuthenticationToken(user, null, user.getRoles())

c)

new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities())

d)

new UsernamePasswordAuthenticationToken(user)

94.

Đâu là khai báo đúng địa chỉ chuyển hướng sau khi đăng nhập (Authorized Redirect URL) trong google?

a)

http://localhost:8080/login

b)

http://localhost:8080/login/oauth2/code/google

c)

http://localhost:8080/login/oauth2

d)

http://localhost:8080/login/oauth2/code

95.

Đâu là lệnh tạo UserDetails hợp lệ?

a)

User.withUsername().roles().password().build();

b)

User.password().withUsername().roles().build();

c)

User.withUsername().password().roles().build();

d)

User.withUsername().password().authorities().build();

96.

UserDetailsService khai báo bao nhiêu phương thức trừu tượng? Có thể sử dụng biểu thức Lambda để tạo đối tượng UserDetailsService được hay không?

1. 1 phương thức, hoàn toàn được

1. 1 phương thức, không thể được

a)

1 sai, 2 sai

b)

1 đúng, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 đúng

97.

UserDetailsService khai báo phương thức nào?

a)

isEnable()

b)

loadUserByUsername(String)

c)

getUsername()

d)

getAuthorities()

98.

Cách nào sau đây cung cấp UserDetailsService cho auth (AuthenticationManagerBuilder)?

1. auth.userDetailsService(new UserDetailsService() {

@Override

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

return null;

}

});

2. auth.userDetailsService( username - > {

return null;

});

a)

1 sai, 2 sai

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 đúng, 2 đúng

99.

Để đăng nhập được từ tài khoản Gmail, bạn cần thực hiện nhưng công việc nào?

a)

Đăng ký tài khoản developer của Google và khai báo đầy đủ thông tin, lấy mã ứng dụng (app id) và mã bí mật (secret code)

b)

Cấu hình đăng nhập

c)

Khai báo thư viện Oauth2 cần thiết vào pom.xml

d)

Khai báo mã ứng dụng và mã bí mật vào application.properties

100.

Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?

1. User.withUsername("A").password("B").roles("ROLE_C").build();

2. User.withUsername("A").password("B").authorities("C").build();

a)

1 đúng, 2 sai

b)

1 sai, 2 đúng

c)

1 đúng, 2 đúng

d)

1 sai, 2 sai

101.

Đâu là khai báo các thư viện cần thiết trong Spring Boot để có thể đăng nhập từ mạng xã hội?

a)

< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-oauth2-client < /artifactId > < /dependency >

b)

< dependency > < groupId > org.thymeleaf.extras < /groupId > < artifactId > thymeleaf-extras-springsecurity5 < /artifactId > < /dependency >

c)

< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-thymeleaf < /artifactId > < /dependency >

d)

< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-security < /artifactId > < /dependency >

102.

Phương thức loadUserByUsername() của UserDetailsService trả về kiểu gì?

a)

Authentication

b)

UserDetailsService

c)

User

d)

UserDetails

103.

Đâu là phương thức được khai báo trong UserDetails?

a)

getUsername()

b)

getName()

c)

getAuthorities()

d)

isEnable()

104.

Trong AngularJS, đâu là lệnh thiết lập header Authorization chung cho mọi request?

a)

$httpProvider.defaults.headers.common['Authorization'] = "Basic < token > "

b)

$httpProvider.defaults['Authorization'] = "Basic < token > "

c)

$httpProvider.defaults.headers['Authorization'] = "Basic < token > "

d)

$httpProvider.headers.common['Authorization'] = "Basic < token > "

105.

Đâu là khai báo đúng địa chỉ chuyển hướng sau khi đăng nhập (Valid Oauth Redirect URL) trong facebook?

a)

http://localhost:8080/login/oauth2

b)

http://localhost:8080/login/oauth2/code/facebook

c)

http://localhost:8080/login/oauth2/code

d)

http://localhost:8080/login

106.

spring.jpa.hibernate.ddl-auto=create

Khai báo trên có ý nghĩa gì?

a)

Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)

b)

Xóa các bảng hiện có và tạo lại dựa trên các entity class

c)

Không kiểm tra các ràng buộc trong entity với CSDL

d)

Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng

107.

spring.jpa.hibernate.ddl-auto=create-drop

Khai báo trên có ý nghĩa gì?

a)

Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)

b)

Xóa các bảng hiện có và tạo lại dựa trên các entity class

c)

Không kiểm tra các ràng buộc trong entity với CSDL

d)

Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng

108.

Đâu là các phương thức của JsonNode được sử dụng để lấy tham chiếu đến JsonNode của một key?

a)

node(key)

b)

get(key)

c)

key(key)

d)

getNode(key)

109.

Với Spring Data JPA khi khai báo với entity class là @Table(name="UserRoles") sẽ ánh xạ với bảng có tên như thế nào?

1. UserRoles

2. User_Roles

a)

1 sai, 2 đúng

b)

1 đúng, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 sai

110.

Thông số nào phụ thuộc vào hệ quản trị CSDL?

a)

spring.jpa.hibernate.dialect

b)

spring.datasource.username

c)

spring.datasource.driverClassName

d)

spring.jpa.hibernate.ddl-auto

111.

spring.jpa.hibernate.ddl-auto=validate

Khai báo trên có ý nghĩa gì?

a)

Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)

b)

Không kiểm tra các ràng buộc trong entity với CSDL

c)

Xóa các bảng hiện có và tạo lại dựa trên các entity class

d)

Kiểm tra tính hợp lệ của CSDL so với ràng buộc trong các entity class

112.

Hãy chọn biểu thức đúng?

a)

${#request.getParameter('x')}

b)

${#request.requestURI}

c)

${#servletContext.contextPath}

d)

${#request.getRequestURI()}

113.

Với Spring Data JPA khi khai báo trong entity class là @Column(name="FirstName") sẽ ánh xạ với cột có tên như thế nào?

1. FirstName

2. First_Name

a)

1 đúng, 2 sai

b)

1 sai, 2 sai

c)

1 đúng, 2 đúng

d)

1 sai, 2 đúng

114.

Đâu là các phương thức của ObjectMapper

a)

readTree()

b)

writeValue()

c)

writeValueAsString()

d)

readValue()

115.

Cho 2 phát biểu sau:

1. UserDetails là interface mô tả mô hình dữ liệu của người đăng nhập

2. User là class implements UserDetails đồng thời bổ sung các hàm tiện ích giúp bạn dễ dàng tạo ra đối tượng UserDetails

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

116.

Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?

a)

public String validate(@Validated Student sv, Errors errors){}

b)

public String validate(@Valid Student sv, Errors errors){}

c)

public String validate(BindingResult errors, @Validated Student sv){}

d)

public String validate(Errors errors, @Valid Student sv){}

117.

Giả sử x là biến trong Model có kiểu là String. Đâu là biểu thức hiển thị x có dạng viết hoa tất cả các ký tự đầu tiên của các từ?

a)

${#strings.capitalizeWords(x)}

b)

${#strings.capitalize(x)}

c)

${#strings.toUpperCaseWords(x)}

d)

${#strings.toUpperCase(x)}

118.

Để tổ chức được giao diện đa ngôn ngữ trong Spring Boot, bạn cần phải thực hiện những công việc nào?

a)

Cấu hình interceptor xử lý thay đổi ngôn ngữ

b)

Lập trình lựa chọn ngôn ngữ

c)

Cấu hình phương pháp duy trì ngôn ngữ được chọn

d)

Thiết kế giao diện Spring Form

119.

Hãy điền vào chỗ trống để hoàn thiện câu lệnh JPQL

@Query("SELECT o FROM Product o WHERE o.category.id=_____")

List < Product > findByCategoryId(@Param("id") String id);

a)

:id

b)

id

c)

categoryId

d)

:categoryId

120.

Đâu là các phương thức của ResponseEntity có mã trạng thái là 200?

a)

badRequest()

b)

noContent()

c)

notFound()

d)

ok()

121.

Page chứa kết quả truy vấn phân trang. Gọi phương thức nào để lấy tổng số trang truy vấn được?

a)

getContent()

b)

getNumber()

c)

getSize()

d)

getTotalPages()

122.

Hãy chọn lệnh đúng duyệt Map sau

Map < String, Double > map = new HashMap < > ();

a)

map.forEach((k, v) - > System.out.printf("%s=%.2f", k, v));

b)

map.forEach(k, v - > System.out.printf("%s=%.2f", k, v));

c)

map.forEach((k, v) - > {System.out.printf("%s=%.2f", k, v);});

d)

map.forEach((k, v) - > {System.out.printf("%s=%.2f", k, v)});

123.

Hãy điền vào chỗ trống hiển thị giá trị của biến x trong ServletContext

< b th:text="_____" > < /b?

a)

${application.x}

b)

${servletContext.x}

c)

${context.x}

d)

${#session.x}

124.

Biểu thức nào cho phép hiển thị giá trị của key trong tài nguyên đa ngôn ngữ?

a)

#{key}

b)

${key}

c)

@{key}

d)

~{key}

125.

Theo cú pháp của JSON, các cặp key=value phải thỏa mãn

1. Key phải là chuỗi

2. Value có thể là chuỗi

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

126.

Đâu là các phương thức được khai báo trong JpaRepository?

a)

Page < T > findAll(Pageable pageable)

b)

List < T > findAll()

c)

List < T > findAll(Sort sort)

d)

List < T > save(Iterable < ? extends T > entities)

127.

Với http là HttpSecurity, đâu là những phương thức của http.formLogin() xác định địa chỉ URL xử lý sau khi đăng nhập thành công?

a)

loginPage(url)

b)

loginProcessingUrl(url)

c)

defaultSuccessUrl(url, always)

d)

failureUrl(url)

128.

Với oauth là OAuth2AuthenticationToken, đâu là phương thức để lấy email của tài khoản?

a)

oauth.getPrincipal().getAttribute("email")

b)

oauth.getAttribute("email")

c)

oauth.getPrincipal("email")

d)

oauth.getEmail()

129.

Đâu là các key được sử dụng để khai báo thông tin đã đăng ký với google developer trong application.properties?

a)

spring.security.oauth2.client.registration.google.client-id= < app-id >

b)

spring.security.oauth2.client.registration.google.client-secret= < secret-code >

c)

spring.security.oauth2.client.registration.facebook.client-id= < app-id >

d)

spring.security.oauth2.client.registration.facebook.client-secret= < secret-code >

130.

Đâu là các annotation được sử dụng để ánh xạ các hoạt động của REST API với các phương thức của RestController?

a)

@GetMapping

b)

@PostMapping

c)

@PutMapping

d)

@DeleteMapping

131.

Điền vào chỗ trống để bóc lấy dữ liệu trả về từ REST API trong AngularJS?

$http.get(url).then(response = > {

var data = _____;

})

a)

response

b)

response.data

c)

response.json

d)

response.object

132.

Đâu là annotation được sử dụng để ánh xạ các hoạt động của REST API với các phương thức của RestController

a)

@GetMapping

b)

@ResponseBody

c)

@RequestBody

d)

@RestController

133.

Đâu là biểu được sử dụng để truy xuất các fragment từ các template khác?

a)

#{}

b)

${}

c)

~{}

d)

*{}

134.

Cho 2 phát biểu về vị trí của đối số tích lũy lỗi:

1. Đối số BindingResult hoặc Errors bắt buộc phải đặt ngay sau bean được kiểm lỗi

2. Đối số BindingResult hoặc Errors không bắt buộc phải đặt ngay sau bean được kiểm lỗi

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

135.

Đâu là phương thức trung gian trong Stream API?

a)

peek()

b)

collect()

c)

reduce()

d)

sum()

136.

Chọn các đoạn mã lệnh đúng

a)

new Thread(new Runnable() { @Override public void run() {} }).start();

b)

new Thread(() - > {}).start();

c)

ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) {} };

d)

ActionListener listener = e - > {};

137.

Cho 2 phát biểu sau:

1. UserDetailsService là interface mô tả mô hình dữ liệu của người đăng nhập

2. UserDetails là interface cung cấp phương thức giúp tải dữ liệu người sử dụng theo tên đăng nhập để xác thực

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

138.

Với conn là đối tượng HttpURLConnection, hãy điền vào chỗ trống tên các phương thức để thực hiện việc đọc dữ liệu trả về từ REST API?

int responseCode = conn._____;

if (responseCode == 200) {

return mapper.readTree(conn._____);

}

a)

getResponseCode()/getInputStream()

b)

setResponseCode()/getInputStream()

c)

getResponseCode()/setInputStream()

d)

setResponseCode()/setInputStream()

139.

Đâu là annotation hợp lệ để phân quyền sử dụng cho các phương thức trong controller

a)

@PreAuthorize(“isAuthenticated()”)

b)

@PreAuthorize(“hasAnyRole('ADMIN', 'USER')”)

c)

@PreAuthorize(“hasRole('ADMIN')”)

d)

@PreAuthorize(“authenticated()”)

140.

Trong Authentication phương thức nào cho phép lấy List < GrantedAuthority > để từ đó có thể kiểm tra vai trò?

a)

getName()

b)

getPrincipal()

c)

getAuthorities()

d)

getDetails()

141.

Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?

1. User.withUsername("A").password("B").roles("C").build();

2. User.withUsername("A").password("B").authorities("C").build();

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

142.

Trong Thymeleaf, biểu thức nào cho phép truy xuất danh sách authority?

a)

${#authentication.authorities}

b)

${#authentication.getAuthorities()}

c)

${#request.userPrincipal.authorities}

d)

${#request.userPrincipal.getAuthorities()}

143.

Đâu là khai báo fragment hợp lệ?

a)

< div th:fragment="myfrag" > … < /div >

b)

< div th:fragment="myfrag(x, y)" > … < /div >

c)

< div th:fragment="myfrag x, y" > … < /div >

d)

< div th:fragment="myfrag(x)" > … < /div >

144.

Hãy điền vào chỗ trống để thay thế thẻ sau đây bằng nội dung của menu.html

< nav th:replace="_____" > < /nav >

a)

~{/menu.html}

b)

${/menu.html}

c)

@{/menu.html}

d)

#{/menu.html}

145.

Hãy điền mã đúng vào chỗ trống

List < Integer > list = Arrays.asList(1, 9, 4, 7, 5, 2);

list.forEach(_____);

a)

n - > System.out.println(n)

b)

(n) - > System.out.println(n);

c)

n - > {System.out.println(n)}

d)

(n) - > {System.out.println(n);}

146.

Hãy điền tên thực thể còn thiếu vào ô trống vào ô trống

@Query("SELECT o FROM ___ o")

List < Product > findByX();

a)

Product

b)

Category

c)

Order

d)

Account

147.

Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?

1. User.withUsername("A").password("B").roles("C").build();

2. User.withUsername("A").password("B").authorities("ROLE_C").build();

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai

148.

Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền yêu cầu phải đăng nhập với vai trò ADMIN thì mới được phép truy xuất

http.authorizeRequests().antMatchers("/**")._____

a)

authenticated()

b)

permitAll()

c)

hasRole("ADMIN")

d)

hasAnyRole("ADMIN", "STAFF")

149.

Đâu là các toán tử so sánh trong Thymeleaf?

a)

==

b)

eq

c)

!=

d)

ne

150.

Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS để thêm mới dữ liệu.

$http._____(url, data).then(response = > {}).catch(error = > {}))

a)

put

b)

post

c)

delete

d)

get

151.

Mục đích của web service là gì?

1. Xây dựng các operation trên nền internet chỉ để phục vụ cho các ứng dụng web

2. Xây dựng các operation trên nền internet để phục vụ cho mọi thể loại ứng dụng

a)

1 đúng, 2 đúng

b)

1 đúng, 2 sai

c)

1 sai, 2 đúng

d)

1 sai, 2 sai