Citação

BigDecimal.

Quando falamos em valores monetários o desenvolvedor deve ter o máximo de cuidado.

Sejam sistemas bancários ou um sistema de corretagem de valor, cada centavo deve ser rigorosamente assertivo.

Executar um cálculo errado pode gerar uma grande dor de cabeça para empresa.

Além do cálculo, a precisão precisa ser exata para não gerar nenhum problema.

Nesse contexto, é totalmente recomendado utilizar o BigDecimal e não Double, mais abaixo vamos mostrar a razão.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/bigDecimal.html.

Link

Java variável atômica.

https://nakatech.herokuapp.com/img/works/20191215/index.jpg

As variáveis atômicas permitem utilizar operações atômicas.

As Operações atômicas são operações que sempre executam juntos e não podem finalizar incompletos.

Em Java podemos utilizar o pacote java.util.concurrent com algumas variáveis atômicas.

Utilizando as variáveis atômicas temos a facilidade de executar uma variável thread safe e deixar de marcar o método como synchronized.

Variáveis atômicas ajudam a deixar o código mais simples e legível, além de seguro quanto a thread safe.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/atomic.html.

Citação

Method reference.

O Java 8 trouxe várias inovações, entre elas o Lambda e o Method Reference.

O Method Reference ajuda a deixar o código mais limpo e claro para o desenvolvedor, além de diminuir com uma quantidade significativa de linhas de códigos.

Nesse Post vamos falar sobre o Method Reference, lembrando que podemos substituir um método lambda em method reference.

Mas qual a vantagem de utilizar um Method Reference e não um método Lambda?

Utilizando Method Reference o código fica mais legível, além de deixar mais explícito o que está sendo manipulado.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/methodReference.html.

Citação

Garbage Collector.

O Java Garbage Collector é o processo automático de gerenciamento de memória.

Programas Java são executados na JVM, os objetos são criados no heap, que é uma parte da memória dedicada para aplicação.

Quando os objetos não são mais necessários, o garbage collector localiza esses objetos não utilizados e os exclui para liberar espaço em memória.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/gc.html.

Java 13.

O Java 13 foi lançado em Setembro de 2019, conforme as regras de lançamento a cada 6 meses.

Obedecendo a regra de lançamento, teremos 2 versões anuais, 1 em Março e outro em Setembro.

Essa foi uma forma de liberar novas capacidades de forma rápida aos desenvolvedores.

Nessa versão 13 da Jdk, foram liberados 5 novas capacidades ou JEP (Java Enhacement Proposal).

Algumas das novidades foram melhorias de capacidades liberados nas versões anteriores.

Novidades Java 13.

Como falamos anteriormente, foram 5 alterações nessa nova versão.

Seguem as alterações:

  1. JEP 350 Dynamic CDS Archives: essa feature foi melhorada a performance do Class Data Sharing (CDS) que foi introduzido no Java 10;
  2. JEP 351 ZGC Uncommit Unused Memory: na versão anterior o GC não retornava a memória heap não utilizada para o sistema operacional, na versão 13 essa melhoria foi introduzida;
  3. JEP-353 Reimplement the Legacy Socket API: as versões anteriores da API de Socket tinham uma implementação um pouco complicado, a nova implementação simplifica o uso e é compatível com as novas extensões;
  4. JEP-354 Switch Expressions: as expressões adicionadas ao Switch no Java 12 como a utilização da condição OR, retornar o valor diretamente no break, utilização de Arrow functions foram mantidos, a novidade foi a introdução da palavra reservada yield para retornar o valor;
  5. JEP-355 Text Blocks: introdução da feature multi-line string literal, onde podemos dispensar a utilização de escapes.

Observação: as features Jep-354 e Jep-355 ainda são do tipo Preview, para ativar precisamos adicionar os parâmetros: javac –enable-preview –release e java –enable-preview.

Conclusão.

As novas releases semestrais estão facilitando a vida do desenvolvedor e da própria Oracle que recebem o feedback mais rápido para corrigir nos próximos releases.

Citação

Java syncronized.

Não é segredo que trabalhar com várias threads é algo bem complexo e deve ser trabalhado com cautela.

A palavra reservada syncronized é utilizada para garantir que todas as threads trabalhem sincronizadas.

Utilizando o syncronized em métodos, garantimos que o método só é acessado por 1 thread por vez.

Podemos utilizar o syncronized diretamente na assinatura do método ou somente no bloco do método que gostaria de sincronizar.

Em resumo, podemos sincronizar métodos de instância, métodos estáticos e blocos dos métodos.

Acesse o tutorial completo em: Nakatech.

Citação

Rodando Javascript na JVM.

Já não é segredo para ninguém que a JVM roda muitas outras linguagens além do Java.

Existem várias linguagens além do Java que tem um Port para rodar dentro da JVM como Scala, Python, Clojure, Ruby, PHP, Groovy, Kotlin e o Javascript.

Vamos falar sobre o Javascript, que foi incorporada na JVM a partir da JDK7 com o projeto Nashorn, onde podemos tanto rodar a partir de um terminal ou mixar códigos Java e Javascript.

Nesse contexto você pode incluir códigos Javascript em códigos Java e vice versa.

O benefício disso é que você pode passar códigos legados em Javascript para Java e vice versa.

Outra vantagem de mixar linguagens é se beneficiar de algo que uma linguagem faz melhor e incluir no código.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/nashorn.html.