Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo AdoptOpenJDK

Relatório do Estado do Ecossistema Java da New Relic - 2022

Relatório do Estado do Ecossistema Java da New Relic Uma visão aprofundada de uma das linguagens de programação mais populares A New Relic publicou recentemente um novo relatório sobre o Estado do Ecossistema Java usando dados coletados em janeiro de 2022 de milhões de aplicativos anônimos que forneceram dados de desempenho. Java 11 é o novo padrão De acordo com o relatório, o Java 11 é o novo padrão para ambiente de produção, pois a adoção subiu de 11% em 2020 para 48% em 2022, avançando para o Java 8, um segundo próximo a 46%. Outras versões LTS do Java são muito distantes e seu uso é apenas uma pequena fração. A imagem abaixo mostra o uso de versões Java: O Java 17 não subiu nas paradas, mas nos poucos meses desde seu lançamento, já ultrapassou os lançamentos Java 6, Java 10 e Java 16. O suporte para Java 7 está terminando em 2022 e, no entanto, 1,71% dos aplicativos ainda o utilizam em produção. Enquanto isso, o Java 6 não é mais suportado, mas 0,27% dos aplicativos o estã

JDK 18: Os novos recursos do Java 18

JDK 18: Os novos recursos do Java 18 Com o lançamento em março, o Java 18 incuba uma API vetorial , disponibiliza o “pattern matching for switch statements” como preview feature, adota UTF-8 como o conjunto de caracteres padrão e inclui um servidor web simples. O Java Development Kit (JDK) 18 está programado para ser lançado em 22 de março de 2022. A nova versão do Java padrão terá nove novos recursos, com o conjunto de recursos congelado em 9 de dezembro. O JDK 18 passou para um estágio de release candidate, após duas fases de rampdown realizadas entre dezembro e fevereiro. Um segundo release candidate está previsto para 24 de fevereiro. As atualizações do Java padrão são lançadas a cada seis meses, com a versão mais recente, JDK 17 , chegando em setembro de 2021. A página OpenJDK lista os seguintes recursos como direcionados oficialmente ao JDK 18: uma interface de provedor de serviços, um servidor web simples, uma terceira incubação da API vetorial, trechos de código, uma

Compreendendo a compilação Java

  Compreendendo a compilação Java: de bytecodes a código de máquina na JVM Esta é uma tradução/adaptação do artigo original em inglês . Para a plataforma Java, a compilação é diferente de muitas outras linguagens por causa da Java Virtual Machine (JVM). Para executar um aplicativo com a JVM, o código Java é compilado em um conjunto de arquivos de classe que contém instruções para a JVM, não o sistema operacional e o hardware em que a JVM está instalada. Isso fornece o recurso Write Once, Run Anywhere , pelo qual o Java é famoso. Como acontece essa conversão de instruções de máquina virtual para instruções nativas? Esta não é uma pergunta simples de responder, então decidi escrever uma série de posts explorando os diferentes aspectos de interpretação e compilação adaptativa dentro da JVM. Vamos começar com alguns conceitos fundamentais que desenvolvemos no restante da série do blog. Código fonte O que é Código Fonte? O código-fonte são declarações e expressões de alto nível que os

Diferenças entre o Java 11 e Java 17 - Pattern matching for instanceof e mais

    Diferenças entre Java 11 e 17 - Pattern matching for instanceof e mais Neste terceiro post vamos falar sobre Pattern matching for instanceof e algumas melhorias a mais . Caso não tenha acompanhado a primeira e segundas partes, acesse aqui   e aqui . Pattern matching for instanceof Freqüentemente, é necessário verificar se um objeto é de um certo tipo e, quando for, a primeira coisa a fazer é converter o objeto para uma nova variável desse certo tipo. Um exemplo pode ser visto no seguinte código: private static void oldStyle () { Object o = new GrapeClass( Color . BLUE , 2 ); if ( o instanceof GrapeClass ) { GrapeClass grape = ( GrapeClass ) o ; System . out .println( "This grape has " + grape .getNbrOfPits() + " pits." ); } } O resultado é: This grape has 2 pits. Com " pattern matching for instanceof ", o exemplo acima pode ser reescrito da seguinte maneira. Como você pode ver, é possível criar a variável na instância