1. Visão geral da linguagem Java
1.1 Visão geral do Java
-
É uma linguagem de programação de alto nível lançada pela (Stanford University Network Company) em 1995
SUN
.Stanford University Network
-
É uma
面向Internet
linguagem de programação. Java foi inicialmente atraente porque os programas Java podiam ser executados em um navegador da Web. Esses programas Java são chamados de miniaplicativos Java (Applets) e são incorporados ao código HTML. -
Com o rápido desenvolvimento da Internet e a maturidade contínua da tecnologia Java na web, ela se tornou a linguagem de desenvolvimento preferida para aplicações web.
1.2 Uma breve história da linguagem Java
Estágio inicial:
Em 1991, uma equipe de engenheiros da Sun queria projetar uma linguagem que pudesse ser usada no controle e na comunicação de eletrodomésticos. Como esses dispositivos têm capacidade de processamento e memória limitadas e diferentes fabricantes escolhem diferentes unidades centrais de processamento (CPUs), a chave para essa linguagem é: 代码短小、紧凑且与平台无关
.
A equipe Gosling assumiu a liderança na criação desta linguagem e batizou-a de "Oak". Mais tarde, como a demanda do mercado por eletrodomésticos inteligentes não era tão alta quanto o esperado, a Sun desistiu do plano.
Com o desenvolvimento da Internet na década de 1990, a Sun descobriu as perspectivas de uso da linguagem na Internet, então transformou o Oak e o lançou oficialmente sob o nome Java em maio de 1995.
estágio de desenvolvimento:
Versão de lançamento | hora de publicação | Observação |
---|---|---|
Java 1.0 | 23/01/1996 | Sun lança primeiro kit de desenvolvimento para Java |
Java 1.1 | 1997.02.19 | A conferência JavaOne foi realizada, criando a maior conferência desse tipo no mundo na época. |
Java 1.2 | 08/12/1998 | Java é dividido em: J2SE (Standard Edition), J2EE (Enterprise Edition), J2ME (Small Edition) |
Java 1.3 | 2000.05.08 | |
Java1.4 | 2004.02.06 | |
Java 5.0 | 30/09/2004 | ①O número da versão é atualizado diretamente de 1.4 para 5.0; ②A plataforma é renomeada como JavaSE, JavaEE e JavaME |
Java 6.0 | 2006.12.11 | 20.04.2009 Oracle anunciou a aquisição da SUN |
20.04.2009 | A Oracle adquiriu a SUN, o preço da transação 74亿 foi em dólares americanos. |
|
Java 7.0 | 2011.07.02 | |
Java 8.0 | 18/03/2014 | Esta versão é a maior mudança desde o Java 5.0. É uma versão de suporte de longo prazo (LTS) |
Java 9.0 | 2017.09.22 | ① A partir desta versão, ela será atualizada a cada seis meses ; ② Java 9.0 não suportará mais sistemas Windows de 32 bits. |
Java 10.0 | 21/03/2018 | |
Java 11.0 | 2018.09.25 | O pacote de instalação do JDK cancela o pacote de instalação independente do JRE e é uma versão de suporte de longo prazo (LTS) |
Java 12.0 | 19/03/2019 | |
... | ... | |
Java17.0 | 2021.09 | É lançado o Java 17.0, número de versão também conhecido como 21.9, que é uma versão de suporte de longo prazo. |
... | ... | |
Java19.0 | 2022.09 | Java 19.0 é lançado, o número da versão também é chamado de 22.9. |
... | ... |
Suplemento: Pai de Java-James Gosling
Sr. James Gosling é mundialmente famoso como o "Pai da Tecnologia Java". Ele é o fundador da tecnologia Java, projetou pessoalmente a linguagem Java e desenvolveu o compilador Java e a máquina virtual Java, tornando Java a linguagem de desenvolvimento mais popular do mundo.
James Gosling ingressou na Sun em 1984 e continuou a servir a Sun até cerca de 2010, quando a Sun foi adquirida pela Oracle e ingressou na Oracle como diretor de tecnologia do grupo de software cliente; ele renunciou à Oracle em abril de 2010.
1.3 Plataforma de sistema de tecnologia Java
- Java SE (Java Standard Edition) Edição Padrão
- Suporta a plataforma Java para aplicativos em nível de desktop (como aplicativos no Windows), ou seja
定位个人计算机的应用开发
, . - Incluindo interfaces de interface de usuário AWT e Swing, funções de rede e internacionalização, recursos de processamento de imagem, suporte de entrada e saída, etc.
- Esta versão era anteriormente conhecida como J2SE
- Suporta a plataforma Java para aplicativos em nível de desktop (como aplicativos no Windows), ou seja
- Java EE (Java Enterprise Edition) Edição Empresarial
- Um conjunto de soluções fornecidas para o desenvolvimento de aplicações em um ambiente corporativo, ou seja
定位在服务器端的Web应用开发
, . - JavaEE é uma extensão do JavaSE que adiciona bibliotecas de classes para desenvolvimento de servidores. Por exemplo: Servlet pode estender as funções do servidor e lidar com solicitações de clientes através do modelo solicitação-resposta; JSP é uma tecnologia que pode incorporar código de programa Java em uma página web.
- versão anteriormente conhecida como J2EE
- Um conjunto de soluções fornecidas para o desenvolvimento de aplicações em um ambiente corporativo, ou seja
- Java ME (Java Micro Edition) versão pequena
- Uma plataforma que suporta programas Java executados em terminais móveis (telefones celulares, decodificadores), ou seja
定位在消费性电子产品的应用开发
. - JavaME é uma extensão do JavaSE, que agiliza a biblioteca de classes principal do JavaSE e também fornece suas próprias classes de extensão. Adicionadas bibliotecas de classes adequadas para microdispositivos: javax.microedition.io.*, etc.
- Esta versão era anteriormente conhecida como J2ME
- Uma plataforma que suporta programas Java executados em terminais móveis (telefones celulares, decodificadores), ou seja
Nota: o desenvolvimento Android não é equivalente ao desenvolvimento Java ME.
2. Configuração do ambiente de desenvolvimento Java
2.1 O que são JDK e JRE
- JDK (Java Development Kit): É um kit de ferramentas de desenvolvimento de programas Java que contém
JRE
ferramentas usadas por desenvolvedores. - JRE (Java Runtime Environment): É o ambiente de tempo de execução dos programas Java, incluindo
JVM
e o que é necessário para o tempo de execução核心类库
.
A seguir está a plataforma Java 8.0:
2.2 Seleção de versão JDK
- Festa Ba Ye : Mantenha a posição do Java. Embora o Java já tenha entrado na década de 20, ainda é a posição principal de alguns ambientes de desenvolvimento.
- Partido Revolucionário : Adapte-se para aceitar a nova versão estável. Trazendo aos desenvolvedores uma experiência mais conveniente e eficiente. Por exemplo:
G1收集器
: O algoritmo GC mais popular. O coletor G1 no Java 11 e superior é o GC padrão, mas não está no Java 8.框架反推着开发人员使用更高的版本
. Antes do lançamento oficial do Java 17, o framework de desenvolvimento Java Spring anunciou pela primeira vez em seu blog oficial que o Spring Framework 6 e o Spring Boot 3 planejam atingir uma linha de base de alta qualidade de disponibilidade geral no quarto trimestre de 2022. Isso significa que o springboot3.0 precisa ser baseado em java17 e spring6.0. Se você escolher o springboot3.0 mais recente como arquitetura de uma empresa, ele deverá ser padrão com jdk17.
2.3 Download do JDK
- URL de download (site oficial da Oracle): www.oracle.com
- Etapas de download: conforme mostrado na imagem, selecione Desenvolvedores na parte inferior do site oficial
(1) Na seção de classificação técnica no meio da página Desenvolvedores, selecione Java
e clique para entrar, conforme mostrado na figura:
(2) O que é mostrado aqui é a versão mais recente do Java, como Java20. Role para baixo até a coluna Java SE. Clique Download Oracle JDK
e selecione uma versão específica para baixar.
(3) Após selecionar o botão Baixar Oracle JDK, entre na interface Baixar Java. Selecione a versão correspondente e clique no link de download para fazer o download.
(4) Se desejar instalar a versão Java 8, você pode continuar rolando para baixo até o seguinte local na página atual:
(5) Selecione Aceitar Contrato de Licença e clique em Baixar.
(6) Baixe após registrar-se ou fazer login:
(7) Se precisar instalar outras versões históricas, você pode escolher Java archive
:
Em seguida, escolha fazer o download.
2.4 Instalação do JDK
- Notas de instalação
- Instalação infalível, basta dar o próximo passo.
- Recomendação: O caminho de instalação não deve conter símbolos especiais, como caracteres chineses ou espaços.
- Veja a versão JDK17 como exemplo.
- etapas de instalação:
(1) Clique duas vezes jdk-17_windows-x64_bin.exe
no arquivo e clique em Avançar, conforme mostrado na figura:
(2) Modifique o caminho de instalação e clique em Alterar, conforme mostrado na figura:
(3) Modifique o caminho de instalação D:\develop_tools\jdk\jdk-17.0.2\
e clique em Avançar, conforme mostrado na figura:
(4) Após alguns segundos, a instalação está concluída, conforme mostrado na figura:
2.5 Configure a variável de ambiente do caminho
Por que configurar o caminho?
- A variável de ambiente path é o caminho que o sistema operacional de janela pesquisa ao executar um comando.
- Espera-se que ao utilizar
javac.exe
outras ferramentas na linha de comando, o diretório onde a ferramenta está localizada possa ser encontrado em qualquer diretório.
Plano de configuração JDK8: configure JAVA_HOME+path (recomendado)
- etapa:
(1) Abra o computador na área de trabalho, encontre-o à esquerda após entrar 计算机
, clique com o mouse 右键
e selecione 属性
, conforme mostrado na figura:
(2) Selecione 高级系统设置
, conforme mostrado na figura:
(3) 高级
Clique na aba 环境变量
, conforme mostrado na figura:
(4) Em 系统变量
, clique 新建
para criar uma nova variável de ambiente, conforme mostrado na figura:
(5) Insira o nome da variável JAVA_HOME
, insira o valor da variável D:\develop_tools\jdk\jdk1.8.0_271
e clique em 确定
, conforme mostrado na figura:
(6) Selecione Path
a variável de ambiente, 双击
ou 点击编辑
, conforme mostrado na figura:
(7) Digite na frente da variável value %JAVA_HOME%\bin
. como mostra a imagem:
Nota: É altamente recomendável declará
%JAVA_HOME%\bin
-lo na frente de todas as variáveis na variável de ambiente path !
(8) Após a conclusão da configuração da variável de ambiente, reiniciejavac
a linha de comando do DOS, digite o comando ou java
ou em qualquer diretório java -version
e a operação será bem-sucedida.
Configure o classpath, que é usado para especificar o caminho para reconhecimento do arquivo de classe. Na verdade, não é necessário.
O resumo é o seguinte:
Solução de configuração JDK17: configuração automática
Depois de instalar o JDK17, devemos configurar a variável de ambiente path da mesma forma que o JDK8. No entanto, descobrimos que após instalar o JDK17 e antes de configurar as variáveis de ambiente, execute o comando CMD:
Funcionou! E é a versão 17.0.2. Porque o JDK17 configura automaticamente variáveis de ambiente após a instalação. do seguinte modo:
É recomendado aqui definir o caminho de instalação do JDK17 JAVA_HOME
e %JAVA_HOME%\bin
movê-lo para o primeiro lugar.
3. Documentação da API Java
-
API (Application Programming Interface, interface de programação de aplicativos) é a interface de programação básica fornecida por Java.
-
A linguagem Java fornece um grande número de classes básicas, portanto a Oracle também fornece documentação correspondente para essas classes básicas para informar aos desenvolvedores como usar essas classes e os métodos contidos nessas classes. A introdução de classes na maioria dos livros Java deve ser completada com referência a ela. É um recurso que os programadores consultam frequentemente.
-
A documentação da API Java é o manual de instruções do JDK e a documentação de ajuda. Semelhante a um dicionário.
-
Baixe a documentação da API:
- Assista online: Visão geral (Java SE 17 e JDK 17)
- Download off-line: Documentação do Java Development Kit 17
4. Mecanismo central Java: JVM
4.1 Vantagens e desvantagens da linguagem Java
4.1.1 Vantagens
-
Plataforma cruzada: esta é a principal vantagem do Java. Java foi originalmente projetado com grande ênfase na portabilidade e na funcionalidade de plataforma cruzada. Por exemplo: o int do Java é sempre de 32 bits. Ao contrário do C++, que pode ser 16 ou 32, ele pode mudar de acordo com as regulamentações do fabricante do compilador.
- Os aplicativos escritos na linguagem Java podem ser executados em diferentes plataformas de sistema. "
Write once , Run Anywhere
". - Princípio: Basta instalar uma Java Virtual Machine (JVM, Java Virtual Machine) no sistema operacional que precisa executar aplicativos Java. A JVM é responsável por executar programas Java no sistema.
- Os aplicativos escritos na linguagem Java podem ser executados em diferentes plataformas de sistema. "
-
Orientado a objetos: Orientado a objetos é uma tecnologia de programação muito
适合大型软件的设计和开发
. A programação orientada a objetos oferece suporte a recursos como encapsulamento, herança e polimorfismo, permitindo que os programas atendam melhor aos高内聚
padrões低耦合
. -
Robustez: absorve as vantagens da linguagem C/C++, mas remove as partes que afetam a robustez do programa (como ponteiros, aplicação e liberação de memória, etc.) e fornece um gerenciamento de memória e mecanismo de acesso relativamente seguro.
-
Alta segurança: Java é adequado para ambientes de rede/distribuídos e precisa fornecer um mecanismo de segurança para evitar ataques de código malicioso. Por exemplo:
安全防范机制
(carregador de classes ClassLoader), diferentes namespaces podem ser alocados para evitar a substituição de classes locais com o mesmo nome e inspeção de código de bytes. -
Simplicidade: Java é sintaxe C++
简化版
, também podemos chamar Java "C++--
". Por exemplo: arquivos de cabeçalho, aritmética de ponteiros, estruturas, uniões, sobrecarga de operadores, classes base virtuais, etc. -
alta performance:
-
Em seu estágio inicial de desenvolvimento, Java sempre foi criticado por "
性能低
"; objetivamente falando, a eficiência operacional das linguagens de alto nível é sempre inferior à das linguagens de baixo nível, e isso é inevitável. O desenvolvimento da própria linguagem Java foi aprimorado através da otimização de máquinas virtuais几十倍运行效率
. Por exemplo, a tecnologia de compilação just-in-time JIT (JUST IN TIME) melhora a eficiência operacional. -
Java低性能的短腿,已经被完全解决了
. Em termos de desenvolvimento da indústria, também vimos que muitas aplicações C++ foram transferidas para o desenvolvimento Java, e muitos programadores C++ se transformaram em programadores Java.
-
4.1.2 Desvantagens
语法过于复杂、严谨
, existem muitas restrições para os programadores e é mais difícil começar do que python, php, etc. Mas, uma vez aprendido, os empregos estarão em alta demanda e薪资待遇节节攀升
.- Geralmente é adequado para desenvolvimento de sites em grande escala.
整个架构会比较重
Para empresas iniciantes, o custo do pessoal de desenvolvimento e manutenção é relativamente alto (ou seja, altos salários). A escolha de usar a linguagem Java para desenvolver sites ou sistemas de aplicativos requer uma certa quantia de solidez financeira. 并非适用于所有领域
. Por exemplo, Objective C e Swift têm uma posição insubstituível em dispositivos iOS. O processamento no navegador é quase inteiramente controlado por JavaScript. Os programas do Windows geralmente são escritos em C++ ou C#. Java tem vantagens na programação do lado do servidor e em aplicativos clientes de plataforma cruzada.
4.2 Descrição da função JVM
JVM ( máquina J
disponível , máquina virtual Java): É um computador virtual e o ambiente de execução de programas Java V
. M
A JVM possui um conjunto de instruções e utiliza diferentes áreas de armazenamento, responsáveis por executar instruções e gerenciar dados, memória e registradores.
4.2.1 Função 1: Perceber a natureza multiplataforma dos programas Java
O código Java que escrevemos é executado na JVM . É precisamente por causa da JVM que os programas Java são multiplataforma.
Comparação antes e depois de usar JVM:
4.2.2 Função 2: Gerenciamento automático de memória (alocação de memória, reciclagem de memória)
- Durante o processo de execução do programa Java, todas as operações relacionadas a cálculos
数据的分配
,存储
etc. são concluídas pela JVM. - Java elimina a responsabilidade do programador de recuperar espaço de memória não utilizado. Fornece um thread de nível de sistema para rastrear a alocação de espaço de armazenamento.Quando o espaço de memória atinge o limite correspondente, ele verifica e libera o espaço de memória que pode ser liberado.
- A reciclagem automática do GC melhora a eficiência de utilização do espaço de memória e também melhora a eficiência dos programadores, o que é
减少了
causado em grande parte pela falha na liberação de espaço内存泄漏
.
Mesmo que
GC
haja uma função de reciclagem automática, os programas Java ainda terão problemas de estouro de memória e vazamento de memória!