Java
Que classes de configuração de container podes mencionar?
Isso é suficiente para segurança de thread se na classe houver dois campos com um invariável (um estritamente menor que o outro), cada um protegido por AtomicInteger?
Como garantir uma transação distribuída por vários serviços?
Tem experiência no uso de filas nos seus projetos?
Podes dar um exemplo de uso de um bloco estático no código?
Deve-se dividir as tabelas em partes (sharding) para aumentar a velocidade de execução das consultas?
Quais são as vantagens e desvantagens de usar Protocol Buffer para serialização de dados?
Características do uso de @Transactional no Spring. Níveis de isolamento de transações.
Conte-nos como foi organizado o processo de desenvolvimento no seu emprego anterior, desde a necessidade de negócio até ao lançamento.
Como é que o suporte a transações é implementado usando a anotação @Transactional no Spring Framework?
Já trabalhou com a integração do Spring Data e Hibernate nos seus projetos?
Quando e como são chamadas as funções estáticas: a partir de um objeto ou de uma classe?
Tem experiência com o método parallel na API Stream para processamento paralelo de dados?
Como é que a área de visibilidade do objeto Bean é determinada nas condições padrão por defeito?
Pode explicar o mecanismo de ação da anotação @SpringBootTest nos testes do Spring Boot?
Quais são as abordagens para lidar com uma integração instável que pode não responder de um minuto para o outro?
Qual é a diferença de desempenho entre usar tipos de dados primitivos e suas caixas de objetos?
Compare o desempenho dos seguintes trechos de código que copiam elementos de um array de Integer para um array de int e vice-versa, incluindo o caso em que novos objetos Integer são criados a partir de valores int: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Analise e explique as diferenças de desempenho e comportamento entre essas abordagens.
Você utilizou o componente ExecutorService em seus projetos para gerenciar threads?
Como é que a gestão de exceções é realizada na execução de fluxos Stream em Java?