Copiar arrays em Java

Em Java, temos algumas maneiras de fazer cópias ou sub-cópias de arrays: Manualmente: criar outro array e copiar elemento a elemento Utilizar System.arraycopy Utilizar Arrays.copyOfRange ou Arrays.copyOf para versão do Java maior ou igual a 1.6 Qual deles é melhor? Continue lendo Copiar arrays em Java

Maneiras de medir o tempo em Java sem bibliotecas externas

Em Java, existem algumas formas de medir o tempo de execução de um trecho do código sem o uso de bibliotecas externas ou ferramentas de profiling. O jeito mais convencional é utilizar o System.currentTimeMillis(): Pode-se substituir o currentTimeMillis() por nanoTime(). Continue lendo Maneiras de medir o tempo em Java sem bibliotecas externas

Threads no escopo JEE

Quando eu entrevisto alguém pra uma vaga de emprego, eu sempre pergunto se podemos utilizar threads em escopo JEE. Já recebi várias, resposta, algumas preocupantes, outras espertas. Resolvi fazer um post para esclarecer essa questão. A própria documentação da Oracle Continue lendo Threads no escopo JEE

Problema ao iniciar WebLogic

Caso você tenha o seguinte problema ao inicializar o WebLogic: oracle.core.ojdl.logging.LoggingConfigurationException: ODL-52049: cannot create instance of class 'oracle.dfw.incident.IncidentDetectionLogFilter': java.lang.ExceptionInInitializerError .... WARNING: unable to register log dump; exception: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException ... <Critical> <WebLogicServer> <BEA-000286> <Failed to invoke startup class "DMS-Startup", java.lang.NoClassDefFoundError: Continue lendo Problema ao iniciar WebLogic

Método da Bissecção

Esses dias resolvi retomar o conhecimento de cálculo numérico que tive na faculdade. O primeiro tópico que abordei foi os métodos iterativos de obter zeros reais de funções. Tomei como base o livro de Cálculo Numérico que tive na faculdade. Continue lendo Método da Bissecção

Extrair arquivos estáticos

Para melhor o desempenho de aplicações é interessante colocarmos um servidor de conteúdo estático, como o Apache, para trabalhar com os conteúdos que não precisam ser dinâmicos, como imagens, folhas de estilos, javascripts e afins. No Java normalmente esse conteúdo, Continue lendo Extrair arquivos estáticos

RandomAccessSubList não serializável

Caso você tenha se deparado com o seguinte erro: java.io.NotSerializableException: java.util.RandomAccessSubList at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) Em ambientes clusterizados ou ao serializar algum objeto, significa que você está utilizando um atributo de classe Continue lendo RandomAccessSubList não serializável

Criando Jar Cliente para o WebLogic

Para algumas aplicações clientes que você deseja utilizar o WebLogic como server é comum utilizar o arquivo weblogic.jar em seu projeto. O problema é que esse arquivo tem algumas restrições de licença, que inviabiliza a sua distribuição. Entretanto, existe um Continue lendo Criando Jar Cliente para o WebLogic

Como encurtar uma URL via java sem autenticação

Aproveitando o post: Como encurtar uma URL via javascript sem autenticação, segue a mesma versão, mas agora usando Java, sem lib. Para utilizar é só chamar o método: Agora é só aproveitar.

Total de linhas em um arquivo

No Java existe uma classe que mantém o controle do número de linhas em um arquivo: a classe LineNumberReader. Ela possui o método getLineNumber que é incrementado a cada quebra de linha em um arquivo. Com isso em mente há Continue lendo Total de linhas em um arquivo

Descobrindo a versão do seu bytecode.

Em algumas situações temos o seguinte erro: java.lang.IncompatibleClassChangeError: Implementing class ou java.lang.UnsupportedClassVersionError: XXXX: Unsupported major.minor version XX.X Isso ocorre quando a versão do aplicativo foi compilada (javac) em uma versão superior à máquina virtual (java) que está sendo executada. Para Continue lendo Descobrindo a versão do seu bytecode.

Lendo o MANIFEST.MF em tempo de execução

Para ler o arquivo MANIFEST.MF em tempo de execução que se localiza dentro de um JAR é só executar o seguinte código passando o caminho para a variável jarFile: No Map entries, você terá os atributos do arquivo MANIFEST.MF e Continue lendo Lendo o MANIFEST.MF em tempo de execução

Palestra Campus Party 6 - 2013

Conforme prometido, segue o link da minha palestra. Em breves coloco o link do vídeo e disponibilizo a aplicação no github. Muito obrigado pessoal! Atualização 07/02/2013: Segue o vídeo:

Botão animado com Ginga-J

Criei um componente para facilitar a exibições de botões animados com Ginga-J. É uma classe pequena onde você passa um array de imagens e adiciona no seu Form principal e ela anima essas imagens. A implementação é simples pois utiliza Continue lendo Botão animado com Ginga-J

Hello World TV Digital com Java

Para desenvolver uma aplicaçãozinha para TV Digital Ginga-J é muito simples. Você só precisa conhecer bem alguns conceitos e o ciclo de vida da aplicação. E para começar nada melhor que um Hello World! Primeiramente vamos dar uma passada no Continue lendo Hello World TV Digital com Java