Java
Fala-me sobre POO — o que é e para que serve?
Como funciona o WAL (Write-Ahead Log) durante a escrita?
Já teve que escrever seus próprios iniciadores para Spring Boot? Fale sobre anotações condicionais.
Onde estará localizado o campo primitivo do objeto, no heap ou na pilha?
Conte a hierarquia básica de exceções em Java. O que são exceções verificadas e não verificadas?
Como estavam estruturados os seus processos de desenvolvimento no seu último emprego? Como chegavam as tarefas?
Como evitar cobranças duplas ao nível do microserviço e Kafka quando o cliente clica duas vezes em 'Retirar fundos'?
Fale sobre o produto em que trabalhou na Magnit.
Quais problemas de gravação de valores ocorrem no Redis Cluster?
class StackTask { public static void main(String[] args) { a(15); } public static void a(long item) { b(item); } public static void b(long item) { c(item); } public static void c(long item) { d(item); } public static void d(long item) { System.out.println(item); } }
[nome] perguntou: Como automatizar a eliminação de dados com mais de 3 meses?
Sabes como se escrevem os starters para Spring? Escreveste tu mesmo?
Qual TTL escolher para o cache de tarifas, se as tarifas mudam raramente?
O que é usado para observabilidade? Existem traces?
Como faria uma migração complexa (adicionar uma coluna obrigatória numa tabela com 300 milhões de registos) usando Liquibase?
import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class badCounter { public static Map<String, Integer> mapOfBadNames = new HashMap<>(); protected void doProcessing(String filePath) throws IOException { try { FileInputStream fis = new FileInputStream(filePath); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); while((br.readLine())!=null){ processWords(br.readLine()); } br.close(); fis.close(); } catch (IOException | NullPointerException ex) { System.out.println(ex.getMessage()); } } private void processWords(String line) { Arrays.stream(line.split(" ")) .map(String::trim) .forEach(word -> { if(mapOfBadNames.containsKey(word)){ mapOfBadNames.put(word, mapOfBadNames.get(word)+1); } else{ mapOfBadNames.put(word, 1); } }); } public void writeResultToFile(String path) throws IOException { try { PrintWriter out = new PrintWriter(path); out.println("word,frequency"); for(Map.Entry<String, Integer> entry : mapOfBadNames.entrySet()){ out.println(entry.getKey() + "," + entry.getValue()); } out.close(); } catch (NullPointerException | IOException ex) { throw new RuntimeException("Error writing to file", ex); } } public boolean isEverythingFine() { return true; } public static void main(String[] args) { badCounter bcn = new badCounter(); try { bcn.doProcessing("bad_input.txt"); bcn.writeResultToFile("result.csv"); bcn.doProcessing("bad_input1.txt"); bcn.writeResultToFile("result1.csv"); } catch (IOException ex) { System.out.println("Something went wrong"); } } }
Já teve alguma experiência de desacordo com uma decisão técnica ou arquitetônica da equipa? Como agiu?
Já ouviu falar do Transactional Outbox? Para que serve, que problema resolve?
Qual foi a razão para procurar um novo emprego?
Conte-me mais sobre o serviço baseado em Quartz e Redis: como funcionava, como escalava