Anos atrás, por causa da recorrência da epidemia, fiquei um tempo em casa antes, afinal era mais de um mês! No final, eu saí no final de fevereiro e coloquei muitos currículos, entrevistei todos os dias para entrevistas. Mas, na verdade, a chamada fortuna se acumula com muito trabalho. Minha memória é relativamente boa. Eu memorizei e não foi difícil. Memorizei 1.000 perguntas . . . (Nota: vou compartilhar as 1000 perguntas no final do artigo)
Vendo que os ouro três prata quatro ainda estão rolando, pensando que o exército de entrevistas pode estar chegando em alguns dias, então eu compilei algumas entrevistas nos últimos dois dias. Hoje vou mostrar para vocês "Meituan + ByteDance + Tencent" Estes três empresas têm um, dois ou três lados, e acho que cada um pode testar por si mesmo onde conseguirá cumprir.
Primeiro olhe para Meituan
No caso da Meituan, por três lados, o conhecimento do conteúdo de design é bastante amplo, incluindo MySQL, Redis, Kafka, threads, algoritmos, +, volatile, threads, simultaneidade, padrões de design, etc ...
Um problema colateral: MySQL + Redis + Kafka + thread + algoritmo
- O MySQL sabe quais mecanismos de armazenamento e suas diferenças
- Sob quais circunstâncias o índice mysql falhará
- Cenários de otimização do mysql no projeto, resolução lenta da consulta, etc.
- Quais índices o mysql tem e qual é o modelo de índice
- Qual é a diferença entre a árvore B e a árvore B +? Por que não usar árvores vermelhas e pretas
- Como fazer a sincronização mestre-escravo mysql
- A diferença entre bloqueio otimista e bloqueio pessimista?
- log binlog
- Quais são os métodos de persistência do Redis e como escolher?
- Qual é o processo de sincronização redis mestre-escravo?
- Como o zset do redis é implementado?
- Estratégia de expiração da chave Redis
- Como o hashmap é implementado? Por que usar árvores vermelhas e pretas em vez de árvores binárias balanceadas? Por que ele se transforma em uma árvore vermelha e preta quando a lista vinculada é maior que 8 em 1.8? Por que o thread do HashMap não é seguro?
- Como implementar hashmap thread-safe?
- A diferença entre select e epoll
- A diferença entre http e https, como adicionar criptografia?
- Explicação detalhada do algoritmo de jangada
- Como Kafka escolhe o mestre?
- Como Kafka garante que a produção e o consumo estejam sincronizados?
- Como Kafka garante que nenhuma mensagem será perdida
- Como o redis garante alta disponibilidade
- Algoritmo: Corte a corda (solução gananciosa ou recursiva)
- Algoritmo: atravesse a pré-ordem e a ordem do meio e reconstrua a árvore binária
Dois lados (volátil + thread + simultaneidade + algoritmo + padrão de design)
- Auto apresentação
- Fale sobre o projeto (o projeto não tem destaques, apenas pergunte o básico)
- Qual é o papel do volátil? A implementação subjacente? Cenários em que o reordenamento é proibido? Qual é o papel do volátil no modo singleton?
- Como construir o pool de threads, seus parâmetros, estratégia de saturação?
- Qual é a diferença entre fair lock e unfair lock? Por que o fair lock é ineficiente?
- Quais são os status dos tópicos?
- Qual é a diferença entre threads, processos e corrotinas?
- Idéia de AQS do queuer síncrono e bloqueio com base na realização de AQS.
- Introdução às ferramentas de simultaneidade CountDownLatch, CyclicBarrier, Semaphore
- Vários tipos de pool de threads implementados pela classe Execuors, como retornar no final?
- Modo singleton escrito à mão
- Modelo de produtor consumidor escrito à mão
- Algoritmo: Lista reversa unicamente vinculada
- Algoritmo: dada uma string contendo apenas '(' e ')', encontre o comprimento da substring mais longa contendo parênteses válidos.
Três lados
Deste lado não perguntei nada, falei principalmente sobre a vida e os planos para os próximos 3 anos. . . . . .
O segundo é byte beating
Um lado: algoritmo + banco de dados + transação + rede
- Auto apresentação
- Introdução ao projeto (sem destaques, ainda pergunte o básico)
- O princípio e a complexidade de tempo da classificação de heap, se é estável, os piores e os piores cenários.
- Quais são os métodos da classe Object?
- Processo de resolução de DNS / navegador digite uma url, pressione enter, todo o processo da rede
- A diferença entre HTTP e HTTPS
- Como o UDP consegue uma transmissão confiável
- Apresente https, como criptografar, algoritmo de criptografia
- As vantagens e desvantagens dos índices de banco de dados e quando os índices de banco de dados falham
- O nível de isolamento da transação?
- Leituras sujas, leituras não repetíveis e leituras fantasmas do banco de dados
- Algoritmo: Recebendo água da chuva: Dados n inteiros não negativos que representam o mapa de altura de cada coluna com uma largura de 1, calcule quanta água da chuva pode ser recebida pelas colunas organizadas desta forma.
- Algoritmo: Queen N
Dois lados: Kafka + redis + algoritmo
- Quais são as características do Kafka?
- Você conhece o particionador, serializador e interceptor no Kafka? Qual é a ordem de processamento entre eles?
- Rebalanceamento do consumidor (alta disponibilidade, escalabilidade)
- Quais cenários causarão consumo de vazamento de mensagens?
- Como garantir que as mensagens não sejam consumidas novamente (idempotência)
- KafkaConsumer não é thread-safe, então, como atingir o consumo multi-threaded?
- Quantos encadeamentos são usados no cliente produtor Kafka para processamento? O que eles são?
- O fluxo de trabalho de consumidores e produtores:
- O número de partições de tópico pode ser aumentado?
- Algoritmo: a soma máxima do caminho na árvore binária
- Algoritmo: Dado o ponteiro principal da lista unida individualmente e o valor de um nó a ser excluído, defina uma função para excluir o nó.
Três lados: Redis + Spring + Dubbo + algoritmo
- Como funciona o redis Zset?
- A diferença entre sentinela e cluster e seus respectivos cenários aplicáveis
- Processo de sincronização do cluster do Redis
- Por que o redis single thread é rápido?
- cache de primeiro nível mybatis e cache de segundo nível
- Como a mola resolve dependências circulares?
- O princípio da mola AOP.
- O ciclo de vida da primavera.
- Código-fonte do processo de referência e exposição do serviço Dubbo, estratégia de balanceamento de carga e mecanismo de tolerância a falhas
- Quais problemas foram encontrados no projeto. (Desculpe, meu trabalho é adicionar, excluir, modificar e verificar, não toquei nos problemas relacionados)
- Algoritmo: espelho da árvore binária
- Algoritmo: imprimir árvore binária de cima para baixo
Última olhada na Tencent
Tencent também pediu muito desses três lados, então, por favor, pergunte a si mesmo por suas bênçãos.
um lado
- Como projetar um sistema de espigões?
- Rastreando 10 milhões de artigos por dia, como fazer design? Como coordenar em paralelo? Como 100 servidores podem ter a carga balanceada tanto quanto possível?
- Você já usou o serviço de nome de domínio curto? Você pode me dizer uma coisa?
- As características dos microsserviços, como realizar a descoberta de serviços e o balanceamento de carga
- Como solucionar problemas online? (Apoiado, nunca remou)
- Princípios de probabilidade bayesiana
- Como implementar o algoritmo round-robin ponderado de balanceamento de carga
- Se o número de usuários aumentar significativamente, como otimizar?
- Algoritmo Paxos (este algoritmo é muito difícil, não o entendi quando o aprendi)
- Quais blogs você costuma ler, quais livros você leu recentemente
Dois lados
- Auto apresentação
- Introdução ao Projeto
- 5 tipos de redis e seus princípios de implementação
- Como usar o redis Zset para implementar a fila de atraso?
- Como o redis consegue alta disponibilidade?
- penetração de cache redis, quebra de cache, avalanche de cache
- Implementação do filtro Bloom
- Como garantir a consistência de gravação dupla entre mysql e redis?
- Quais são os algoritmos de balanceamento de carga?
- Como a descoberta de serviço é alcançada?
- Como o fusível é realizado?
- Algoritmo: soma máxima de submatrizes consecutivas
- Fale sobre CAP e BASE distribuídos?
- O que é consistência forte?
- Soluções para transações distribuídas?
- TCC (tipo de dois estágios, tipo de compensação)
- Como implementar o gerador de id?
- Como julgar se um gráfico tem um anel?
- Algoritmo Hash consistente e sua aplicação
- Problema de mochila
Três lados
- Auto apresentação
- Introdução ao Projeto
- Como implementar o redis zSet?
- Mecanismo de persistência do Redis.
- Explicação do tipo Redis Hash, repetição progressiva.
- Princípio do HashMap, qual é o processo de uma operação put?
- O nginx foi configurado sozinho (este é o único que operei manualmente, este não é um back)
- Cenários de uso do nginx.
- O que é distribuído, o que é cluster e qual é a diferença?
- Em um ambiente distribuído baseado em dubbo, geralmente define o tempo limite para o provedor ou consumidor?
- Quais são as estratégias de balanceamento de carga em dubbo?
- Chamada assíncrona da interface? Como configurar? resultado em execução?
- Fale sobre a solução de cluster de consumidor em sistema baseado em dubbo?
- O mysql é um cluster ou um único nó? O número máximo de conexões, qual é a quantidade aproximada de dados na maior tabela?
- Quais são os principais modos de replicação mestre-escravo do mysql?
- índice mysql, árvore B +, por que não usar árvore vermelho-preto?
- Como dividir o banco de dados vertical e horizontalmente.
- Configurações de sessão distribuída
- IO, BIO, NIO, a diferença entre bloqueio e não bloqueio?
- Design idempotente de interface distribuída (o pagamento não pode ser deduzido repetidamente)
- Algoritmo: número de pesquisa binária e lista duplamente vinculada (isso é bobo)
- Algoritmo: a substring mais longa sem caracteres repetidos
- Algoritmo: classificação rápida manuscrita, classificação por inserção, classificação por bolha e análise da complexidade do tempo e do espaço e sua estabilidade
final
Olhando para as perguntas um-dois-três da entrevista de Perfect Group, Byte e Tencent, você acha que há muitas perguntas? Talvez tenhamos que começar o modelo de entrevista de fazer foguetes e parafusos de trabalho para nos preparar para a próxima entrevista.
No início, mencionei que memorizei 1.000 perguntas, que ainda são um pouco úteis. Eu li e descobri que a maioria das perguntas acima pode ser encontrada nas perguntas que recito. Portanto, hoje vou compartilhar com vocês a Internet. 1.000 perguntas da entrevista para engenheiros .
Nota: Não importa o que eu diga 1000 perguntas de entrevistas na Internet ou algoritmos e estruturas de dados mencionados mais tarde, mais padrões de design e notas de estudo Java, etc., podem ser livres para compartilhar com todos os nossos amigos, o trabalho de encaminhá-lo, clique no portal para receber! !
1000 perguntas da entrevista para engenheiros da Internet
E da perspectiva dos três acima, algoritmos e estruturas de dados são indispensáveis , então eu sugiro que você possa ir para o "Guia de Entrevista de Código do Programador IT Famous Enterprise Algorithms and Data Structures" por Zuo Chengyun. Optimal Solution " , existem quase 200 perguntas clássicas da entrevista de código que realmente apareceram .
Parte do tópico
Parte do tópico
O resto são como padrões de design. Recomenda-se dar uma olhada nos seguintes 4 PDFs (eu organizei o editor, clique no portal para recebê-lo !!)
Padrões de design
Mais notas de estudo da entrevista Java são as seguintes: Com relação à entrevista, subdividirei adicionalmente Java básico-intermediário-avançado entrevista + análise, notas de ajuste e assim por diante. . .
Mais notas de estudo de entrevista em Java
Se você também estiver interessado nos PDFs e nas notas de todos os estudos de entrevistas em Java mencionados acima, o editor pode compartilhá-los com você gratuitamente.
Preste atenção na forma de obtê-lo gratuitamente: basta clicar no portal ! !