Java para Programadores

40 a 60h*

Descrição

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.

Carga-horária

* 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.)

Programa resumido

  • 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)

Programa em detalhes

  • 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

Cursos relacionados

Extras (materiais de cursos antigos)