Sobes.tech

Java

Explique o conceito de consistência de dados em sistemas de armazenamento de informação.

Junior — Middle
202

Quais são as principais garantias de entrega de mensagens fornecidas pelo Kafka de acordo com o seu modelo teórico?

Middle — Middle+
202

O que influencia o tempo ao adicionar um elemento ao final de uma lista ligada?

Junior — Middle
200

Que dificuldades e limitações potenciais podem surgir ao usar Kafka em sistemas?

Middle — Middle+
199

Que problemas podem surgir ao modificar uma coleção durante a sua iteração?

Junior — Middle
199

Em que casos e sob quais condições podem ocorrer perdas de dados no Kafka?

199

Quais componentes a arquitetura do Kafka inclui e como eles interagem entre si?

Junior — Middle
198

Qual é a complexidade temporal de inserir um elemento no meio de uma lista ligada, se você já tiver um array preenchido?

Junior — Middle
197

Pode explicar o que é o Gson e como ele funciona com os campos durante a serialização e desserialização?

Junior — Middle
197

Em qual servidor ou plataforma foi realizado o deployment da aplicação?

Junior — Middle
197

É possível reutilizar fluxos de dados (Streams) já fechados em Java?

Junior — Middle
197

Qual é o nível de dificuldade ao aumentar o tamanho do ArrayList ao adicionar cada 1000 elementos?

Junior — Middle
197

Implementar a transferência de fundos entre duas contas. Tenha em atenção que esta é uma solução de produção Parâmetros de entrada: @param fromAccountId identificador único do utilizador que transfere fundos @param toAccountId identificador único do utilizador para quem os fundos são transferidos @param amount quantidade da transferência. Número positivo public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("A quantidade deve ser > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("A conta não pode ser a mesma"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Conta não encontrada")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Conta não encontrada")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo insuficiente"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }

196

Como medir a eficácia do trabalho com dados e a que ela influencia?

Junior — Middle
196

O que o motiva a considerar a possibilidade de mudar de projeto atual?

Junior — Middle
195

Consegues nomear dois tipos de métodos utilizados na API Stream?

Junior — Middle
195
/11