Java 19 – Virtual Threads (JEP 425 preview – Como usar?!)

Finalmente estamos colhendo os primeiros resultados do Project Loom, trazendo Virtual Threads para a JVM. Virtual threads são threas controlados pelo Java Runtime, em oposição aos Platform Threads que dependem de threads do sistema operacional. Threads de runtime Java geralmente são correspondentes à threads do kernel do sistema (one-to-one), e o thread scheduler do kernelContinue reading “Java 19 – Virtual Threads (JEP 425 preview – Como usar?!)”

Como funciona Java Thread Pool?

Pergunta de entrevista*** Vamos lá, diretamente ao ponto: Internamente, as tasks são inseridas em uma Blocking Queue da qual as threads do pool estão sendo desenfileirados. Quando uma nova task é inserida na fila, uma das threads ociosas a desenfileirará com sucesso e a executará. O restante das Threads ociosas no pool serão bloqueadas, aguardandoContinue reading “Como funciona Java Thread Pool?”

Big O notation e um feliz 2022!

Quando o tempo de execução te assusta! A notação Big O é um conceito que todos os estudantes de ciência da computação encontrarão em seus estudos em algum lugar ao longo do caminho. Mas, qual a importância que o Big O tem? Big O? A letra “O” vem de ordem, outro termo para descrever oContinue reading “Big O notation e um feliz 2022!”

Java – instanceof Pattern Matching

O Pattern Matching para o operador instanceof foi introduzido como um recurso de visualização com JDK 14 e foi finalizada com JDK 16, desde então, não é surpreendente ver mudanças sendo feitas no JDK para tirar vantagem dessa nova funcionalidade. Nesta postagem, vamos focar no uso de Pattern Matching do instanceof na implementação anterior (antesContinue reading “Java – instanceof Pattern Matching”

Como utilizar Optional.stream()

Olá! Tudo bem com vocês? Depois de algum tempo ausente, finalmente estou disponível para continuar escrevendo em meu blog. Hoje vou tentar demonstrar como deixar seu código mais limpo, ajudando assim na leitura do mesmo e também a vida das pessoas que fazem review do seu código java. Optional.stream() é uma feature do Java 9,Continue reading “Como utilizar Optional.stream()”

Minha participação no @2devs podcast | Bem vindo 2021

Antes de tudo gostaria de dar as boas vindas ao ano de 2021, desejar a todos que tenham seus sonhos realizados e saúde. Bom o ano começou muito legal, já teve o primeiro meetup este ano da comunidade SIMBORADEVS, fica aqui o convite para participar do nosso slack e ficar por dentro das ações. EContinue reading “Minha participação no @2devs podcast | Bem vindo 2021”

Java 15 – Sealed Classes and Interfaces

A novidade que tenho pra vocês me deixou realmente animado, adorei essa nova feature do Java 15, a linguagem está a ficar cada vez mais moderna e divertida! “Sealed Classes” ou “classes seladas” é o nome da nova feature que veio através da JEP 360, e tem como fundamento definir um design limpo onde vocêContinue reading “Java 15 – Sealed Classes and Interfaces”

SynchronizedMap x ConcurrentHashMap – micro benchmark

Conforme dito previamente, agora vamos criar uma classe para fazer um micro benchmark para exemplificar o que foi explicado sobre SynchronizedMap e ConcurrentHashMap nos posts anteriores. Quais foram os passos que segui? 1. Criei a classe TestBenchmark; 2. Passei uma implementação diferente como argumento para o método de teste Collections.synchronizedMap(new HashMap()) e ConcurrentHashMap(); 3. CrieiContinue reading “SynchronizedMap x ConcurrentHashMap – micro benchmark”

HashMap pode ser sincronizado em Java?

HashMap é uma estrutura de dados muito poderosa em Java e nós a usamos todos os dias e em quase todos os aplicativos. Como devem saber HashMap é uma classe de coleção não sincronizada, caso não saibam, a novidade é saber que SIM, HashMap pode ser sincronizado. Neste tutorial, vamos tentar entender “Por Quê” eContinue reading “HashMap pode ser sincronizado em Java?”

ConcurrentHashMap

ConcurrentHashMap é uma melhoria do HashMap, pois sabemos que, ao lidar com Threads, o HashMap não é uma boa escolha porque o em termos de desempenho deixa muito a desejar. A classe ConcurrentHashMap é thread-safe, ou seja, várias threads podem operar em um único objeto sem complicações. Ao mesmo tempo, qualquer número de encadeamentos éContinue reading “ConcurrentHashMap”