Mais recente coleção de perguntas da entrevista comum Java 2020 + respostas detalhadas (9)
Continue a atualizar os materiais relacionados ao Java. Recentemente, passei 7 dias consultando as últimas notícias das entrevistas dos grandes caras, tentando coletar informações de entrevistas mais abrangentes. Se você quiser ver as primeiras coleções, pode ir à minha página inicial para encontrá-las.
Algumas das respostas foram resumidas por mim mesmo e outras foram coletadas na Internet. Não entre em pânico depois de assistir a essas entrevistas! Se você tem mais experiência, você pode compartilhar nos comentários. Se você tiver algum erro, fique à vontade para apontá-lo. Por favor, me avise, obrigado ~
十一 、 Spring Boot / Spring Cloud
83. O que é bota de mola?
Na grande família de framework Spring, muitos frameworks derivados foram produzidos, como Spring, SpringMvc framework, etc. O conteúdo principal do Spring é a inversão de controle (IOC) e injeção de dependência (DI). A chamada inversão de controle não é uma tecnologia, mas É uma ideia. Em termos de operação, refere-se à criação de <bean> no arquivo de configuração do spring. A injeção de dependência significa que o container do spring fornece recursos para um objeto da aplicação, como objetos de referência, dados constantes, etc.
SpringBoot é um framework, uma especificação de programação totalmente nova. Sua produção simplifica o uso do framework. A chamada simplificação se refere à simplificação de um grande número de arquivos de configuração pesados necessários em muitos frameworks do Spring, então SpringBoot é um framework que atende ao framework , O escopo do serviço é simplificar os arquivos de configuração.
84. Por que usar bota de mola?
-
Spring Boot torna a codificação fácil
-
Spring Boot torna a configuração simples
-
Spring Boot torna a implantação fácil
-
Spring Boot torna o monitoramento simples
-
Deficiências da primavera
85. O que é o arquivo de configuração do Spring Boot Core?
Spring Boot fornece dois arquivos de configuração comumente usados:
-
arquivo de propriedades
-
arquivo yml
86. Quais são os tipos de arquivos de configuração do Spring Boot? Qual a diferença entre eles?
Spring Boot fornece dois arquivos de configuração comumente usados, a saber, o arquivo de propriedades e o arquivo yml. Comparado com o arquivo de propriedades, o arquivo yml é mais jovem e tem muitas armadilhas. Pode-se dizer que Cheng Ye Xiao He derrotou Xiao He, yml usa espaços para determinar a relação hierárquica, para que a estrutura do arquivo de configuração seja clara, mas também destruirá a relação hierárquica devido a espaços insignificantes.
Embora eu tenha fornecido a você perguntas e análises de respostas, é melhor para você verificar as perguntas por si mesmo e, então, aprenderá mais.
87. De que maneiras a inicialização com mola pode atingir uma implantação quente?
Existem duas maneiras de implementar a implantação quente do SpringBoot:
①. 使用 com mola
Adicione o seguinte código ao projeto:
<build>
<plugins>
<plugin>
<!-- springBoot编译插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring热部署 -->
<!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Depois de adicionar, você precisa usar o comando mvn para executar:
Primeiro encontre as configurações de Editar no IDEA, e depois faça o seguinte: (clique no "+" no canto superior esquerdo, selecione maven, o painel direito aparecerá, insira o comando conforme mostrado na linha vermelha, e você pode nomear o comando ( Chamado aqui MvnSpringBootRun))
Clique em salvar e ele aparecerá na parte em execução do projeto IDEA, clique na seta verde para executar
②. Use spring-boot-devtools
Adicione dependências no arquivo pom do projeto:
<!--热部署jar-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Então: use shift + ctrl + alt + "/" (tecla de atalho no IDEA) para selecionar "Registro" e marque compiler.automake.allow.when.app.running
88. Qual é a diferença entre jpa e hibernate?
-
JPA Java Persistence API é a interface ORM padrão do Java EE 5 e parte da especificação ejb3.
-
O Hibernate, um framework ORM muito popular hoje, é uma implementação do JPA, mas sua função é um superconjunto do JPA.
-
A relação entre JPA e Hibernate pode ser simplesmente entendida como JPA é a interface padrão e Hibernate é a implementação. Então, como o Hibernate percebe esse relacionamento com o JPA. O Hibernate é implementado principalmente por meio de três componentes, hibernate-annotation, hibernate-entitymanager e hibernate-core.
-
A anotação do Hibernate é a base do suporte do Hibernate para configuração de anotação.Ela inclui a anotação JPA padrão e a anotação de função especial do próprio Hibernate.
-
O hibernate-core é a implementação central do Hibernate, que fornece todas as funções centrais do Hibernate.
-
O hibernate-entitymanager implementa o JPA padrão, que pode ser considerado um adaptador entre o hibernate-core e o JPA. Ele não fornece funções ORM diretamente, mas encapsula o hibernate-core para que o Hibernate esteja em conformidade com as especificações JPA.
89. O que é nuvem de primavera?
Literalmente, Spring Cloud é uma estrutura dedicada a sistemas distribuídos e serviços em nuvem.
Spring Cloud é um novo membro de toda a família Spring e um produto inevitável de serviços em nuvem recentes.
Spring Cloud fornece aos desenvolvedores ferramentas para construir rapidamente alguns padrões comuns em sistemas distribuídos, como:
-
Gerenciamento de configurações
-
Registro e descoberta de serviço
-
disjuntor
-
Roteamento inteligente
-
Chamada de serviço
-
Balanceamento de carga
-
Microagente
-
Ônibus de controle
-
Token único
-
Bloqueio global
-
Eleição de líder
-
Sessão distribuída
-
Status do cluster
-
Mensagens distribuídas
-
……
Usando Spring Cloud, os desenvolvedores podem implementar serviços e aplicativos desses padrões fora da caixa. Esses serviços podem ser executados em qualquer ambiente, incluindo ambientes distribuídos, bem como os próprios laptops dos desenvolvedores e várias plataformas de hospedagem.
90. Qual é a função do disjuntor de nuvem de mola?
Hystrix é usado em Spring Cloud para implementar a função do disjuntor. O disjuntor pode impedir que um aplicativo tente executar uma operação várias vezes, ou seja, é provável que falhe, permitindo que continue sem esperar pela recuperação de falha ou desperdício de ciclos de CPU, e determina o A falha é permanente. O modo de disjuntor também permite que o aplicativo detecte se a falha foi resolvida e, se o problema parecer ter sido corrigido, o aplicativo pode tentar chamar a operação.
Os disjuntores aumentam a estabilidade e a flexibilidade para fornecer estabilidade ao sistema, enquanto o sistema se recupera de uma falha e minimiza o impacto dessa falha no desempenho. Pode ajudar a rejeitar rapidamente uma operação com probabilidade de falhar, em vez de esperar que a operação atinja o tempo limite (ou não retorne) a solicitação, para manter o tempo de resposta do sistema. Se o disjuntor aumentar o tempo de cada evento de mudança de estado, essa informação pode ser usada para monitorar a saúde dos componentes do sistema protegidos pelo disjuntor ou para alertar o administrador quando o disjuntor for desarmado para estar no estado aberto.
91. Quais são os principais componentes da nuvem de primavera?
①. Descoberta de serviço - Netflix Eureka
Um serviço RESTful usado para localizar serviços de nível intermediário em execução na região AWS (região). Ele consiste em dois componentes: servidor Eureka e cliente Eureka. O servidor Eureka é usado como um servidor de registro de serviço. O cliente Eureka é um cliente Java usado para simplificar a interação com o servidor, como um balanceador de carga de pesquisa e fornecer suporte de failover para serviços. A Netflix usa outro cliente em seu ambiente de produção, que fornece balanceamento de carga ponderado com base no tráfego, utilização de recursos e status de erro.
②. Balanceamento de carga no lado do atendimento ao cliente - Netflix Ribbon
A faixa de opções, fornece principalmente algoritmos de balanceamento de carga de software do lado do cliente. O componente do cliente Ribbon fornece uma série de opções de configuração completas, como tempo limite de conexão, nova tentativa e algoritmo de nova tentativa. A faixa de opções tem componentes integrados de balanceamento de carga plugáveis e personalizáveis.
③. Disjuntor —— Netflix Hystrix
Um disjuntor pode impedir que um aplicativo tente executar uma operação várias vezes, o que provavelmente falhará, permitindo que ele continue sem esperar a recuperação de falha ou desperdiçando ciclos de CPU, e determina que a falha é permanente. O modo de disjuntor também permite que o aplicativo detecte se a falha foi resolvida. Se o problema parece ter sido corrigido, o aplicativo pode tentar chamar a operação.
④. Gateway de serviço —— Netflix Zuul
Semelhante ao nginx, função de proxy reverso, mas o netflix adicionou alguns recursos para cooperar com outros componentes.
⑤. Configuração distribuída - Spring Cloud Config
Isso ainda é estático e precisa cooperar com o Spring Cloud Bus para obter atualizações de configuração dinâmicas.
Finalmente
O conteúdo das perguntas da entrevista está aqui, haverá mais atualizações no seguimento, espero que seja útil a todos.
Para terminar, quero dizer-lhe uma coisa: trabalho há tantos anos e entrevistei algumas pessoas para outras. Seja do ponto de vista do entrevistador ou do líder, além das habilidades e experiência em entrevistar, grande tecnologia e experiência em projetos também são seus trunfos e confiança. Compartilhamento de tecnologia de núcleo de fabricantes de primeira linha
Levei muito tempo para organizar alguns materiais de aprendizagem. O que postei acima é a ponta do iceberg dos materiais. Espero poder ajudar você! Clique para aprender o código secreto juntos: csdn
Compartilharei mais artigos secos puros no seguimento e espero poder realmente ajudá-lo. Seu apoio é minha maior motivação! Bem-vindo a seguir e curtir