Configurando o Wildfly 10 no Eclipse Mars

Neste tutorial, vou assumir que o servidor de aplicação já foi descompactado em algum diretório da sua máquina.

O Wildfly 10 está suportado no Eclipse Luna através do pacote JBossAS Tools.

Leia mais

Configurando o Wildfly 8 no Eclipse Kepler

Neste tutorial, vou assumir que o servidor de aplicação já foi descompactado em algum diretório da sua máquina.

O Wildfly 8 está suportado no Eclipse Kepler através do pacote JBossAS Tools.

Leia mais

Java é mais rápido que outras linguagens para aplicações server-side web

Em novembro/2013 foi publicada uma notícia na InfoWorld a respeito do desempenho de frameworks e ambientes para aplicações server-side web. A grande surpresa foi que o Java despontou como a melhor performance entre vários produtos testados. As simulações envolveram serialização JSON, acesso a banco de dados, composição de templates no servidor, entre outros. Os procedimentos foram divididos em etapas e na sétima os ambientes envolvendo Grizzly, Gemini, Undertow (o novo servidor web do Wildfly) e Vertx foram os grandes destaques.

Particularmente acho isto muito bom, porque ainda existe um senso comum que o Java tem performance ruim.

Para ver os testes realizados, clique aqui.

 

Configurando o Glassfish 4 no Eclipse Kepler

Neste tutorial, vou assumir que o servidor de aplicação já foi descompactado em algum diretório da sua máquina. Se você ainda não fez a instalação, consulte a seção Installing Glassfish Server from a Zip File do documento oficial Installation Guide, encontrado no link https://glassfish.java.net/docs/4.0/installation-guide.pdf.

O Glassfish 4 está suportado no Eclipse Kepler através do pacote Glassfish Tools.

Leia mais

Você é realmente um bom desenvolvedor Java?

Para ser um bom desenvolvedor Java é preciso, acima de tudo, ter experiência. Em geral, os anos de mercado levam a boas práticas que fazem com que o código seja mais limpo, fácil de dar manutenção e mais simples de entender. No entanto, nem sempre isso é verdade. Estou acostumado a ver código de pessoas com muito tempo de programação que não possui uma boa estruturação e com erros básicos como, por exemplo, a criação de classes com baixa coesão.

Nesse post mostro algumas técnicas que você deve aprender (e algumas falhas que precisa evitar) para que suas aplicações sigam bons princípios e aproveitem ao máximo os recursos nativos que o Java pode te oferecer (não abordo recursos de frameworks ou bibliotecas). Todas as dicas estão relacionados a aspectos técnicos da linguagem, portanto não me prendi a outros fatores, como uso de recursos de IDE’s ou metodologias de desenvolvimento. Vamos a elas:

  1. Strings

O erro mais comum cometido por programadores que estão começando é a criação desenfreada de Strings. Em Java o objeto String é imutável, o que significa que uma vez criado, não pode ser modificado. Portanto, não cometa erros como o de abaixo, em que vários objetos são criados para gerar uma grande String com letras de ‘a’ a ‘j’, consumindo recursos de memória que poderiam estar livres. Observação: a partir do Java 1.6, a concatenação de Strings passou a ser feita através de StringBuilder de forma automática pelo Java, porém um novo objeto StringBuilder é criado e o método append() é chamado a cada concatenação, levando também a um grande desperdício de memória. Assim, use sempre StringBuffer ou StringBuilder quando for efetuar concatenações de Strings.

String todasAsLetras = "a";

// a cada iteração, um novo objeto String é criado
for(char letraAtual='b'; letraAtual<='j'; letraAtual++) {
   todasAsLetras = todasAsLetras + "-" + letraAtual;
}

System.out.println(todasAsLetras); // imprime a-b-c-d-e-f-g-h-i-j

Solução: use a classe StringBuffer ou StringBuilder.

  1. Operadores

A utilização de operador ternário deixa seu código menor e mais legível. Exemplo:

Leia mais

Conversão de números entre bases (binário, decimal, octal, hexadecimal)

Há alguns dias recebi e-mail de uma pessoa com um pedido para ajudar na conversão de números entre bases utilizando Java. Claro que não poderia ser utilizada nenhuma classe já existente na JVM, pois a ideia era criar um código que efetuasse a transformação de forma manual. Assim, até como uma forma de exercício mental, elaborei as conversões abaixo.

Atenção: você encontrará alguns trechos de código repetido, mas isso acontece porque quis fazer com que cada método (com algumas exceções) pudesse ser executado de forma atômica.

Decimal

Decimal para Binário

/**
* Converte decimal para binário. A regra é ficar dividindo o valor por 2, pegar o resto de cada divisão e inserir o valor da direita para a esquerda na String de
* retorno. O algoritmo é executado até que o valor que foi sucessivamente dividido se torne 0. Obs.: assume que o valor passado é inteiro positivo.
* Exemplo: 13
* 13/2 = 6 -> resto 1 -> Resultado: 1
* 6/2 = 3  -> resto 0 -> Resultado: 01
* 3/2 = 1  -> resto 1 -> Resultado: 101
* 1/2 = 0  -> resto 1 -> Resultado: 1101
*
* Resultado: 1101
*
* @param valor número decimal a ser convertido
* @return String contendo o valor em binário
*/
public static String converteDecimalParaBinario(int valor) {
   int resto = -1;
   StringBuilder sb = new StringBuilder();

   if (valor == 0) {
      return "0";
   }

   // enquanto o resultado da divisão por 2 for maior que 0 adiciona o resto ao início da String de retorno
   while (valor > 0) {
      resto = valor % 2;
      valor = valor / 2;
      sb.insert(0, resto);
   }

   return sb.toString();
}

Leia mais

Bibliotecas de Interface Rica no JSF 2

Aprenda um pouco do que é RIA (Rich Internet Application) e veja um comparativo entre as três soluções de bibliotecas de interface rica para JSF: PrimeFaces, RichFaces e ICEfaces.

Essa palestra foi apresentada no CCT de maio do CEJUG e teve como base um artigo de minha autoria, intitulado Bibliotecas de Interface Rica no JSF 2, que saiu na edição 114 da Revista Java Magazine.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.