Que tipos de problemas de gestão de memória podem ocorrer em aplicações e como identificá-los?
C#
Pode explicar o que se entende por 'bloqueio' no contexto da programação multithread?
Quando é que uma thread é devolvida ao pool de threads ao usar o método async num contexto síncrono?
Como são implementadas as junções de tabelas em SQL e como usá-las?
Explique por que a execução de operações assíncronas dentro de um bloqueio é inaceitável em um ambiente multithread.
Pode explicar o que é um semáforo e como ele é usado para controlar o acesso aos recursos?
Por que é importante distinguir entre tipos de dados de valor e de referência na programação?
Como é que um índice agrupado é definido e aplicado no SQL e em que se diferencia de um índice não agrupado?
Qual é a principal razão para aplicar o princípio da inversão de dependências na arquitetura de software?
Podes listar os principais tipos de junções de tabelas em SQL e explicar o seu uso?
Quais são as formas de acelerar a execução de consultas SQL para melhorar o desempenho do banco de dados?
Pode explicar o que é um índice não clusterizado em SQL e como funciona?
Pode explicar o conceito de níveis de isolamento de transações em SQL, especialmente o que é Repeatable Read?
Como são utilizados os palavras-chave ref ou out em C#, e qual é a sua diferença?
Qual é o objetivo de usar o nível de isolamento de transações Repeatable Read nos sistemas de gestão de bases de dados?
Quais mecanismos de sincronização de threads você conhece e pode usar nos seus projetos?
Pode explicar como é que a mecânica de bloqueio é implementada ao usar synchronized ou lock na programação multithread?
Quais são as abordagens existentes para melhorar a eficiência na execução de consultas SQL?
Podem as instâncias de objetos significativos estar na área de alocação dinâmica de memória?
O objeto irá mudar se o método for sobrescrito na subclasse?