Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo Java

Segurança do Java resiste a computação quântica?

Potenciais ameaças à segurança representadas por computadores quânticos e como os aplicativos Java podem ajudar a resistir a essas ameaças Os computadores quânticos têm o potencial de quebrar os algoritmos criptográficos que protegem dados e comunicações. Isso ocorre porque eles podem resolver certos problemas matemáticos muito mais rápido do que os computadores clássicos. Isso representa uma ameaça à segurança de dados e comunicações, pois pode permitir que invasores decifrem informações confidenciais. Para lidar com essa ameaça, os aplicativos Java podem usar a API Key Derivation Function (KDF), o Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM) e o Module-Lattice-Based Digital Signature Algorithm (DSA). Essas APIs, algoritmos e padrões como a Criptografia de Chave Pública Híbrida RFC 9180 são áreas em desenvolvimento e direções potenciais de soluções mais amplas resistentes ao Quantum Também é importante se atualizar para soluções de segurança resistentes a q...

O que esperar do ecossistema Java em 2025

Em 2025, o ecossistema Java está pronto para o crescimento e evolução contínuos, impulsionados por diversas tendências importantes Lançamento do Java 24 O projeto OpenJDK que mantém a linguagem Java e a JVM/JDK adotou a cadência de releases a cada 6 meses. Sempre em Março e Setembro. Programado para março de 2025, o Java 24 apresenta melhorias significativas: JEP 483: Ahead-of-Time Class Loading & Linking:  É um novo recurso do JDK 24 que visa melhorar o tempo de inicialização de aplicativos Java armazenando definições de classe e vinculando informações em um cache AOT (head-of-time). Compact Object Headers -  JEP 470 : reduz a sobrecarga de memória, melhorando o desempenho para aplicativos de grande escala. Threads virtuais: simplifica a programação simultânea, permitindo o manuseio eficiente de vários threads. Pattern Matching: melhora a legibilidade do código e reduz o boilerplate, tornando o Java mais amigável ao desenvolvedor. Scoped Values (Fourth Previ...

Retrospectiva do Ecossistema Java 2024

O ano de 2024 foi marcante para o ecossistema Java, consolidando sua posição como uma das principais linguagens de programação no desenvolvimento de aplicações modernas. Com atualizações significativas, adoção crescente de novas versões e discussões relevantes na comunidade, o Java demonstrou sua capacidade de evolução contínua para atender às demandas tecnológicas atuais. Principais Notícias de 2024 Adoção acelerada do Java 21 Em setembro de 2023, foi lançado o Java 21, trazendo melhorias notáveis, como threads virtuais e bibliotecas aprimoradas. A adoção desta versão foi significativamente mais rápida em comparação com lançamentos anteriores. Nos seis meses subsequentes ao lançamento, 1,4% das aplicações monitoradas já utilizavam o Java 21, um aumento de 287% em relação ao mesmo período após o lançamento do Java 17. Além disso, o Java 17, lançado anteriormente, viu sua adoção crescer para 35% das aplicações, refletindo um aumento de quase 300% em um ano. Alguns dos recursos relevante...

Introdução ao projeto OpenJDK CRaC

Projeto OpenJDK CRaC: reduzindo drasticamente o tempo de inicialização de aplicativos Java Um pouco de história O objetivo do Java sempre foi ser independente de plataforma. Isto é, sem precisar compilar o código novamente, é possível rodar em qualquer dispositivo compatível com a máquina virtual (JVM). O famoso slogam ( write once, run anywhere ) Desafios da inicialização de aplicativos na JVM Embora o Java seja uma linguagem popular, a inicialização de aplicativos na JVM pode ser um processo demorado. Isso ocorre porque a JVM precisa realizar várias etapas antes que um aplicativo possa ser executado. Primeiro, a JVM precisa carregar e inicializar todas as classes necessárias para o aplicativo. Isso envolve ler os arquivos de classe, desempacotar arquivos JAR e inicializar todas as dependências. Em seguida, a JVM precisa fazer algumas otimizações de tempo de execução, como compilação just-in-time (JIT) e inlining de métodos. Essas otimizações ajudam a melhorar o desempenho do ap...

Conheça o instancio

Uma biblioteca Java para automatizar a configuração de dados em testes de unidade. Neste post, vou apresentar a biblioteca instancio ( www.instancio.org ), uma ferramenta poderosa para facilitar a criação de testes unitários em Java. A biblioteca instancio permite instanciar objetos complexos com apenas uma linha de código, evitando a necessidade de escrever construtores, setters ou builders. Além disso, a biblioteca instancio é compatível com o Junit, o framework mais popular para testes unitários em Java. Para ilustrar o uso da biblioteca instancio, vou usar um exemplo de um sistema de escola que oferece cursos aos alunos. O sistema possui as classes Curso, Aluno, Plrofessor e Matricula, que representam os conceitos do domínio. Cada classe possui vários atributos e métodos, que não serão detalhados aqui por questão de simplicidade. O objetivo é testar o método matricularAluno da classe Curso, que recebe um objeto Aluno e cria uma nova Matricula associada ao curso e ao aluno. Se...