Resumo dos pontos de conhecimento do Java (parte básica do Java)

O objetivo de escrever este artigo é resumir um pouco da minha experiência no uso de java por tantos anos, principalmente relacionada a alguns conhecimentos básicos de java, então também espero compartilhar com os programadores Java que estão apenas começando e planejam desenvolver isso em Java. Potenciais novatos na indústria, espero poder dar a vocês alguma experiência para que possam aprender e usar Java melhor.
  O conteúdo principal desta introdução está relacionado ao J2SE. Além disso, apresentarei alguns conteúdos relacionados ao J2EE e vários conteúdos relacionados ao framework em Java no futuro.
  Depois de tantos anos de desenvolvimento em Java, e combinado com alguma experiência nas entrevistas usuais de desenvolvedores Java, acho que o principal sobre J2SE é dominar o seguinte conteúdo.

1. Relacionado a JVM (incluindo os recursos de cada versão)

  Para aqueles que são novos em Java, o conhecimento de JVM não precisa necessariamente ser profundamente compreendido.Alguma compreensão simples dos conceitos disso é suficiente. Mas para um desenvolvedor sênior com mais de 3 anos de experiência em Java, é quase inaceitável não conhecer a JVM.
  JVM é a base da operação java, é difícil acreditar que pessoas que não sabem nada sobre JVM podem entender completamente a linguagem java. Quando eu estava entrevistando desenvolvedores com mais de 3 anos de experiência em Java, JVM era quase uma pergunta obrigatória. Obviamente, JVM não é a única pergunta da entrevista que determina a habilidade técnica, mas pode provar o nível de habilidade de desenvolvimento de java.
  Na categoria JVM, acho que o conhecimento que precisa ser dominado é:
modelo de memória JVM e estrutura
princípio GC,
ajuste de desempenho : Thread Dump, análise de estrutura de memória, estrutura de
bytecode binário de classe, sistema de carregador de classe, processo de carregamento de classe, criação de instância processo
Processo de execução de método
Novos recursos fornecidos pelas principais versões do Java (precisa ser entendido brevemente)

2. Operação Java (básico essencial)

  Este pode parecer muito simples, quem sabe como executar programas java? Mas, em muitos casos, simplesmente executamos programas java por meio do IDE, como o IDE subjacente executa os programas java? Muitas pessoas não entendem.
  Este ponto de conhecimento é o que o desenvolvedor Java mais básico precisa dominar. Para que os iniciantes aprendam java, o primeiro é definitivamente para ensiná-lo a executar programas Java na linha de comando, mas uma vez que muitas pessoas aprenderam java e usaram o IDE, Eu esqueci disso. Por que é importante saber isso? Depois de conhecer o método de inicialização mais puro do java, você pode analisar quantos diretórios são iniciados no momento em que há um problema de inicialização, qual é o nome da execução, quais são os parâmetros, se faltam, etc. Isso o ajudará a resolver os problemas estranhos e possíveis relacionados ao meio ambiente em seu desenvolvimento real.
  O conhecimento que precisa ser dominado aqui são:
javac para compilar arquivos java em arquivos de classe
, o uso de comandos java, como iniciar
programas java com pacote na linha de comando, os vários caminhos envolvidos (classpath, java.library.path, java executando o diretório inicial, etc.)

3. Tipo de dados

  Não há muito a dizer sobre isso, nada mais é do que o domínio de tipos básicos e tipos de objetos em Java. Você pode aprender mais sobre como converter automaticamente o JDK, incluindo boxing e unboxing, etc., mas também para evitar o julgamento de igualdade de tipo após boxing.
  Principais pontos de conhecimento:
tipos básicos: int, long, float, double, boolean ,. . .
Tipos de objeto correspondentes: conversão de Integer e outros tipos em tipos básicos, boxing e unboxing
Tipos de objeto: igual,
características do tipo String de código de hash

4. Objetos e instâncias, criação de objetos

  Nesse sentido, os desenvolvedores precisam entender o conceito de classe e instância e a diferença entre elas, que é a base dos recursos orientados a objetos do Java. Os principais pontos de conhecimento são:
O conceito de Classe e Instância
O processo de criação de Instância:
  1. Sem herança: alocar espaço de memória, inicializar variáveis, chamar o construtor
  2. Herança: manipular ações estáticas, alocar espaço de memória, definir variáveis ​​como valores iniciais, da classe base -> subclasse, manipular a inicialização na definição, executar
  pontos de método de construção a observar:
    propriedades estáticas, etc. são realizadas a partir da classe base -> Inicialização da subclasse
    características relacionadas ao método de construção livre de parâmetros padrão  

5. Controle de acesso

  Essa também é a base do recurso de encapsulamento Java. O que você precisa dominar é:
public protected default private Modificação de classe, método e campo

6. Controle de Processo

  Os fundamentos do controle de fluxo Java, embora algumas sintaxes não sejam necessariamente muito comuns, você precisa entendê-los e usá-los quando apropriado.
Precisa dominar:
if, switch, loop, for, while e outra sintaxe de controle de fluxo

7. O conceito de programação orientada a objetos

  Este é um conceito central de java, que precisa ser dominado por qualquer desenvolvedor java. Muitos recursos ou pontos de conhecimento em Java estão relacionados ao conceito de programação Java orientada a objetos. No meu entendimento, um bom desenvolvedor não só precisa entender essas características (pontos de conhecimento) em si, mas também precisa saber como esses objetos são refletidos no conceito de programação orientada a objetos em java, que é mais propício para o desenvolvedor dominar o java Esta linguagem de desenvolvimento e outras linguagens de programação orientadas a objetos. Aqui está apenas uma breve lista. Os principais pontos de conhecimento incluem:
três características orientadas a objetos: encapsulamento, herança, polimorfismo; seus respectivos conceitos de definição, quais características são refletidas e seus respectivos cenários de uso
envio múltiplo estático, envio único dinâmico O conceito de
sobrecarga e o uso de
Herança: múltiplas implementações de interfaces, herança única de classes base
Abstração, classes abstratas, interfaces
Polimorfismo: o conceito de cobertura de método e o uso de
callbacks de interface

8. Estático

  As propriedades estáticas também são frequentemente usadas no desenvolvimento diário de java.Você precisa entender o uso relacionado à palavra-chave static e usá-la em conjunto com outras palavras-chave, como se pode ser usada em conjunto com abstract, final e outras palavras-chave.
As principais coisas que você precisa dominar são:
a definição e o uso de propriedades estáticas e como inicializar quando a classe é carregada.
A definição e o uso de métodos
estáticos . A definição e o uso de classes estáticas.
A definição e o tempo de inicialização de estáticos blocos de código.

9. Pontos de conhecimento básico

  Aqui estão principalmente alguns pontos de conhecimento Java espalhados que não são classificados pelo sistema. Também é muito usado no desenvolvimento diário. Na verdade, há muito desse conteúdo, mas ele está apenas temporariamente resumido aqui:
  incluindo:
equals, hashcode, string / stringbuffer, final, finalmente, finalize

10. Estrutura de coleta

  Essa é uma parte que precisa ser mais dominada.Para o desenvolvimento Java, pode-se dizer que não há necessidade de usar o framework de coleta, isso é muito importante. Mas os pontos de conhecimento aqui não são difíceis, mas é melhor entender a implementação interna da coleção, pois isso ajudará você a escolher um framework adequado para resolver o problema em vários cenários, como uma coleção de elementos 1W, muitas vezes Executando o contém julgamento da operação, conhecendo as características ou execução interna do acervo, é fácil fazer a escolha certa.
  O conteúdo a seguir é incluído aqui (concorrência relacionada não está incluído):
sistema de quadro Coleção: Coleção básica,
o conteúdo do Mapa implementação coleção específica, List, Set, Map implementação específica, estrutura interna, métodos especiais, cenários aplicáveis, etc.
Coleção relacionada Uso de coleções, etc.

11. Quadro de exceção

  As exceções não podem ser levadas a sério no desenvolvimento de java. Geralmente, quando uma exceção é encontrada, ela é lançada diretamente ou, após uma captura aleatória, não tem grande impacto na operação geral do programa. No entanto, no projeto e desenvolvimento de nível empresarial, a qualidade do projeto e manuseio anormais está frequentemente relacionada à robustez geral do sistema. Para desenvolvedores, as exceções de um bom sistema devem ser tratadas uniformemente para evitar muita lógica de manipulação de exceções espalhada por toda parte; para o sistema, as exceções devem ser controláveis ​​e fáceis de operar e manter. Depois que certas exceções ocorrem, deve haver uma maneira de lidar com ele e saber como lidar com ele. Portanto, embora a estrutura de exceção seja muito simples, o tratamento de exceções é muito importante para todo o desenvolvimento de aplicativos corporativos. Para lidar bem com as exceções, você precisa entender o sistema de exceções em Java.
  Não há muitos pontos de conhecimento que precisam ser dominados nesta parte, principalmente:
sistema anormal:
Throwable
Exception
RuntimeException
Error
RuntimeException e diferença geral de Exception, métodos de processamento específicos, etc.

12. Java IO

  O IO não é apenas tão simples quanto a leitura e gravação de arquivos em java, mas também inclui todas as operações de entrada e saída, como leitura e gravação de rede de soquete. Por exemplo, ler o conteúdo de Post em uma solicitação HTTP padrão também é um processo de saída, etc ...
  Para IO, Java não apenas fornece APIs básicas de entrada e saída, mas também fornece alguns apis, como Reader e Writer, que simplificam Também é importante em certos desenvolvimentos (projetos que envolvem um grande número de operações IO) e geralmente envolvido no desenvolvimento diário (logs, leitura e gravação de arquivos temporários, etc.).
  Os principais pontos de conhecimento aqui são:
Sistema IO básico: Incluindo InputStream, OutputStream, Reader / Writer, leitura de arquivo, leitura de vários fluxos e outros
conceitos NIO, uso específico e cenários de uso

13. Concorrência multi-thread

  O multithreading é geralmente considerado uma parte difícil em Java. Multi-threading pode efetivamente aumentar a taxa de utilização da CPU e melhorar a eficiência geral do sistema, especialmente no caso de um grande número de operações IO bloqueadas; mas também é uma faca de dois gumes, se não for bem usado, o sistema irá não apenas melhora ligeiramente, ou Não há nenhuma melhoria, e também causará problemas como depuração entre vários threads.
  Há muito conteúdo em multi-threading, apenas explique brevemente os pontos de conhecimento que precisam ser dominados no uso inicial de multi-threading em Java e terei a oportunidade de apresentar separadamente os cenários de uso de alguns recursos avançados.
Implementação e inicialização
de multithreading. A diferença entre callable e runable é
syncrhoized, reentrantLock e suas características e comparação.
Thread pool
futuro Forma assíncrona de obter resultados de execução. Bloqueio de
pacote simultâneo ..

14. Rede

  Java também fornece APIs que podem manipular diretamente os protocolos TCP e UDP. Quando o desempenho da rede precisa ser enfatizado, TCP / UDP pode ser usado diretamente para comunicação. Você pode ver o uso dessas APIs relacionadas no código-fonte do Tomcat, etc. No entanto, em geral, o TCP raramente é usado diretamente e estruturas como MINA e Netty são usadas para processamento.Por não haver muito desenvolvimento envolvido nesta área, ela não será listada em detalhes.

15. Processamento de data e hora

  Para quase todos os aplicativos, o processamento de hora e data não pode ser ignorado, mas o uso da API relacionado ao tempo antes do JDK8 não é amigável. Naquela época, prazos como Joda podiam ser escolhidos. Após o lançamento do JDK8, a nova API de tempo basicamente incorpora as vantagens de outros frameworks e já pode ser usada diretamente.
  Para desenvolvedores Java, é necessário usar a API com proficiência para lidar com a hora e a data.
  Os pontos de conhecimento específicos não são mais listados e um artigo especial será escrito posteriormente para resumir o uso da API de data e hora no JDK8.

16. Análise XML / análise JSON

  Na verdade, esses dois conteúdos não estão em J2SE, mas no desenvolvimento diário, a interação com outros programas e arquivos de configuração são cada vez mais indissociáveis ​​da análise desses dois formatos.
  No entanto, para um desenvolvedor, ser capaz de compreender alguns dos princípios e métodos de análise XML / JSON específica o ajudará a escolher melhor a maneira certa para você em cada cenário específico para tornar seu programa mais eficiente e robusto.
  XML: É necessário entender os princípios básicos da análise DOM e análise SAX e seus respectivos cenários aplicáveis
  JSON: É necessário compreender o uso de algumas estruturas JSON comuns, como Jackson, FastJson, Gson, etc. .

17. Uso do Maven

  Maven não é o conteúdo de Java, mas Maven é revolucionário e traz grande comodidade para o desenvolvimento em Java. Desde a introdução e gerenciamento de dependências, a atualização e liberação do processo de desenvolvimento, e até mesmo a atualização da versão, o uso do maven pode simplificar muito a complexidade do processo de desenvolvimento, economizando muito tempo. Pode-se dizer que o maven se tornou o padrão para desenvolvedores Java. Portanto, considero o maven como um ponto de conhecimento básico para desenvolvedores Java. Vou colocar um pouco de minha experiência e habilidades no uso de maven no futuro, então não entrarei em detalhes aqui.

18. Genérico

  Este é um novo conceito introduzido no início do JDK5. Na verdade, é um açúcar sintático. Será um pouco conveniente ao escrever código Java. Para aplicativos gerais ou desenvolvimento de negócios, você só precisa usá-lo de forma simples, não necessariamente usando operações como como definição de genéricos. No entanto, alguns componentes públicos básicos serão usados ​​no desenvolvimento. Você pode ler esta parte com atenção quando precisar. Em geral, você pode simplesmente usá-la.

19. Etiqueta

  Ele também foi introduzido após o jdk5. Spring é uma excelente estrutura. XML foi usado como o arquivo de configuração padrão desde o início. No entanto, após o Spring 3, especialmente após o surgimento do spring-boot, o uso de anotações para simplificar os arquivos de configuração xml tornou-se cada vez mais popular.Para os desenvolvedores, pode economizar muito tempo para configuração xml. Mas a desvantagem é que as anotações estão espalhadas em várias classes, ao contrário do xml, que pode ter uma compreensão e gerenciamento global de todas as configurações, portanto não há como substituir completamente todo o xml. Para desenvolvedores em geral, use apenas as anotações. Os desenvolvedores de algumas organizações públicas podem precisar entender a definição e a implementação das anotações. Você pode examiná-las cuidadosamente quando precisar.

20.RMI

  RemoteMethodInvocation, a interface de invocação remota exclusiva da linguagem Java, é relativamente simples e conveniente de usar. No entanto, se você precisar usar vários idiomas, será necessário usar outros métodos, como serviço da web, para dar suporte. De um modo geral, o programa não precisa usar RMI, mas pode ser usado em circunstâncias específicas.Eu usei RMI para controlar o início e a parada remotos do programa em um projeto.

21.JNI

  A Java Native Interface pode permitir que o método de interface nativa seja chamado em Java, que geralmente é usado para chamar código C / C ++. Deve-se observar que o problema do caminho para carregar o arquivo so / dll em java não é complicado para chamar a própria interface, mas geralmente leva muito tempo para carregar a biblioteca de interface local necessária.

  O texto acima é apenas uma breve introdução a alguns de meus pontos de vista e introduções a esses conhecimentos básicos e pontos técnicos de Java. Esses conteúdos são derivados de alguns dos resumos do meu uso de Java ao longo dos anos. Espero dar a vocês aqueles que são novo em Java ou planeja desenvolver a partir de Java. As pessoas têm alguma experiência, na esperança de aprender e usar o java com mais eficiência, evitando desvios e desperdiçando tempo precioso. Ainda existem algumas áreas onde o conteúdo não é perfeito, que serão adicionadas em artigos futuros. Devido à capacidade pessoal limitada, é claro que haverá alguns erros e omissões, por favor, corrija-me, discutam juntos e trabalhem juntos para melhorar este artigo, espero que ele realmente possa ajudar as pessoas necessitadas.



Autor: Java Head
link: http: //www.jianshu.com/p/a33bf3d024bb
Fonte: Os livros de Jane
são de propriedade do autor. Para reimpressões comerciais, entre em contato com o autor para autorização. Para reimpressões não comerciais, indique a fonte.

Acho que você gosta

Origin blog.csdn.net/a447332241/article/details/77089551
Recomendado
Clasificación