linguagem
Kotlin
Kotlin em entrevista destaca o que ele conserta de Java: nulabilidade no tipo (`String` vs `String?`) e o custo de `!!`, coroutines para assincronia estruturada, `data class` com `equals`/`hashCode`/`copy` de graça, e funções de extensão para estender tipos sem herança.
Tópicos por senioridade
Perguntas mais cobradas
ver todas →- Fácil
Null safety no sistema de tipos do Kotlin
Tipo nulável é explícito (`String?`) e o compilador força tratar antes de usar (`?.`, `?:`, smart cast). `!!` descarta essa garantia e relança NPE — é o antipadrão.
- Difícil
Coroutines e concorrência estruturada
Coroutines: funções suspensíveis que dão código sequencial pra async, mais baratas que threads. Concorrência estruturada: filhas vivem dentro de um scope e são canceladas com ele — sem trabalho órfão.
- Médio
O que uma `data class` gera de graça
Gera equals/hashCode/toString/componentN/copy a partir das props do construtor primário. Props no corpo ficam de fora; `copy` é raso; use `val` imutável se for chave de mapa.
- Médio
`sealed class`/`sealed interface` e `when` exaustivo
Subclasses num conjunto fechado conhecido em compile time → `when` exaustivo sem `else`, e variante nova não tratada vira erro. Equivalente da união discriminada do TS pra modelar estado com N formas.
- Difícil
Extension functions: o que são e o que NÃO são
`fun Tipo.metodo()` deixa chamar como método sem herdar/editar a classe. Mas é função estática açucarada: resolução pelo tipo DECLARADO (não polimórfica), sem acesso a privados, e um método real de mesma assinatura a cobre.
- Médio
`let`, `run`, `with`, `apply`, `also` — qual usar
`let` (it, retorna o bloco): transformar / rodar se não-nulo. `apply` (this, retorna o objeto): configurar. `also` (it, retorna o objeto): efeito colateral numa cadeia (log, validar). Não aninhe até virar sopa.