www.argonavis.com.br

CURSOS - Java 2

Tópicos Selecionados de Programação em Java

argonavis@argonavis.com.br

12 novos tutoriais sobre Java Standard Edition (julho a dezembro, 2005)

Apresentações

  1. Atualização Java 5.0 (julho)
  2. Tipos genéricos (julho)
  3. O modelo de consistência de memória do Java 5.0 (agosto)
  4. Utilitários para aplicações concorrentes (agosto)
  5. Gerência de memória em Java, I: garbage collection e arquitetura da JVM (outubro)
  6. Gerência de memória em Java, II: monitoração e configuração da JVM HotSpot (outubro)
  7. Gerência de memória em Java, III: finalização, memory leaks e objetos de referência (setembro)
  8. I/O de alta performance em Java: parte I - java.nio (novembro)
  9. I/O de alta performance em Java: parte II - serialização avançada (novembro)

Os códigos das palestras que os possuem serão colocados no ar posteriormente (estou revisando).

PDF 130 kB

Atualização Java 5.0

Principais novidades do Java 5.0. Esta apresentação apresenta os recursos: for-in, boxing e unboxing, varargs, static import, enums, annotations, printf e outros recursos essenciais que qualquer programador Java deve conhecer. Genéricos são tema de outra apresentaçao.

Slides (PDF 130kB)
Código (em breve>


PDF 129 kB

Tipos genéricos

Esta apresentação apresenta a sintaxe de tipos genéricos da linguagem Java introduzida a partir da versão 5.0. Tipos genéricos são usados em tempo de compilação aumentam a segurança em relação à conversão de tipos, evitando a ocorrência de exceções de conversão que antes ocorriam em tempo de execução. Estão difundidos por toda a API da linguagem Java e é um tema obrigatório para qualquer um que pretenda utilizar Java 5.0.

Slides (PDF 129kB)
Código (em breve)


PDF 266 kB

O modelo de consistência de memória do Java 5.0

O que é um modelo de consistência de memória? Por que o Java tem um modelo de memória? Por que é importante conhecer o modelo de memória do Java e quais as conseqüências de utilizá-lo incorretamente? Como realmente funciona um bloco synchronized, uma variável volatile e o modificador final? O que acontece quando programas não sincronizados corretamente executam em computadores multiprocessados? Como garantir objetos imutáveis? Estas são algumas das questões respondidas nesta apresentação.

Slides (PDF 266kB)


PDF 1.847 kB

Utilitários para aplicações concorrentes

Esta apresentação explora as classes e interfaces do pacote java.util.concurrent e seus sub-pacotes, que contém um framework de execução e agendamento de threads, diversas implementações de filas, listas, conjuntos e mapas concorrentes altamente escaláveis, classes para encapsular inteiros, longos, arrays e objetos para manipulação atômica, implementações de alto-nível de diversos padrões de design da programação concorrente, como travas (locks), condições, semáforos, barreiras e permutadores.

Slides (PDF 1,80 Mb)
Código (em breve)


PDF 436 kB

Gerência de memória em Java: parte I - arquitetura da JVM e algoritmos de coleta de lixo

Esta palestra explora os detalhes do funcionamento da máquina virtual em relação à execução e à gerência de memória, os tipos de algoritmos usados para coleta de lixo, as diferentes regiões da memória onde eles atuam. São detalhados aspectos da arquitetura da máquina virtual de acordo com a especificação, diferentes tipos de coletores de lixo e diversas estratégias de coleta de lixo utilizada em máquinas virtuais modernas e que podem vir a ser usadas em máquinas virtuais no futuro.

Slides (PDF 436 kB)

Veja também a apostila de Gerência de Memória em Java, 96 páginas, PDF, 8,5MB.



PDF 602 kB

Gerência de memória em Java: parte II - monitoração e configuração da JVM HotSpot

Esta apresentação aborda a arquitetura ede memória das máquinas virtuais HotSpot, as estratégias de alocação e coleta de lixo disponíveis, e os efeitos da alteração de parâmetros e como configurá-los para obter os melhores resultados, ajustando as regiões e algoritmos de coleta de lixo (inclusive ergonomics). São apresentadas também ferramentas de monitoração e mineração de dados, como o JConsole (JMX), Jstat, GCViewer e outras.

Slides (PDF 602 kB)


PDF 606 kB

Gerência de memória em Java: parte III - finalização, memory leaks e objetos de referência

Esta apresentação entra em detalhes sobre a criação e destruição de objetos em Java. Como funciona a criação, finalização e remoção de objetos? O que são memory leaks? Como identificá-los e consertá-los. Como controlar eficientemente o coletor de lixo usando objetos de referência? Aprenda neste tutorial como construir aplicações robustas que lidam eficientemente com a memória alocada pela JVM.

Slides (PDF 606 kB)
Código (em breve)