Fale sobre essas coisas do JDK1.0 ao JDK20 | Equipe técnica do JD Cloud

1. Introdução

Recentemente, o grupo está realizando atividades de canto de leitura. Nosso grupo escolheu "Entendimento aprofundado da máquina virtual JVM". Acredito que este livro seja familiar para todos os programadores. Depois de muitos dias, o conhecimento do que está dentro também é confuso. No início deste período, comecei com o histórico anterior de desenvolvimento do JDK e a família de máquinas virtuais JVM. Eu os li mais ou menos antes. Desta vez, verifiquei as informações relevantes e coletei algumas anedotas que aconteceram durante a evolução de cada versão do JDK Curiosamente, o seguinte é um resumo sobre a história do desenvolvimento do JDK.

2. Recursos e anedotas de cada versão do JDK

  • Evolução da versão do JDK e características de cada versão

◦JDK 1.0 (1996):

▪Inclui linguagem Java, biblioteca de classes Java e máquina virtual Java. Suporta interface gráfica do usuário (GUI), conexão de banco de dados (JDBC) e outras funções.

"Oak" é o antecessor da linguagem Java. Como o nome "Oak" foi usado por outras empresas, em 1995, o criador do Java, Sun Corporation, decidiu mudar seu nome para "Java". Diz-se que o nome vem de uma cafeteria. Naquela época, ao projetar a linguagem Java, quando os membros da equipe fundadora foram a uma cafeteria para comprar café, descobriram que o nome da cafeteria era "Java Coffee", então decidiram usar "Java" como o novo nome.

◦JDK 1.1 (1997-2):

▪Aumento de classes internas, JavaBeans, chamada de método remoto (RMI) e outras funções.

JDK 1.2 / Java 2(1998-12):

▪Apresentação de recursos como componentes Swing, mecanismo de reflexão e proxy dinâmico, framework de coleção, gráficos Java 2D e Java 3D.

Este é o primeiro lançamento comercial real do Java SE. Esta versão apresenta recursos como o namespace Java (namespace), permitindo que os aplicativos Java sejam melhor organizados e gerenciados. Nesta fase existiam três máquinas virtuais, Classic VM, HotSpot VM e Exact VM, entre as quais nasceu o HotSpot em abril de 1999.

◦JDK 1.3 (2000-5):

▪Funções adicionadas da plataforma Java, biblioteca de classes subjacente, interface de usuário AWT e Swing aprimorada, etc.

Naquela época, a Sun enfrentava um sério desafio da Microsoft, que lançou o framework .NET na tentativa de subverter o status do Java. Portanto, a Sun Corporation decidiu acelerar o desenvolvimento do Java e aumentar sua competitividade.

JDK 1.4LST (2002-2):

▪Introdução de Java Management Extensions (JMX), uma nova API de E/S chamada NIO (Nova E/S), asserções, analisadores XML integrados (SAX e DOM) e muito mais.

Este é um dos lançamentos com mais recursos no Java SE. Esta versão apresenta novos recursos, como NIO e analisador XML, que melhoram o desempenho e a escalabilidade dos programas Java.

JDK 5.0 / Java 1.5 (2004-9):

▪Recursos introduzidos como genéricos, tipos de enumeração, boxing e unboxing automáticos, anotações e API de programação simultânea.

Este é um dos lançamentos mais ricos em recursos do Java SE. Esta versão apresenta novos recursos, como genéricos, enumerações de tipo seguro, boxing/unboxing automático e anotações, tornando a escrita de programas Java mais concisa e simplificada.

A partir desta versão, a Sun abandonou o humilde método de nomenclatura "JDK 1. x" e mudou o número da versão do produto para "JDK x". A razão para a Sun fazer isso é que, a partir do JDK 5.0, o plano de lançamento da plataforma Java lança uma versão a cada ano. Para evitar confusão com o número da versão e transmitir melhor a rápida iteração e atualização da plataforma Java, um novo método de nomenclatura é adotado .

◦ JDK 6 (2006 -12):

▪Apresentação da API JDBC 4.0, monitoramento Java e console de gerenciamento (JConsole), suporte aprimorado para linguagens dinâmicas, kit de ferramentas GUI aprimorado (Swing), Java Web Start aprimorado, desempenho e segurança aprimorados e outros recursos.

A atualização do JDK não conseguiu manter a velocidade de desenvolvimento de lançar uma versão principal por dois anos, o que levou a um ciclo de vida anormalmente longo do JDK 6. O Java 6 é amplamente utilizado em bancos e outros sistemas pelos seguintes motivos:

Alta estabilidade: Java 6 é uma versão relativamente madura e estável. Após anos de prática e testes, foi amplamente reconhecido e verificado e atende aos requisitos de estabilidade do setor financeiro. Embora novas versões como Java 7 e Java 8 tragam mais funções e otimizações, essas funções não são exigidas por todos os bancos, e a estabilidade da nova versão também precisa de um certo período de verificação e inspeção.

Controlabilidade forte: Bancos e outros sistemas têm requisitos muito altos para controlabilidade de software e é necessário garantir que o software possa ser executado de forma estável e tenha boa manutenção. A esse respeito, o Java 6 também possui relativamente poucos recursos e atualizações mais recentes, tornando-o relativamente fácil de manter e controlar.

Considerações de custo: para algumas instituições de grande porte, a atualização para a versão mais recente do Java pode ser cara. Por exemplo, o código e os aplicativos existentes precisam ser modificados, testados novamente e auditados, etc. Além disso, muitos sistemas legados ainda rodam Java 6, e atualizar para a nova versão requer uma reavaliação de riscos e benefícios, o que também requer custos e investimentos adicionais.

Resumindo, o Java 6 é amplamente utilizado em bancos e outros sistemas devido à sua estabilidade, controlabilidade e considerações de custo. No entanto, com o passar do tempo e a introdução de novas versões, sistemas como bancos também precisam atualizar gradualmente para versões Java mais avançadas para atender às necessidades de negócios e melhorar a eficiência operacional.

Além disso, embora o Java 7 e o Java 8 tenham trazido mais novos recursos e otimizações, atualizar para novas versões em sistemas como bancos exige um custo enorme, como reescrever e testar código, reavaliar a segurança etc. empresas como bancos estão usando o Java 6 como plataforma de desenvolvimento.

◦JDK 7 (2011 -7):

▪Recursos introduzidos, como a forma de expressão de string da instrução switch, literais binários e notação de número sublinhado, e a instrução Try with Resources.

Durante o desenvolvimento do JDK 7, a Sun estava atolada em competição técnica e de negócios uma após a outra. O valor de mercado da empresa caiu para apenas 3% do período de pico e não foi capaz de promover o desenvolvimento do JDK 7 para continuar como planejado . A fim de acabar com o problema de devolução de ticket de longo prazo do JDK 7 o mais rápido possível, a Oracle anunciou imediatamente a implementação do "Plano B" após a aquisição da Sun, que reduziu bastante o objetivo do JDK 7 para garantir que a versão oficial do JDK 7 pode ser lançado a tempo em 28 de julho de 2011. .

JDK 8LST (2014-3):

◦Introdução da expressão Lambda, API Stream, API Date/Time, método padrão de interface, referência de método, anotação repetida, classe opcional, mecanismo Nashorn JavaScript e outros recursos.

Esta é uma das versões mais importantes do Java SE. Ele apresenta novas funções, como expressão Lambda, API Stream, método padrão e API DateTime, o que melhora muito a eficiência de escrever e desenvolver programas Java. Originalmente programado para ser lançado em setembro de 2013, foi finalmente ignorado até 18 de março de 2014. A partir do JDK 8, a Oracle habilitou JEP (JDK Enhancement Proposals) para definir e gerenciar recursos incluídos no escopo de lançamento da nova versão do JDK.

JDK 9 (2017-9):

◦ Introduziu recursos como sistema modular , JShell, cliente HTTP/2 e API do lado do servidor.

Alterações no ritmo de lançamento: No futuro, o JDK lançará uma versão principal em março e setembro de cada ano, e a cada 6 versões principais do JDK será designada como uma versão de suporte de longo prazo (Long Term Support, LTS), apenas a versão LTS O JDK pode obter suporte e atualizações por um período de 3 anos, e o JDK 8 e o JDK 11 serão versões LTS. O próximo será o JDK 17, que será lançado em 2021.

◦JDK 10 (2018-3):

▪Introdução de inferência de tipo de variável local, Javadoc aprimorado e outros recursos.

Em 27 de março de 2018, o caso de violação do Android Java teve um veredicto final. O tribunal decidiu que o Google compensou a Oracle com um total de 8,8 bilhões de dólares americanos. Deve-se saber que a aquisição da 7,4Sun pela Oracle em 2009 custou apenas

JDK 11LST (2018-9):

▪Apresentação da API do cliente HTTP (API do cliente HTTP), Controle de acesso baseado em ninho (Controle de acesso baseado em ninho), Gravador de voo (gravador de voo), Epsilon GC (coletor de lixo Epsilon), ZGC aprimorado (Z Garbage Collector)) e outras características.

Esta é a versão mais recente da versão de suporte de longo prazo do Java SE. Ela apresenta novas funções, como cliente HTTP, sintaxe de variável local para parâmetros Lambda, ZGC, etc., que tem um valor prático importante. Em outubro de 2018, foi realizado em São Francisco o último JavaOne2018, evento anual para desenvolvedores, que nasceu e cresceu com Java em 1996. Além disso, o Java Mission Control (Java Mission Control (JMC) é uma ferramenta desenvolvida pela Oracle Corporation para monitoramento, gerenciamento e análise de aplicativos Java). A equipe de desenvolvimento também foi dissolvida pela Oracle em junho.

◦JDK 12 (março de 2019):

▪Apresentação da função de visualização de expressão Switch, suíte de teste de micro-benchmark e outros recursos.

Em fevereiro de 2019, às vésperas do lançamento do JDK 12, a Oracle desistiu da manutenção da versão anterior do OpenJDK seis meses depois, conforme anunciado anteriormente, e a RedHat assumiu os direitos de gerenciamento e direitos do OpenJDK 8 e OpenJDK 11 da Oracle ao mesmo tempo Tarefas de manutenção.

◦JDK 13 (setembro de 2019):

▪Recursos introduzidos, como função de visualização de bloco de texto e arquivo CDS dinâmico.

◦JDK 14 LST (março de 2020):

▪Recursos introduzidos, como função de visualização de correspondência de padrão de instância, suporte de memória não volátil, etc.

◦JDK 15 (setembro de 2020):

▪Recursos introduzidos, como a função de visualização de classe selada e o algoritmo de assinatura digital Edwards-Curve.

◦JDK 16 (março de 2021):

▪Recursos introduzidos, como função de visualização de registro e API de vetor.

JDK 17LST (setembro de 2021):

▪Versão de suporte de longo prazo, apresentando recursos formais, como correspondência de padrões e classes seladas.

◦JDK 18 (março de 2022):

▪Apresentar um servidor web simples, oferecer suporte à adição de trechos de código em documentos da API Java e tornar o UTF-8 o conjunto de caracteres padrão para a API Java.

◦JDK 19 (setembro de 2022):

▪Apresentar API concorrente estruturada para simplificar a programação multi-thread, suportar threads virtuais , etc.

◦JDK 20 LST (março de 2023):

▪Apresentar o modo de gravação, a correspondência do modo de comutação, etc.

3. Uso da versão atual do JDK no mercado

A New Relic lançou recentemente um "Relatório de status do ecossistema Java 2023", que coleta dados de milhões de aplicativos online e conta as versões JDK mais usadas no ambiente de produção atual, os dados mais populares sobre fornecedores de JDK, contêineres, etc.

Mais de 56% dos aplicativos atualmente no mercado usam o JDK 11. Em contraste, o uso do Java 8 caiu de 84% em 2020 para cerca de 32% agora. Ambos foram atualizados para as duas versões LTS do JDK 11 ou JDK 17.

Entre os fabricantes de JDK, a Amazon teve um aumento relativamente grande nos últimos dois anos, de 22% para 31%, que é a maior proporção entre todos os fabricantes de JDK atualmente no mercado.

4. Resumo

Ok, o texto acima é uma breve introdução de todas as versões do JDK e recursos relacionados até agora. Originalmente, um mapa mental dos recursos de cada versão foi compilado, contendo introduções relacionadas detalhadas, mas se tudo isso for colocado no artigo, será vai aparecer muito. Long, emm, na verdade, o JDK que estamos usando ainda é o JDK8. Algum tempo atrás, através da investigação do JDK, também estudamos a modularização no JDK9 e o thread virtual no JDK19, e usamos o demo real para verificar os cenários de uso. A análise relevante será apresentada em um artigo subsequente.

ps: Uma foto do mapa cerebral está anexada no final do artigo~

Autor: Jingdong Technology Song Huichao

Fonte: comunidade de desenvolvedores JD Cloud reproduzida, indique a fonte

Ministério da Indústria e Tecnologia da Informação: Não fornecer serviços de acesso à rede para aplicativos não registrados O Go 1.21 libera oficialmente Linus para revisar pessoalmente o código, na esperança de acabar com a "briga interna" sobre o driver do sistema de arquivos Bcachefs ByteDance lançou um serviço DNS público 7-Zip oficial site foi identificado como um site malicioso por Baidu Google lança editor de código AI: Relatório do Projeto IDX Tsinghua: Wenxin Yiyan está firmemente em primeiro lugar na China, além do projeto ChatGPT Vim, o futuro software de meditação será lançado, ChatGPT foi fundado por "primeiro Linux da China pessoa" com um custo diário de cerca de 700.000 dólares americanos, a OpenAI pode estar à beira da falência
{{o.name}}
{{m.name}}

Acho que você gosta

Origin my.oschina.net/u/4090830/blog/10095890
Recomendado
Clasificación