22 лучших вопроса на собеседовании по Groovy & Ответы

Anonim

Скачать PDF

1) Объясните, что такое Groovy?

Groovy - это объектно-ориентированный язык программирования для JVM (виртуальных машин Java). Он используется для объединения модулей Java, для написания приложения Java и расширения существующего приложения Java.

2) Зачем использовать Groovy?

  • Для программистов на Java это знакомый синтаксис
  • Имеет богатый набор библиотек Java.
  • Он легко интегрируется с вашей существующей инфраструктурой, такой как контейнеры сервлетов, серверы приложений, нагрузки баз данных с драйверами JDBC,
  • Полностью объектно-ориентированный
  • Он имеет многоразовые и назначаемые фрагменты кода.
  • Операторы могут быть перегружены
  • Литеральное объявление для карт, массивов, диапазонов и регулярных выражений
  • Имеет эффективную навигацию по объектам

3) В чем заключается ограничение Groovy?

  • Groovy может быть медленнее
  • Groovy может потребоваться много памяти
  • Время запуска Groovy требует улучшения
  • Требуются знания Java
  • Иногда нужно привыкнуть к новому синтаксису, замыканиям, типу по умолчанию,
  • Документация тонкая

4) Объясните, как скрипты запускаются в Groovy?

Groovy поддерживает простой сценарий; он не требует объявления класса. В начале скрипта импорт поддерживается так же, как и в начале класса. В Groovy вы должны использовать слово def для объявления функции вне класса.

5) Укажите, какие функции предлагает Groovy JDK?

Groovy добавил новые методы по сравнению со старой версией, например

  • Различные типы массивов и объектные потоки с новыми методами, ориентированными на Groovy.

как Object.every (), Object.each () и т. д., а также включают новые функции, такие как String BufferedReader.getText () и InputStream.eachLine (Closure).

6) Упомяните, какова роль закрытия и слушателей в Groovy?

Groovy не поддерживает анонимные внутренние классы; с помощью замыканий можно определить встроенных слушателей действий. В Groovy закрытие слушателей используется как ListenerAdapter, где переопределяется только один интересующий метод.

7) Объясните, как можно добавлять что-то в путь к классам при запуске в groovy или groovysh?

Вы можете добавить что-нибудь в свою переменную окружения $ CLASSPATH. Другой вариант - создать каталог .groovy / lib в вашем домашнем каталоге и добавить любые файлы jar-файлов, которые должны быть доступны по умолчанию.

8) Укажите, какая лицензия у Groovy?

Во время выполнения Groovy зависит от библиотеки ASM, а также от Java 1.4 и Groovy jar.

9) Объясните, что такое ExpandoMetaClass в Groovy?

ExpandoMetaClass используется для добавления методов, свойств, статических методов и конструкторов. Expandoclass по умолчанию не наследуется; вам нужно вызвать ExpandoMetaClass.enableGlobally ().

10) Объясните, как выражается строка Groovy?

Groovy строка называется Gstring.

  • Он заключен в двойные кавычки, для обычных строк используются одинарные кавычки.
  • Он может содержать выражения Groovy, указанные в $ {}
  • Синтаксис квадратных скобок может применяться как charAt (i)

11) Как можно получить одно значение из базы данных с помощью Groovy?

Чтобы восстановить одно значение из базы данных, вы можете использовать команду

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

12) Объясните, как можно делать запросы в Groovy?

Давайте посмотрим на простой пример того, как Groovy вызывает запрос

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) Объясните, как можно построить AST (абстрактные синтаксические деревья) в Groovy из строки?

Вы можете собрать AST в Groovy из

  • Струны
  • Код
  • Из спецификации типа DSL

Объект AstBuilder предоставляет API для построения AST из строк исходного кода Groovy. Например

Список узлов = new AstBuilder (). buildFromString ("\" Привет \ "")

14) Объясните, как можно включить отличный сценарий в другой отличный сценарий?

Вы можете включить Groovy-скрипт в другой Groovy, используя следующий код. Если поместить этот код в верхнюю часть скрипта, он перенесет содержимое файла groovy.

Оценить (новый файл ("… /tools/Tools.groovy"))

15) Объясните, что такое Groovysh?

Groovysh - это приложение командной строки, которое обеспечивает легкий доступ для оценки выражений Groovy, определения классов и проведения экспериментов.

16) Объясните комментарий GroovyDoc?

Как и многострочные комментарии, комментарии GroovyDoc являются многострочными, но начинаются с / ** и заканчиваются * /. Эти комментарии связаны с

  • Определения типов (классы, интерфейсы, перечисления, аннотации)
  • Определения полей и свойств
  • Определения методов

17) Объясните, что такое побитовые операторы в Groovy?

Поразрядные операторы могут быть реализованы с байтами или INT, а также return и INT. Побитовые операторы предлагают 4 побитовых оператора

  • &: побитовое "и"
  • I: побитовое "или"
  • A: побитовое "xor"
  • ~: побитовое отрицание

18) Перечислите различия между Groovy и Java?

  • Все пакеты и классы в Groovy импортируются по умолчанию, вам не нужно явно использовать оператор импорта.
  • В отличие от Java, где методы выбираются во время компиляции, методы в Groovy выбираются на основе типов аргументов во время выполнения.
  • Блок In {…} зарезервирован для замыканий, что означает, что вы не можете создавать литералы массива с этим синтаксисом.
  • Как и в Java, отсутствие модификатора в поле не приводит к созданию частного поля пакета.
  • Автоматическое управление ресурсами или блок ARM из java 7 не поддерживаются в Groovy
  • Лямбды Java 8 более или менее считаются анонимными внутренними классами, и Groovy не поддерживает этот синтаксис.

19) Объясните роль зависимости Grape в Groovy?

Grape - это менеджер зависимостей JAR, включенный в Groovy. Он позволяет быстро добавлять зависимости репозитория maven в путь к классам, что упрощает создание сценариев. Самый простой способ - добавить аннотацию к вашему скрипту.

20) Объясните, что обозначает класс JsonSlurper?

JsonSlurper - это класс, который анализирует текст JSON или содержимое читателя в структуры данных Groovy (объекты), такие как списки, карты и примитивные типы, такие как double, Boolean, string и Integer.

21) Когда вызывается метод propertyMissing (String)?

Метод propertyMissing (String) вызывается, когда среда выполнения Groovy не может обнаружить метод получения для данного свойства.

22) Упомяните, для каких операторов отношения используются в Groovy?

Операторы отношения позволяют сравнивать объекты, проверять, являются ли эти два объекта разными или одинаковыми, или один из них меньше, больше или равен другим.