Java Effetive 3 Edição Java 9

Olá pessoal, tenho uma notícia interessante para compartilhar com você hoje. Após uma longa espera de quase 10 anos, sera lançado a terceira edição do livro Java Efetivo. A segunda edição foi lançado em maio de 2008 e atualizado para Java SE 6, mas tem sido um bons 10 anos agora e há muito interesse... Continue lendo →

Anúncios

Serialização – Item 78

Considere o uso de proxies de serialização em vez de instâncias serializadas O Item 75, 76 e 77 expôs os possíveis de erros que podem prejudicar o uso de classes serializadas e seus contras medidas. Outra forma existente de contornar todas essas situações é usando o padrão de “proxies de serialização” que usa uma classe... Continue lendo →

Serialização – Item 77

Para o controle de instâncias, prefira tipos enum a readResolve O recurso do readResolve contorna aparentemente a possível criação de outro objeto de um singleton serializado, mas na verdade ainda fica aberto para erros caso algum invasor retenha uma referência ao abjeto antes de seu método readResolve ser invocado. Portando, use tipos enum para a... Continue lendo →

Serialização – Item 76

Crie métodos readObject defensivamente Sempre que você criar um método readObject, assuma a atitude de quem está criando um construtor público que tem que fornecer uma instância válida, independente do fluxo de dados a receber. Não assuma que o fluxo de bytes representa uma instância serializada real, uma vez que o ele pode ser maliciosamente... Continue lendo →

Serialização – Item 75

Considere o uso de uma forma serializada personalizada Quando você decidir que uma classe deve ser serializável (Item 74) pondere bem que forma serializada ela deve ter. Não aceite a forma serializada padrão sem antes considerar se ela é apropriada para a determinada classe. Use a forma padrão somente se ela for uma descrição correta... Continue lendo →

Serialização – Item 74

Implemente Serializable Criteriosamente A definição de uma classe serializável constitui um compromisso sério que deve ser adotado com cuidado. Uma vez feito, o autor da classe está assumindo o compromisso de evoluir as novas futuras versões, garantindo compatibilidade de serialização retroativa. Uma classe serializável apresenta as seguintes desvantagens: Diminui a flexibilidade de evolução, uma vez... Continue lendo →

Concorrência – Item 73

Evite o uso de grupos de thread A classe "ThreadGroup" foi criada com funcionalidades bem limitadas e com muitas falhas. Ela se encaixa melhor na categoria de experimento mal sucedido. Portanto, considere a obsoleta e evite o seu uso. Caso existe a necessidade de trabalhar com grupos lógicos de threads (pooling), prefira o uso da... Continue lendo →

Concorrência – Item 72

Não dependa do agendador de thread Nunca crie programas que dependa do agendador de threads para se funcionar corretamente. O programa resultante não será robusto e nem portável. Portanto, não depende de Thread.yield() ou das prioridades das Threads. Estes recursos são apenas “dicas” para o agendador da JVM, não tendo garantias de execução. As prioridades... Continue lendo →

Concorrência – Item 71

Use a inicialização preguiçosa criteriosamente Inicialização preguiçosa é uma otimização que pode ser uma faca de dois gumes. Ela diminui o custo de inicialização, mas aumenta o custo de acesso. Dependendo da parcela de campos, do custo de inicialização e da frequência de acesso, ela pode (como qualquer outra prática de otimização) acabar prejudicando o... Continue lendo →

Crie um website ou blog gratuito no WordPress.com.

Acima ↑