Articles

15 Técnicas Core Java Perguntas da Entrevista de Respostas para Desenvolvedores Experientes

Quando a experiência de um Programador Java cresce nos anos e.g. quando ele vai do iniciante anos ( 2 a 4) para mais de experiência ou de classificação de cargos de nível ( 5 a 7 anos), do Núcleo Java Perguntas da Entrevista também mudam um pouco. É claro que os conceitos básicos como estrutura de dados, algoritmos e programação orientada a objetos permanecem os mesmos, mas os tipos de perguntas se tornarão mais avançados e suas respostas definitivamente precisarão ser mais detalhadas e precisas. Eu frequentemente recebo consultas sobre questões centrais Java feitas a um desenvolvedor senior de 5 a 6 anos de experiência, ou, às vezes, eu estou indo para uma entrevista de desenvolvedor Java senior, que tipo de perguntas eu devo esperar. Isso às vezes me intriga, que uma vez que você se torna senior, você automaticamente começa a participar da entrevista, e você deve ter uma idéia do que esperar em entrevistas, mas ao mesmo tempo, eu posso entender que ter uma idéia de perguntas antes de ir em entrevista, ajuda a preparação. Claro, Você não vai ter uma pergunta como a que você enfrentou em entrevistas de Nível 2 a 3 anos Java, mas também depende de diferentes rodadas de entrevistas. Não tenho visto muitas mudanças nas perguntas feitas na rodada telefônica, que quase permanece a mesma. Você vai encontrar algumas questões baseadas em fatos, algumas questões de codificação e algumas questões complicadas. Por outro lado, face a face, as entrevistas tornaram-se mais detalhadas e mais complicadas, especialmente com acompanhamento desagradável.
Neste artigo, eu vou compartilhar cerca de 15 questões técnicas centrais de entrevista Java, que eu tenho visto fazer desenvolvedores seniores e experientes de 4 a 6 anos de experiência em diferentes entrevistas, principalmente em rondas telefônicas. Eu não estou postando respostas a partir de agora, mas você pode encontrar respostas para a maioria das perguntas aqui ou no Blog Javarevisited.
Se você está com pressa e ativamente procurando por um trabalho de Desenvolvedor Java, você também pode receber ajuda de alguns bons livros escritos para prepará-lo para entrevistas J2EE Java. Livros como, Programação Java Entrevista Exposto cobre todos os tópicos importantes para o core Java e Java EE entrevistas, que incluem basic Java perguntas, estrutura de dados e algoritmos, JVM e internos de GC tuning, Hibernate e Spring perguntas da entrevista, JUnit, ant o teste de unidade de perguntas, e algumas Java 8 coisas.ele também cobre o conhecimento de outras linguagens JVM como Scala, Groovy e outras plataformas como Android. A perfect companion to do well in Java interviews.
Se você quiser preparar mais no lado da codificação, então você também pode verificar a quebra da entrevista de codificação, que contém quase 150 perguntas de programação e soluções de entrevistas técnicas de grandes empresas de tecnologia como Amazon, Facebook, Google, Twitter e Microsoft.

15 questões Java centrais por 5 a 6 anos experimentado

todas estas questões foram coletadas de desenvolvedores bastante seniores, que tem pelo menos 5 anos de experiência. Eles têm visto essas perguntas em diferentes rodadas de suas principais entrevistas Java, incluindo Rondas telefônicas e cara-a-cara em diferentes empresas, principalmente em bancos de investimento como Barclays, Morgan, RBS, e outros.

What is Busy Spinning? Por que você deve usá-lo em Java?

uma das questões de multithreading interessantes para programadores Java seniores, a fiação ocupada é uma estratégia de espera, na qual uma thread apenas espera em um loop, sem liberar a CPU para ir dormir. Esta é uma estratégia de espera muito avançada e especializada utilizada na aplicação de negociação de alta frequência quando o tempo de espera entre duas mensagens é muito mínimo.ao não liberar a CPU ou suspender a thread, sua thread mantém todos os dados e instruções em cache, que podem ser perdidos se a thread foi suspensa e retomada de volta em um núcleo diferente da CPU. esta questão é bastante popular no domínio de programação de baixa latência de alta frequência, onde programadores estão tentando uma latência extremamente baixa na faixa de micro a milisegundos. Veja aqui mais de 50 perguntas avançadas de entrevista por thread para programadores experientes.

core java interview questions for senior developers

What is Read-Write Lock? O ConcurrentHashMap em Java usa o bloqueio de ReadWrite?

ReadWrite Lock é uma implementação de uma técnica de remoção de fechaduras, onde duas fechaduras separadas são usadas para ler e escrever operação. Uma vez que a operação de leitura não modifica o estado do objeto, é Seguro permitir o acesso de vários threads a um objeto compartilhado para leitura sem bloqueio, e dividindo um bloqueio no bloqueio de leitura e escrita, você pode facilmente fazer isso.
Java provides an implementation of a read-write lock in the form of the ReentrantReadWritLock class in the java.util.concorrente.pacote fechado. Isto vale a pena olhar antes de decidir escrever a sua própria implementação de bloqueio de leitura-escrita.
Also, the current implementation of java.util.ConcurrentHashMap não usa o ReadWriteLock, em vez disso, divide o mapa em vários segmentos e bloqueia-os separadamente usando diferentes bloqueios. Isto significa que, em qualquer momento, apenas uma parte do mapa de concorrência está bloqueada, em vez de todo o mapa. Veja como o ConcurrentHashMap funciona internamente em Java para obter mais detalhes. esta questão Central Java também é muito popular em entrevistas de Nível java senior e mais experiente, por exemplo, de 4 a 6 anos, onde você espera que o entrevistador entre em mais detalhes, como pedindo-lhe para fornecer uma implementação do bloqueio de leitura-escrita com diferentes políticas. Se você é um programador Java experiente, considere ler Java concurrencia na prática para ganhar mais confiança sobre multithreading e concurrencia em Java.

como fazer um objeto imutável em Java? Porque haverias de tornar um objecto imutável?

bem, a imutabilidade oferece várias vantagens, incluindo a segurança de thread, a capacidade de cache e resultar em um código de multithreading mais legível. Veja aqui para aprender a tornar objetos imutáveis. Mais uma vez, esta pergunta também pode entrar em mais detalhes e, dependendo de sua resposta, pode trazer várias outras perguntas. quando você mencionar que a primavera é imutável, esteja pronto com algumas razões sobre por que a String é imutável em Java.

que Padrões de Design você usou em seu projeto Java?

sempre espere alguns padrões de design relacionados com a questão para a entrevista Core Java da posição de desenvolvedor sénior. É uma estratégia melhor mencionar qualquer padrão de design GOF em vez de Singleton ou MVC, que quase todos os outros desenvolvedores Java usam. sua melhor aposta pode ser um padrão decorador ou talvez um padrão de injeção de dependência, que é bastante popular no Framework de Primavera. Também é bom mencionar apenas os padrões de design que você realmente usou em seu projeto e sabe que são tradeoffs.
é comum que uma vez que você menciona um padrão de design particular dizer fábrica ou fábrica abstrata, a próxima pergunta do entrevistador seria, você usou este padrão em seu projeto? Então esteja pronto com exemplos apropriados e por que você escolhe um padrão particular. Você também pode ver este artigo para questões mais avançadas de padrões de design de entrevistas Java. conhece o princípio de Design fechado aberto ou o princípio de substituição de Liskov? os padrões de Design são baseados em princípios de design orientados a objetos, que eu sentia fortemente que cada desenvolvedor orientado a objetos e o programador deveriam saber, ou, pelo menos, ter uma idéia básica do que são esses princípios e como eles ajudam você a escrever um código orientado a objetos melhor. Se você não sabe a resposta a esta pergunta, você pode educadamente dizer não, como não é esperado de você saber a resposta a cada pergunta, mas ao responder a esta pergunta, você pode tornar sua reivindicação mais forte, já que muitos desenvolvedores experientes não conseguem responder a perguntas básicas como esta. Veja Clean Code saiba mais sobre princípios de design sólidos e orientados a objetos.

que Padrão de Design você usará para proteger o seu código de uma biblioteca de terceiros que provavelmente será substituído por outro em alguns meses?

This is just one example of the scenario-based design pattern interview question. A fim de testar a experiência prática de desenvolvedores Java com mais de 5 anos de experiência, as empresas fazem este tipo de pergunta. Você pode esperar mais problemas de design no mundo real em diferentes formatos, alguns com explicação mais detalhada com contexto, ou alguns com apenas intenção em torno. uma maneira de proteger seu código de uma biblioteca de terceiros é codificar contra uma interface ao invés de implementar e, em seguida, usar injeção de dependência para fornecer uma implementação particular. Este tipo de Pergunta também é feita com bastante frequência a desenvolvedores experientes e seniores de Java com 5 a 7 anos de experiência.

Question 7) How do you prevent SQL Injection in Java Code?

esta questão é mais questionada pelos desenvolvedores J2EE e Java EE do que pelos programadores Java core, mas, ainda assim é uma boa questão verificar a habilidade JDBC e segurança dos programadores Java experientes.
você pode usar PreparedStatement para evitar injeção SQL em código Java. O uso do PreparedStatement para executar consultas SQL não só proporciona melhor desempenho, mas também protege a sua aplicação Java e J2EE do ataque de injeção SQL. em uma nota semelhante, se você estiver trabalhando mais no Java EE ou no J2EE side, então você também deve estar familiarizado com outras questões de segurança, incluindo ataque de fixação de sessão ou ataque de Scripting Cross-Site e como resolvê-las. Estes são alguns campos e perguntas onde uma boa resposta pode fazer muita diferença em sua seleção.

Question 8) Tell me about different Reference types available in Java, e.g. WeakReference, SoftReference or Phantorreference? e porque haverias de usá-los?

bem, eles são diferentes tipos de referência vindo de java.idioma.ref pacote e fornecido para ajudar coletor de lixo Java em um caso de problemas de memória baixa. Se você embrulhar um objeto com o WeakReference do que ele será elegível para o lixo coletado se houver o fortes referências. Eles podem mais tarde ser recuperados pelo coletor de lixo se JVM está ficando sem memória.
The java.util.WeakHashMap é uma implementação de mapa especial, cujas chaves são o objeto de WeakReference, então se apenas o mapa contém a referência de qualquer objeto e nenhum outro, esses objetos podem ser lixo coletado se GC precisa de memória. Veja o desempenho Java O Guia Definitivo saiba mais sobre como lidar com problemas de desempenho em Java.

core java technical interview questions and answers for experienced

Question 9) How does get method of HashMap works in Java?

Yes, this is still one of the most popular core Java questions for senior developer interviews. Você também pode esperar esta pergunta na rodada telefônica, seguida por muitas perguntas de seguimento, como discutido em meu post Como funciona o HashMap em Java.
A Resposta Curta a esta pergunta é que HashMap é baseado na estrutura de dados da tabela hash e usa o método hashCode() para calcular o código hash para encontrar a localização do balde no array subjacente e é igual() método para pesquisar o objeto no mesmo balde em caso de colisão. Veja aqui para saber mais sobre como o método get () do HashMap funciona em Java.

Questão 10) quais dois métodos o objeto chave HashMap deve implementar?esta é uma das perguntas que eu estava dizendo Em perguntas anteriores. Uma vez que o trabalho do HashMap é baseado na estrutura de dados da tabela hash, qualquer objeto que você deseja usar como uma chave para HashMap ou qualquer outra coleção baseada em hash, por exemplo Hashtable, ou ConcurrentHashMap deve implementar igual() e método hashCode ().
o hashCode() é usado para encontrar a localização do balde ou seja, o índice do array subjacente e o método equals() é usado para encontrar o objeto direito em uma lista vinculada armazenada no balde em caso de colisão. A propósito, a partir de Java 8, HashMap também começou a usar uma estrutura de dados em árvore para armazenar o objeto em caso de colisão para reduzir o pior desempenho do HashMap de O(n) para O(logN). Veja o artigo para saber mais sobre como colisões HashMap sem mãos em Java. por que um objeto usado como chave deve ser imutável?

este é outro seguimento de perguntas anteriores de entrevista core Java. É bom testar a profundidade do conhecimento técnico dos candidatos, fazendo mais e mais perguntas sobre o mesmo tema. Se você sabe sobre imutabilidade, você pode responder a esta pergunta sozinho. A resposta curta para esta pergunta é chave deve ser imutável para que o método hashCode() sempre retorne o mesmo valor.

Since the hash code returned by hashCode () method depends on the content of the object i.e. values of member variables. Se um objeto é mutável do que esses valores podem mudar e assim é o código hash. Se o mesmo objecto devolver um código hash diferente, uma vez inserido o valor no HashMap, irá acabar por procurar em diferentes locais do balde e não será capaz de recuperar o objecto. É por isso que um objeto chave deve ser imutável. Não é uma regra imposta pelo compilador, mas você deve cuidar dele como um programador experiente. Veja o artigo para perguntas de entrevistas mais avançadas da Java Collection.

Question 12) How does ConcurrentHashMap achieve its Scalability?

às vezes, esta pergunta de entrevista multi-listagem + coleção também é feita como, a diferença entre ConcurrentHashMap e Hashtable em Java. O problema com HashMap sincronizado ou Hashtable era que todo o mapa está bloqueado quando um tópico executa qualquer operação com mapa.
The java.util.A classe ConcurrentHashMap resolve este problema usando uma técnica de remoção de bloqueio, onde todo o mapa está bloqueado em diferentes segmentos e apenas um determinado segmento está bloqueado durante a operação de escrita, não o mapa inteiro. A ConcurrentHashMap também alcança sua escalabilidade, permitindo que a leitura sem bloqueio como lida é uma operação segura de thread. Veja aqui para questões mais avançadas de multi-threading e concorrência em Java.

Question 13) How do you share an object between threads? ou como passar um objeto de um fio para outro?

existem várias maneiras de fazer isso. Filas, permutadores, etc, mas bloquear o queque usando o padrão produtor-consumidor é a maneira mais fácil de passar um objeto de thread para outro.

pergunta 14) Como encontrar se o seu programa tem um impasse?

tomando dump thread usando kill-3, usando JConsole ou VisualVM), sugiro preparar esta questão principal de entrevista java em mais detalhes, como o entrevistador definitivamente gosta de ir com mais detalhes, por exemplo, eles irão pressionar com perguntas como, você realmente fez isso em seu projeto ou não?

Question 15) How do you avoid deadlock while coding?ao garantir que as fechaduras são adquiridas e liberadas de forma ordenada, veja aqui uma resposta detalhada a esta pergunta.
isso está tudo nesta lista de perguntas principais de entrevistas Java para programadores seniores e programadores experientes. Eu não incluí um monte de perguntas de outros tópicos importantes como o manuseio de exceções, ajuste de coleta de lixo e Internals JVM, que também é muito popular entre programadores Java com 5 a 6 anos de experiência, talvez eu vou incluí-los na próxima parte. a propósito, Se você não encontrar a resposta para qualquer uma destas questões centrais de Java, avise-me. Eu posso atualizar o post com uma opção mais detalhada, com base no pedido do meu leitor.
Further Learning
The Complete Java Masterclass
Java Fundamentals: A Linguagem Java
Java Relacionadas Entrevista Perguntas sobre outros temas

  • Java Perguntas para a Tela do Telefone Entrevistas (lista)
  • Thread e Simultaneidade Dúvidas de Java Entrevistas (lista)
  • Java Enum Perguntas e Respostas da Entrevista (lista)
  • Java OOP Entrevista, as Perguntas com as Respostas (lista)
  • Spring MVC Perguntas e Respostas da Entrevista (lista)
  • Hibernate Entrevista, as Perguntas com as Respostas (lista)
  • JDBC Perguntas e Respostas da Entrevista (lista)
  • Array Conceito de Perguntas da Entrevista em Java (lista)
  • RESTful Web Service Interview Questions (list)
  • Servlet and JSP Interview Questions and Answers (list)
  • Java Web Service Interview Questions and Answers (list)