22 câu hỏi phỏng vấn Groovy hàng đầu & Câu trả lời

Anonim

tải PDF

1) Giải thích Groovy là gì?

Groovy là một ngôn ngữ lập trình hướng đối tượng cho JVM (Máy ảo Java). Nó được sử dụng để kết hợp các mô-đun Java, để viết ứng dụng Java và để mở rộng ứng dụng Java hiện có.

2) Tại sao sử dụng Groovy?

  • Đối với các lập trình viên Java, nó cung cấp cú pháp quen thuộc
  • Nó có một kho thư viện Java phong phú
  • Nó dễ dàng tích hợp với cơ sở hạ tầng hiện có của bạn như Thùng chứa Servlet, Máy chủ ứng dụng, Tải cơ sở dữ liệu với trình điều khiển JDBC,
  • Hướng đối tượng hoàn toàn
  • Nó sở hữu một đoạn mã có thể tái sử dụng và có thể chuyển nhượng
  • Các nhà khai thác có thể bị quá tải
  • Khai báo theo nghĩa đen cho bản đồ, mảng, phạm vi và biểu thức chính quy
  • Nó có điều hướng đối tượng hiệu quả

3) Hạn chế của Groovy là gì?

  • Groovy có thể chậm hơn
  • Groovy có thể cần nhiều bộ nhớ
  • Thời gian khởi động Groovy yêu cầu cải thiện
  • Nó yêu cầu kiến ​​thức Java
  • Đôi khi phải sử dụng để thích Cú pháp mới, các dấu đóng, nhập mặc định,
  • Tài liệu mỏng

4) Giải thích cách Scripts được chạy trong Groovy?

Groovy hỗ trợ tập lệnh đơn giản; nó không yêu cầu khai báo lớp. Ở phía trước tập lệnh, việc nhập được hỗ trợ giống như cách nó có thể ở phía trước một lớp. Trong Groovy, bạn phải sử dụng từ def để khai báo một hàm bên ngoài một lớp.

5) Đề cập đến một số tính năng mà Groovy JDK cung cấp là gì?

Groovy đã thêm các phương pháp mới so với phiên bản cũ như

  • Các loại mảng và luồng đối tượng khác nhau với các phương thức hướng Groovy mới

như Object.every (), Object.each (), v.v. và cũng bao gồm các tính năng mới như "String BufferedReader.getText ()" và "InputStream.eachLine (Closure)".

6) Đề cập đến vai trò của việc đóng cửa và người nghe trong Groovy là gì?

Groovy không hỗ trợ các lớp bên trong ẩn danh; có thể xác định nội tuyến người nghe hành động thông qua các phương tiện đóng. Trong Groovy, đóng trình nghe được sử dụng như một ListenerAdapter nơi chỉ một phương thức quan tâm được ghi đè.

7) Giải thích cách bạn có thể thêm nội dung vào classpath khi chạy mọi thứ trong groovy hoặc groovysh?

Bạn có thể thêm mọi thứ vào biến môi trường $ CLASSPATH của mình. Một khả năng khác là xây dựng thư mục .groovy / lib trong thư mục chính của bạn và thêm bất kỳ lọ nào bạn muốn có sẵn theo mặc định.

8) Đề cập đến giấy phép cho Groovy là gì?

Groovy phụ thuộc vào thời gian chạy vào thư viện ASM cũng như Java 1.4 và bình Groovy.

9) Giải thích ExpandoMetaClass trong Groovy là gì?

ExpandoMetaClass được sử dụng để thêm các phương thức, thuộc tính, phương thức tĩnh và hàm tạo. Mở rộng không được kế thừa theo mặc định; bạn phải gọi ExpandoMetaClass.enableGlobally ().

10) Giải thích cách biểu diễn chuỗi Groovy?

Chuỗi Groovy được gọi là Gstring.

  • Nó được bao quanh bởi dấu ngoặc kép, đối với chuỗi thông thường, nó sử dụng dấu ngoặc kép
  • Nó có thể chứa Biểu thức Groovy được ghi chú trong $ {}
  • Cú pháp dấu ngoặc vuông có thể được áp dụng như charAt (i)

11) Làm thế nào bạn có thể lấy một giá trị duy nhất từ ​​cơ sở dữ liệu bằng cách sử dụng Groovy?

Để khôi phục một giá trị duy nhất từ ​​cơ sở dữ liệu, bạn có thể sử dụng lệnh

row = sql.firstRow ('select columnA, column from tableName')
println "Row: columnA = $ {row.columnA} and column = ${row.columnB}"

12) Giải thích cách bạn có thể truy vấn trong Groovy?

Hãy xem một ví dụ đơn giản về cách Groovy gọi ra truy vấn

import groovy.sql.sqlsql = Sql.newInstance ('jdbc: jtds: sqlserver://serverName/dbName-Class;domain=domainName','username','password','net.sourceforge.jtds.jdbc.driver')sql.eachRow ('select * from tableName') {print "$it.id--${it.firstName} -" }

13) Giải thích cách bạn có thể xây dựng AST (Cây cú pháp trừu tượng) trong Groovy từ chuỗi?

Bạn có thể xây dựng AST ở Groovy từ

  • Dây
  • Từ đặc điểm kỹ thuật như DSL

Một đối tượng AstBuilder cung cấp một API để xây dựng AST từ các chuỗi của Mã nguồn Groovy. Ví dụ

Liệt kê các nút = new AstBuilder (). buildFromString ("\" Xin chào \ "")

14) Giải thích làm thế nào bạn có thể bao gồm một script Groovy trong một Groovy khác?

Bạn có thể bao gồm một tập lệnh thú vị với một tập lệnh thú vị khác bằng cách sử dụng đoạn mã sau. Khi đặt đoạn mã này ở đầu tập lệnh, nó sẽ mang đến nội dung của một tệp hấp dẫn.

Đánh giá (tệp mới ("… /tools/Tools.groovy"))

15) Giải thích Groovysh là gì?

Groovysh là một ứng dụng dòng lệnh cho phép dễ dàng truy cập để đánh giá các biểu thức Groovy, xác định các lớp và chạy các thử nghiệm.

16) Giải thích nhận xét GroovyDoc?

Giống như các nhận xét nhiều dòng, các nhận xét GroovyDoc có nhiều dòng nhưng nó bắt đầu bằng dấu / ** và kết thúc bằng * /. Những nhận xét đó có liên quan đến

  • Định nghĩa kiểu (lớp, giao diện, enums, chú thích)
  • Trường và định nghĩa thuộc tính
  • Định nghĩa phương pháp

17) Giải thích các toán tử Bitwise trong Groovy là gì?

Các toán tử bitwise có thể được thực hiện trên BYTE hoặc INT và trả về và INT. Toán tử bitwise cung cấp 4 toán tử bitwise

  • &: bitwise "và"
  • I: bitwise "hoặc"
  • A: bitwise "xor"
  • ~: phủ định bit

18) Liệt kê sự khác biệt giữa Groovy và Java?

  • Tất cả các gói và lớp trong Groovy được nhập theo mặc định, bạn không cần phải sử dụng câu lệnh nhập một cách rõ ràng
  • Không giống như Java nơi các phương thức được chọn tại thời điểm biên dịch, các phương thức trong Groovy được chọn dựa trên các loại đối số trong thời gian chạy
  • Trong khối {…} được dành riêng cho các bao đóng, có nghĩa là bạn không thể tạo các ký tự mảng với cú pháp này
  • Giống như trong Java, việc bỏ qua một công cụ sửa đổi trên một trường không dẫn đến một trường riêng của gói
  • Quản lý tài nguyên tự động hoặc khối ARM từ java 7 không được hỗ trợ trong Groovy
  • Các lambdas trong Java 8 ít nhiều được coi là các lớp ẩn danh bên trong và Groovy không hỗ trợ cú pháp đó

19) Giải thích vai trò của phụ thuộc Nho trong Groovy?

Grape là một người quản lý phụ thuộc JAR được đưa vào Groovy. Nó cho phép bạn nhanh chóng thêm các phụ thuộc vào kho lưu trữ maven vào đường dẫn classpath của bạn, làm cho việc tạo script dễ dàng hơn. Cách sử dụng đơn giản nhất là thêm chú thích vào tập lệnh của bạn.

20) Giải thích lớp JsonSlurper chỉ ra điều gì?

JsonSlurper là một lớp phân tích văn bản JSON hoặc nội dung trình đọc thành các cấu trúc dữ liệu Groovy (đối tượng) như danh sách, bản đồ và các kiểu nguyên thủy như double, Boolean, string và Integer.

21) Phương thức "propertyMissing (String)" được gọi khi nào?

Phương thức "propertyMissing (String)" được gọi khi không có phương thức getter nào cho một thuộc tính nhất định có thể được phát hiện bởi thời gian chạy Groovy.

22) Đề cập đến những toán tử quan hệ nào được sử dụng trong Groovy?

Toán tử quan hệ cho phép bạn so sánh giữa các đối tượng, để kiểm tra xem hai đối tượng khác nhau hay giống nhau hoặc nếu một đối tượng nhỏ hơn, lớn hơn hoặc bằng những đối tượng khác.