Link

Spring boot + ws Soap.

https://nakatech.herokuapp.com/img/works/20200705/index.jpeg

Nesse Post vamos criar um exemplo de web service Soap utilizando Spring boot e Apache CXF.

Vamos utilizar o Spring boot para executar o bootstrap e o Apache CXF para facilitar o desenvolvimento da web service Soap.

Todo trabalho pesado em criar os contratos wsdl é criado de forma simples pela lib Apache CXF.

Atualmente a tecnologia de web service Rest é mais utilizado para expor serviços, mas pode existir casos onde seja necessário o uso de web service Soap.

Mostraremos um exemplo simples mas funcional que demonstra a facilidade de expor um web service Soap.

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

Link

Java Future/Callable.

Essa semana eu estava com um problema para resolver na aplicação que eu estou trabalhando na empresa.

O sistema precisa fazer algumas chamadas rest para consultar algumas informações.

O problema é que essa consulta pode ser chamada várias vezes para trazer a informação, teve casos onde foram feitas 50 chamadas, levando 50 segundos no total.

Para resolver esse problema, tive que utilizar processamento em paralelo, onde disparo várias chamadas e no final agrupo todo resultado.

A solução foi utilizar as features Future e Callable do Java 8.

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

Citação

String, StringBuffer e StringBuilder.

Você sabe a diferença entre as classes Java String, StringBuffer e StringBuilder?

A principal diferença é que A classe String é imutável e StringBuilder e StringBuffer são mutáveis.

Na prática uma classe Imutável é instanciada e não pode ser mais alterada, como acontece com a classe String.

Acesse o artigo completo em: nakatech.

Citação

Java deepEquals.

Nesse Post vamos apresentar o método deepEquals da classe Arrays.

O método deepEquals é utilizado para comparar 2 Arrays simples ou multidimensionais.

A vantagem de utilizar deepEquals e não equals é no momento que utilizamos comparação de Arrays multidimensionais.

O deepEquals faz uma verificação recursiva e o equals verifica somente a referência.

No próximo tópico vamos comparar o uso dos 2 métodos para exemplificar melhor a teoria.

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

Java 14.

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

Dia 17 de Março de 2020 foi a data de lançamento do novo Oracle jdk 14.

O lançamento conta com 11 novas capacidades que podem ser do tipo Standard, Preview ou Incubator.

O tipo Standard é a capacidade que será realmente incorporada a versão.

Já o tipo Preview é uma prévia de uma capacidade que pode ser incorporada a versão dependendo dos feedback’s recebidos.

E o tipo Incubator é um tipo de capacidade que é incorporada de forma experimental e ainda está sendo trabalhada com melhorias.

Além de features que eram do tipo Preview na versão 12 e 13 que nessa versão 14 serão oficialmente incorporadas.

Novas Capacidades.

Vamos apresentar as 11 capacidades que foram liberadas para a versão 14 do Java:

  1. JEP 305: Pattern Matching for instanceof (Preview): Essa capacidade melhora os padrões do Java de matching do instanceof;
  2. JEP 343: Packaging Tool (Incubator): Capacidade que empacotar aplicações Java e disponibilizar para Sistemas Operacionais específicas;
  3. JEP 345: NUMA-Aware Memory Allocation for G1: Uma melhora geral no Garbage Collector G1 non-uniform memory access (NUMA);
  4. JEP 349: JFR Event Streaming: Expõe os dados JDK Flight Recorder (JFR) para monitoração contínua;
  5. JEP 352: Non-Volatile Mapped Byte Buffers: Adicionado modo de mapeamento de arquivo para memória não volátil;
  6. JEP 358: Helpful NullPointerExceptions: Melhora a rastreabilidade quando ocorre um NullPointerExceptions;
  7. JEP 359: Records (Preview): Capacidade que melhora e diminui linhas de código na sintaxe;
  8. JEP 361: Switch Expressions (Standard): As capacidades de Switch que eram Preview na versão 12 e 13 foram incorporadas nesta versão;
  9. JEP 368: Text Blocks (Second Preview): Capacidade que visa melhorar a escrita de String’s muito grande;
  10. JEP 364: ZGC on macOS e JEP 365: ZGC on Windows: Inclusão do ZGC para Windows e Mac;
  11. JEP 370: Foreign-Memory Access API (Incubator): Uma API que permite o Java acessar de forma segura e eficiente a foreign memory.

 

Conclusão.

Seguindo o cronograma de 6 meses, a Oracle entrega outra Release do Java(Java 14) com ajuda da comunidade, melhorando as capacidades através de feedback’s mais rápidos.

Citação

Java, signed byte para unsigned.

Em Java, não existe byte unsigned, ou seja de 0 a 255.

O byte em Java são sempre do tipo signed, ou seja de -128 a 127.

Você sabe a diferença entre um byte signed e unsigned?

Basicamente o byte unsigned é representado por números positivos e o signed são representados por números positivos e negativos.

O Java utiliza somente o tipo signed para deixar mais simples e evitar confusão.

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

Link

Parâmetros via valor ou referência.

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

Passar parâmetros via valor ou referência em Java, já ouviu isso?

Parece besteira, mas esse assunto ainda gera muita dúvida.

Na passagem por valor, é passada uma cópia do valor da variável.

Já na passagem por referência, é passada uma referência à própria variável.

Para entender melhor, vamos exemplificar no tópico abaixo.

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