Como passar na entrevista de Kotlin: principais perguntas e respostas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Como passar em uma entrevista de Kotlin: análise das principais perguntas com exemplos



Kotlin solidificou seu nicho como uma linguagem moderna para desenvolvimento Android e backend na JVM. Se você está se preparando para uma entrevista técnica, é importante não apenas conhecer a sintaxe, mas também entender a filosofia da linguagem: segurança, concisão e compatibilidade com Java. Neste artigo, analisaremos as principais perguntas mais frequentes em entrevistas de Kotlin, com exemplos reais de código.



1. Null Safety: como Kotlin resolve o problema do null



Um dos principais trunfos do Kotlin é a proteção embutida contra NullPointerException. Na entrevista, certamente perguntarão sobre tipos nullable e non-null.



Pergunta: Qual a diferença entre String? e String? Como trabalhar com nullable de forma segura?



Resposta: O tipo String garante que a variável nunca será null. String? permite null. Para acesso seguro, são usados os operadores ?., ?: (Elvis) e !! (apenas se tiver 100% de certeza).



fun main() {    val name: String? = null        // Chamada segura    println(name?.length) // null        // Valor padrão    val length = name?.length ?: 0    println(length) // 0        // Extração forçada (risco de NPE)    // println(name!!.length) // Erro!}


Pergunta adicional: O que são lateinit e lazy?

  • lateinit — para variáveis que são inicializadas depois (apenas var).
  • lazy — para inicialização delegada (apenas val).


class User {    lateinit var email: String        val config by lazy { loadConfig() }        fun init() {        email = "test@example.com"    }}


2. Coroutines: assincronicidade sem dor



Coroutines são itens obrigatórios para o Kotlin moderno. Os entrevistadores verificam a compreensão de suspend, launch, async e dispatchers.



Pergunta: Qual a diferença entre launch e async?



Resposta: launch inicia uma coroutine e retorna um Job (sem resultado). async retorna um Deferred, do qual é possível obter o resultado através de await().



suspend fun fetchData(): String {    delay(1000)    return "Dados carregados"}

fun main() = runBlocking { // launch: sem resultado val job = launch { println("Tarefa 1 concluída") } // async: com resultado val deferred = async { fetchData() } println(deferred.await()) // "Dados carregados" job.join()}


Pergunta: Quais dispatchers (Dispatchers) você conhece?

  • Dispatchers.Main — para UI (Android).
  • Dispatchers.IO — para entrada/saída, rede.
  • Dispatchers.Default — para tarefas intensivas de CPU.
  • Dispatchers.Unconfined — não vinculado a uma thread específica (usado raramente).


3. Extension functions e Sealed class: expandindo possibilidades



Kotlin permite adicionar novas funções a classes existentes sem herança. Isso é frequentemente perguntado no contexto de arquitetura.



Pergunta: O que são extension functions? Dê um exemplo.



Resposta: São funções que são declaradas fora da classe, mas são chamadas como seus métodos. Elas não modificam a classe, apenas adicionam açúcar sintático.



// Extension function para Stringfun String.isEmail(): Boolean {    return this.contains("@") && this.contains(".")}

fun main() { val email = "user@example.com" println(email. ```

Blogs

Book Recommendations