Ответ
Аннотация @JvmOverloads генерирует перегруженные версии функции с параметрами по умолчанию для совместимости с Java. В Kotlin можно задать значения по умолчанию, но Java их не поддерживает.
Пример:
@JvmOverloads
fun greet(name: String, greeting: String = "Hello") {
println("$greeting, $name!")
}
В Java можно вызвать так:
greet("Alice"); // Hello, Alice!
greet("Bob", "Hi"); // Hi, Bob!
Без аннотации пришлось бы явно передавать все параметры.