Como passar em uma entrevista de Kotlin: principais perguntas de A a Z

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

Como passar em uma entrevista de Kotlin: principais perguntas de A a Z



Uma entrevista de Kotlin não é apenas uma verificação de sintaxe. Os empregadores querem ver se você entende a filosofia da linguagem: segurança contra nulos, estilo funcional, expressões idiomáticas e particularidades de compilação. Neste artigo, analisamos as perguntas mais frequentes — do básico ao avançado. Prepare-se para a entrevista 100%.



1. Perguntas básicas: sintaxe e null safety



A entrevista geralmente começa com o básico. Aqui está o que você precisa saber obrigatoriamente.



Quais tipos de dados existem em Kotlin e como eles diferem do Java?

Kotlin é uma linguagem estaticamente tipada. Todos os tipos são objetos, não há primitivos (mas o compilador pode otimizar). Tipos principais: Int, Double, Boolean, String, Array. Diferente do Java, em Kotlin não há new para criar objetos, e tipos nullable são explicitamente marcados com ?.



O que é null safety e como Kotlin a implementa?

Null safety é uma proteção embutida contra NullPointerException. Os tipos são divididos em nullable (String?) e non-null (String). Para acesso seguro, use os operadores:

val name: String? = nullprintln(name?.length)       // chamada segura -> nullprintln(name?.length ?: 0)  // operador elvis -> 0println(name!!.length)      // forçamento -> NPE, se null


Qual a diferença entre val e var?

  • val — referência imutável (somente leitura). Análogo a final em Java.
  • var — referência mutável.

Importante: val não garante a imutabilidade do objeto em si, apenas da referência.



2. Construções avançadas: classes, funções e sealed



Aqui, testam a capacidade de escrever código conciso e seguro.



O que é data class e quais métodos ela gera?

data class é uma classe destinada ao armazenamento de dados. O compilador gera automaticamente: equals(), hashCode(), toString(), copy() e componentN().

data class User(val id: Int, val name: String)val user = User(1, "Alice")val copy = user.copy(name = "Bob")println(user) // User(id=1, name=Alice)


O que é sealed class e quando usá-las?

sealed class é uma hierarquia de classes restrita. Todas as subclasses devem ser declaradas no mesmo arquivo. Ideal para representar estados (por exemplo, resultado de carregamento).

sealed class Result {    data class Success(val data: String) : Result()    data class Error(val message: String) : Result()    object Loading : Result()}

fun handle(result: Result) = when (result) { is Result.Success -> println(result.data) is Result.Error -> println(result.message) Result.Loading -> println("Loading...")}

Vantagem: o when deve ser exaustivo — o compilador verificará todas as opções.



O que são extension functions e como funcionam?

Extension functions permitem adicionar um novo método a uma classe existente sem herança. Na verdade, são funções estáticas que recebem uma instância da classe como primeiro argumento.

fun String.isEmail(): Boolean = this.contains("@")println("test@mail.ru".isEmail()) // true


3. Programação funcional: lambdas, coleções, escopos



Kotlin usa ativamente a abordagem funcional. Esteja preparado para perguntas sobre trabalho com coleções e funções de escopo.



Quais funções de escopo você conhece? Quais as diferenças?

Principais: let, run, with, apply, also. A principal diferença é o contexto (this ou it) e o valor de retorno.

Blogs

Book Recommendations

FunçãoContexto