Datos estáticos en Kotlin

Dime, ¿hay alguna diferencia (en términos de Java) en estos ejemplos:

object DefaultValues {
    val FILES_TO_DOWNLOAD = 100
}

y

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

Sin clase o contenedor de objeto:

const val DEFAULT_FILES_TO_DOWNLOAD = 100

y

val DEFAULT_FILES_TO_DOWNLOAD = 100

¿Cuál es la verdadera forma de definir ?:

public static final int FILES_TO_DOWNLOAD = 100

Respuestas a la pregunta(1)

Su respuesta a la pregunta