Dados estáticos no Kotlin

Por favor, diga-me, há alguma diferença (em termos de Java) nestes exemplos:

object DefaultValues {
    val FILES_TO_DOWNLOAD = 100
}

e

class DefaultValues {
    companion object {
        val FILES_TO_DOWNLOAD = 100
    }
}

Sem classe ou invólucro de objeto:

const val DEFAULT_FILES_TO_DOWNLOAD = 100

e

val DEFAULT_FILES_TO_DOWNLOAD = 100

Qual é a verdadeira maneira de definir ?:

public static final int FILES_TO_DOWNLOAD = 100

questionAnswers(1)

yourAnswerToTheQuestion