Este curso, ministrado desde 1996, foi revisado incorporando novidades das versões 6, 7 e 8. Introduz a programação em Java para quem já sabe programar em alguma outra linguagem (como JavaScript, PHP, Ruby, Python, C#). Além de introduzir a programação em Java, o curso apresenta boas práticas, padrões de design e ferramentas que ajudam a organizar o código e o processo de desenvolvimento. Exemplos e exercícios práticos ilustram os conceitos apresentados, e projetos maiores são desenvolvidos ao longo do curso incorporando o que foi aprendido.
A ementa descrita nesta página é abrangente. O programa mínimo (14 módulos + tópicos selecionados) compreende tópicos essenciais. Os tópicos opcionais são assuntos que podem ser estudados posteriormente, introduções breves a temas populares que são aprofundados em outros cursos (ex: interfaces gráficas, JavaFX, JPA, Web, XML, testes, etc.), ou tópicos avançados que podem interessar a determinados públicos específicos. Entre em contato e solicite uma proposta que se adapte às suas necessidades de treinamento.
* A carga-horária básica (14 módulos + tópicos selecionados) é de 40 horas. A inclusão de todos os tópicos opcionais (total de 22 módulos) do programa requer 60 horas para cursos presenciais práticos e semi-intensivos.
O programa apresentado abaixo inclui todos os tópicos. O programa completo pode ser usado em um curso presencial de 40 horas desde que tenha no máximo 8 horas por semana (e tempo para atividades extra-classe), ou em curso intensivo ou semi-intensivo de 60 horas (três semanas, 20 horas por semana). Cursos intensivos de 40 horas incluem apenas o programa mínimo. Cursos online (em blocos de 2 horas/aula por sessão) podem incluir todos os temas nas 40 horas (mas também requerem tempo extra-classe.)
- 1. Introdução
- 2. Sintaxe
- 3. Expressões
- 4. Arrays e Strings
- 5. Classes
- 6. Interfaces
- 7. Coleções
- 8. Composição
- 9. Exceções
- 10. Anotações
- 11. Matemática, datas e calendários
- 12. Aplicações de linha de comando
- 13. Testes e depuração (opcional)
- 14. Introdução a interfaces gráficas (opcional)
- 15. Eventos (opcional)
- 16. Concorrência e threads
- 17. Arquivos, I/O streams e rede
- 18. Programação funcional (Java 8) (opcional)
- 19. Streams e paralelismo (Java 8) (opcional)
- 20. Classloader, reflection e outros tópicos (opcional)
- 21. Banco de dados (opcional)
- 22. Manipulação de XML e JSON (opcional)
- 1. Introdução
- Ambiente de desenvolvimento
- Como escrever, compilar e rodar um programa
- Hello World: anatomia
- Lidando com erros
- Funcionamento da máquina virtual
- Organização de um projeto
- Identificando a estrutura de programas em Java
- 2. Sintaxe
- Classes e objetos
- Tipos primitivos
- Valores
- Literais
- Identificadores
- Operadores e operações
- Casts
- Variáveis
- Constantes
- Métodos
- Construtores
- Membros de classe e instância
- Pacotes
- Comentários e Javadoc
- 3. Expressões
- Expressões numéricas e booleanas
- Concatenação
- Controle de fluxo
- Condicionais
- Repetição
- Operações com bytes
- 4. Arrays e Strings
- Criação de strings
- Modificação de strings
- StringBuilder
- Arrays
- Unicode, strings, bytes e chars
- Pesquisa e outras operações com strings
- Expressões regulares
- 5. Classes
- Criação de classes
- Criação de objeto
- Herança de classes
- java.lang.Object
- toString()
- equals() e hashCode()
- Encapsulamento
- Polimorfismo
- Sobreposição de métodos
- Sobrecarga de métodos
- Classes e métodos finais
- Clonagem (Prototype pattern)
- 6. Interfaces
- Classes e métodos abstratos
- Template method pattern
- Declaração de interfaces
- Uso de interfaces
- Estratégias (Strategy pattern)
- Estados (State pattern)
- Comandos (Command pattern)
- Métodos default (Java 8)
- 7. Coleções e utilitários
- Coleções e estruturas de dados
- Arrays
- Listas
- Conjuntos
- Mapas
- Filas
- Sintaxe de genéricos
- Algoritmos
- Utilitários
- Processamento paralelo (Java 8)
- Tipos opcionais (Java 8)
- 8. Composição
- Relacionamentos entre objetos
- Nível de acoplamento
- Direção
- Delegação
- Processo de construção de objetos
- Adapter pattern
- Façade pattern
- Proxy pattern
- Composite pattern
- Factory Method pattern
- Singleton pattern
- 9. Exceções
- Erros e tipos de exeções
- Declaração de exceções
- Try-catch-finally
- Uso de exceções
- Criação de exceções
- Boas práticas
- 10. Anotações
- Usando anotações
- Criando anotações
- Anotações contendo anotações
- Anotações duplicadas (Java 8)
- 11. Matemática, datas e calendários
- Calendários
- Intervalos de tempo, data e hora (Java 8)
- Operações matemáticas
- Internacionalização
- Formatação de datas e números
- 12. Aplicações de linha de comando
- Parâmetros de linha de comando
- Propriedades do sistema
- Arquivos de propriedades
- Scanner
- Leitura de dados na linha de comando
- Saída padrão e de erro
- Logging
- 13. Testes e depuração (opcional)
- Asserções
- JUnit
- TDD
- Profiling
- Debugging
- Ferramentas para testes contínuos
- 14. Introdução a interfaces gráficas (opcional)
- Swing
- Componentes Swing
- Layouts
- JavaFX
- Componentes JavaFX
- Gráficos
- 15. Eventos (opcional)
- Notificação (Observer pattern)
- Mediação (Mediator pattern)
- Eventos
- Listeners
- Classes internas
- Eventos no Swing e JavaFX (opcional)
- 16. Concorrência e thread
- Thread e Runnable
- Ciclo de vida de um thread
- Sincronização e deadlock
- Thread safety
- Executors
- Locks e outros componentes
- Framework fork/join (Java 7)
- 17. Programação funcional (Java 8) (opcional)
- Expressões lambda
- Interfaces funcionais
- Referências para métodos e construtores
- 18. Streams e paralelismo (Java 8) (opcional)
- Streams sequenciais e paralelos
- Iterações
- Mapas, limites e filtros
- Processamento paralelo
- 19. Arquivos, I/O streams e rede
- java.io.File
- Decorator pattern
- Streams de I/O
- Readers e Writers
- Pipes
- Problemas de encoding
- Compressão de dados
- Sockets
- ServerSockets
- Non
- blocking I/O
- JARs
- 20. Classloader, reflection e outros tópicos (opcional)
- Classloaders
- Resources
- Preferences
- Resource bundles
- Internacionalização
- Formatação de datas e números
- Reflection
- Weak references e memory leaks
- Flyweight pattern
- Monitoração da JVM, algoritmos de garbage collection
- 21. Banco de dados (opcional)
- JDBC
- Configuração e conexão
- Inserção de dados
- Recuperação de dados
- Queries compilados
- Transações
- Camada de persistência e DAO pattern
- Fundamentos de Mapeamento Objeto
- Relacional (JPA)
- 22. XML e JSON (opcional)
- Fundamentos de XML, XPath, XSLT, DTD e XML Schema
- Leitura sequencial SAX
- Modelo de objetos DOM
- Validação
- Leitura e gravação com streams (StAX)
- Transformação (TrAX)
- Fundamentos de Mapeamento Objeto
- XML (JAXB)
- Uso de JavaScript em Java (Java 8)
- Encoding Base64 (Java 8)
- Processamento de objetos em formato JSON