curso Java online
| Curso Java para o Mundo Real = Sintaxe, uso real de orientação a objetos, APIs essenciais e exceções |
| Cuso Java desenvolvimento Ágil = Bibliotecas, bancos de dados, testes, entrada e saída e uso de TCP/IP e conceitos de desenvolvimento ágil. |
| Curso Java Servlets e JSP = Desenvolvimento web com Java. |
| Curso Java EJB e JPA = Aplicações Corporativas Java EE profissionais, escaláveis e integráveis |
| Curso Java Portlets Java EE = Portais corporativos baseado nos padrões da plataforma Java E. |
Os cursos Java da 4linux foram feitos sob medida para o desenvolvimento de aplicações Java com produtividade e qualidade em ambiente colaborativo ágil. É o cenário real de um desenvolvedor Java trabalhando em equipe e estes são os únicos treinamentos Java que seguem essa dinâmica. Os exercícios são na forma de solicitações de serviço feitas pelo instrutor. Após terminar o exercício, o aluno usa um sistema de versionamento integrado ao sistema de tickets que efetua testes integrados de acordo com as melhores práticas de grandes empresas de desenvolvimento.
Os treinamentos Java Online da 4Linux são ministrados à distância pela internet, com professores ao vivo com metodologia inovadora e exclusiva da 4Linux.
O diferencial deste curso Java é simular o dia a dia de um profissional que atua no mercado corporativo. Este treinamento Java apresenta o Java e sua sintaxe explorando recursos de orientação a objetos, APIs essenciais e tratamento de exceções.
Introdução à plataforma Java e à linguagem de programação Java
Plataforma Java (JVM, APIs) x Linguagem Java
Edições do Java: SE, EE, ME
JRE x JDK: Qual devo baixar
Sun JDK x OpenJDK: Já temos Java 100% Livre!
Java é mesmo mais lento e pesado?
Java é mesmo mais complicado?
Compilação e execução de código Java com o JDK
O programa Java mínimo
Instalação e configuração do JDK
Como compilar e executar o programa míni
Estrutura sintática do Java: classes, métodos, atributos
Classes, métodos e atributos (variáveis) estáticos
Reutilização por subrotinas ou subprogramas
Argumentos x variáveis locais e globais
Pacotes Java x Sistema de arquivos
Estruturas de controle e repetição: if, while, for, switch
Interrompendo estruturas: break e continue
Paralelo com linguagens estruturadas (C, Pascal e Basic)
Introdução ao Subversion
O que é um VCS
Repositório e cópia de trabalho
Checkout, update e commit
Arquiteturas de software em camadas: apresentação, negócios e persistência
Conceitos de arquiteturas de camadas
A arquitetura three-tier
Interfaces com o usuário no modo texto
Argumentos da linha de comando
Saída padrão e de erros
Entrada padrão
Código de retorno
A classe Console
API de Logging
Quanto usar a saída padrão e de erros
API de loging do Java SE
Configuração de logging: níveis, categorias e saídas
Gerando mensagens de depuração e de erros
Manipulação de Strings
Concatenação e substrings
String x StringBuffer x StringBuilder
Conversão de tipos de e para String
Expressões regulares
Tipos de Dados com Java
Tipos primitivos x objetos
Instanciando objetos
Construtores
Métodos de Objetct: toString, hashCode, equals
Arrays de tipos primitivos e de objetos
O loop for incrementado
Autoboxing e casting
Investigando a passagem por valor e por referência
Execução de Testes unitários com JUnit
O que é o JUnit
Porque usar testes unitários
Princípios do TDD
Utilizando o TestRunner
OO com Java: interfaces, herança, polimorfismo
Programação Procedural, Estruturada e Orientada a Objetos
O que são classes
O que são interfaces
Herança, especialização, delegação e instanceof
Sobreposição e superposição
Visibilidade: private, protected e default
Outros relacionamentos entre objetos
O modificador final
Automação de build com Ant
Porque automatizar builds
Introdução ao Apache Ant
Instalação e configuração do ant
Sintaxe dos buildfiles
Executando alvos
Usando Subversion via Ant
Executando testes JUnit via Ant
Tratamento de erros e exceções
Comandos try, carch e finally
Exceções x Erros
Definindo suas próprias exceções
Quando usar exceções verificadas
Encapsulando exceções x lançando exceções
Introdução ao IDE Eclipse
Introdução ao projeto e à fundação Eclipse
Instalação e configuração do Eclipse
Visões e perspectivas
Editando código Java no JDT
Compilando código Java
Executando código Java
Depurando código Java
Editando e depurando buildfiles Ant
Executando testes de unidade
Checkout, update e commit no Subversion
Formatação de texto e internacionalização
Locales e idiomas
Formatação de números
Formatação de datas
Formatação de mensagens
Resource bundles
Coleções do Java 2
Conjuntos, Listas e Mapas
Introdução aos tipos genéricos
Percorrendo coleções
Ordenando coleções
Pesquisando coleções
Comparable x Comparator
Performance das coleções concretas
Tipos de dados genéricos
O que são parâmetros de tipo
Restrições de tipo
Máscaras de tipo
Caso faça o curso na modalidade EAD, para acompanhar este curso pela Internet com qualidade, é necessário que você tenha uma infraestrutura mínima com as seguintes características:
Importante: Não é possível fazer o curso com conexão discada. Também não recomendamos conexões 3G.
Curso à distância:
A carga horária do curso varia de acordo com a modalidade:
Curso à distância
75 horas, nas quais:
28 horas de aulas síncronas ao vivo com o professor através de vídeo-conferência.
45 horas assíncronas obrigatórias para melhor desempenho do aluno. Estas horas são controladas pelo aluno que deverá ler o material didático, documentações e tutoriais indicados pelo instrutor, participar do fórum de dúvidas e discussões, auto-estudo de vídeos e exercícios dirigidos para assimilar o conteúdo.
2 horas de ambientação para apresentação da Metodologia TripleClass e do ambiente de ensino à distância da 4Linux.
O diferencial deste curso Java é simular o dia a dia de um profissional que atua no mercado corporativo. Este treinamento Java apresenta o desenvolvimento de bibliotecas Java e uso de bibliotecas prontas, acesso a bancos de dados, criação de testes, E/S entrada e saída e uso de TCP/IP em Java.
Além disso, o aluno é introduzido a conceitos de design patterns e TDD.
Incorpora práticas empregadas pelas metodologias ágeis, como XP, Scrum e TDD;
Ensino da linguagem dentro de um conjunto de ferramentas colaborativas de desenvolvimento em equipe com gerência de requisitos, controle de versões, testes e integração contínua.
Fornece base para o aprendizado posterior efetivo de frameworks avançados como Hibernate, Spring, Struts ou Seam;
Metodologia IT Experience: Boas práticas de programação e segurança testadas na vida real;
Troubleshooting Java: Ênfase em diagnóstico e resolução de problemas.
Revisão dos conceitos OO com Java
Classes, interfaces e tipos genéricos
Métodos e visibilidade
Modelos UML x código Java
Conceitos de Acoplamento, Coesão e dependências
Uso do JDepend, Findbugs, PMD e EclipseMetrics
APIs de E/S do Java SE
Conceito de Streams
Streams em memória e strings
Encadeamento de streams
Compactação e verificação de arquivos
Readers e Writers
Serialização de objetos
O modificador transient
Canais e Buffers
Mais sobre o Subversion
Conceitos de branches e tags
Criando branches
Merge entre branches
Construção de testes de unidade JUnit
Estrutura de um TestCase
Setup e Teardown
Suítes de Teste
O que testar (e o que não testar)
Testando por erros
Executando testes via Ant
O conceito de Mock
Design patterns e testabilidade
E/S de arquivos
Streams de arquivos
Readers e Writers de arquivos
Manipulação de Arquivos e diretórios
Propriedades de Sistema e Recursos do Classpath
Ambiente do SO x Propriedades de Sistema da JVM
Definindo e consultando System Properties
System Properties em arquivos
Recursos do classpath
Bibliotecas
O que são arquivos JAR
O comando jar do JDK
Configurando o classpath
Usando bibliotecas de terceiros
Conceitos de TDD: Test-Driven Development
O que é o TDD
Vantagens do TDD
TDD + Refatoração = Qualidade
E/S de rede
Introdução ao TCP/IP
Sockets de servidor e de cliente
Transmitindo e recebendo dados via sockets
Utilizando Datagramas UDP
Introdução aos design patterns
O que são design patterns
Alguns design patterns usuais
Design patterns nas APIs do Java
Conceitos de Refatoração de código
Porque refatorar código
Refatorações clássicas
Threads e sincronização
Processos x Threads
Criação e término de threads
A interface Runnable
Porque sincronizar
O modificador volatile
Evitando deadlocks, starvation e race conditions
Pipes e Processos em Java
Temporizadores
Testes de unidade x Testes de sistema
Conceituação de testes unitários
Situações que exigem testes de sistema
Performance e reprodutibilidade de testes de sistema
Construindo testes de sistema com JUnit
Construindo testes de performance com PerfUnit
Bancos de dados via JDBC
O que são bancos de dados relacionais
Conexões, Comando e Resultados
Transações
Comandos pré-compilados e procedimentos armazenados
Meta-dados do banco de dados
Erros de banco e leaks de conexões
Testes via DBUnit
Introdução ao DBUnit
Configuração testes DBUnit
Inicializando o banco de dados
Verificando o estado do banco depois dos testes
Caso faça o curso na modalidade EAD, para acompanhar este curso pela Internet com qualidade, é necessário que você tenha uma infraestrutura mínima com as seguintes características:
Importante: Não é possível fazer o curso com conexão discada. Também não recomendamos conexões 3G.
Curso à distância:
Curso à distância
75 horas, nas quais:
28 horas de aulas síncronas ao vivo com o professor através de vídeo-conferência.
45 horas assíncronas obrigatórias para melhor desempenho do aluno. Estas horas são controladas pelo aluno que deverá ler o material didático, documentações e tutoriais indicados pelo instrutor, participar do fórum de dúvidas e discussões, auto-estudo de vídeos e exercícios dirigidos para assimilar o conteúdo.
2 horas de ambientação para apresentação da Metodologia TripleClass e do ambiente de ensino à distância da 4Linux.
Este treinamento Java insere o aluno no mundo do desenvolvimento web Java. Neste curso Java as tecnologias Java de Servlets e páginas JSP são ensinadas usando um ambiente de desenvolvimento colaborativo. Todos os cursos Java da 4Linux reproduzem o dia a dia de um desenvolvedor de aplicações corporativas criadas em equipe. Um dos diferenciais deste curso é testar o código gerado usando o servidor de aplicações JBoss AS.
Este treinamento Java destina-se a todos que precisam criar aplicações web para acesso via internet ou intranet usando a linguagem Java.
Incorpora práticas empregadas pelas metodologias ágeis, como XP, Scrum e TDD;
Ensino da linguagem dentro de um conjunto de ferramentas colaborativas de desenvolvimento em equipe com gerência de requisitos, controle de versões, testes e integração contínua.
Fornece base para o aprendizado posterior efetivo de frameworks avançados como Hibernate, Spring, Struts ou Seam;
Metodologia IT Experience: Boas práticas de programação e segurança testadas na vida real;
Troubleshooting Java: Ênfase em diagnóstico e resolução de problemas.
Introdução à Interface Web
- Conceitos essenciais do HTTP e da WWW
- Introdução ao HTML e CSS
- Introdução ao Javascript
Introdução ao Java EE
- O que é o Java EE
- Aplicações em Camadas
- Padrões do JCP
- O que é um servidor de aplicações
Introdução ao JBoss AS
- Instalação do JBoss AS
- Start e stop do servidor
- Empacotando e deployando web sites estáticos
- Executando e depurando o JBoss dentro do Eclipse
Páginas dinâmicas com JSP e JSTL
- Web design para aplicações (formate com estilo!)
- O que é uma página JSP
- A EL - Expression Language
- Tags de lógica e formatação do JSTL
- Tags de BD e XML(?) do JSTL
- Controlando o cache
- O que são Scriptlets e porque evitá-los
- Empacotando a aplicação em WAR e JARs
- Deploy de WARs no JBoss AS
O Modelo MVC com Servlets
- Uma primeira aplicação envolvendo Servlets
- Mapeando URLs a servlets via web.xml e anotações
- Usando o “extra path”
- Usando JSP como visões e Servlets como controladores
- O que é o Modelo, afinal?
- Acesso a BD no Java EE x Java SE
- Configurando Datasources no JBoss AS
- Init-Params de contexto e de servlet
- Uso do CDI para conectar Controladores ao Modelo
Navegando em uma aplicação web
- Tratando parâmetros de requisições GET no Servlet
- Passando atributos para a página JSP
- Cuidado com a segurança! (Valide tudo, valide sempre)
- Tratamento de erros e exceções para a web
- Lembre-se do Log!
Formulários HTML
- Tags para formulários HTML
- GET x POST: quanto usar cada um
- Campos escondidos
- O problema da submissão duplicada
- Quando e como usar redirects
- Acentuação na web
- Validação em Ajax x Validação no Servlet
Sessões e Contextos
- Mantendo o estado da navegação
- Compartilhando dados entre usuários diferentes
- Sessões x Login
- Sessões x Conversações
- Abusos de sessões
- Considerações para ambientes em cluster
Login e permissões
- O Modelo de segurança do Java EE
- Segurança no HTTP
- Segurança declarativa no web.xml e via anotações
- Segurança x Interface com o usuário
- Configurando security domains no JBoss AS
Reuso e fragmentos de páginas
- Diretivas e tags de inclusão do JSP e JSTL
- Porque usar o WEB-INF
- Simple TagLibs JSP
- Taglibs em Java
- Exemplo: taglibs para roles JAAS
- Empacotando taglibs pra reuso
Saída Binária
- Tipos de conteúdo HTTP e tags META HTML
- Gerando gráficos com o JFreeChart
- Empacotando bibliotecas dentro e fora da aplicação
- Desenhando relatórios com o iReport
- Gerando relatórios com o JasperReports
- Pré-compilando relatórios com Ant
Aplicações Web 2.0
- Processamento no cliente (navegador) x servidor
- Introdução ao Ajax e ao JSON
- Uso e abuso do Ajax
- Servlets para respostas Ajax
- Usando JQuery com Servlets e JSP
- Eventos Ajax
- Introdução ao DOM
Upload e download de arquivos
- Upload via formulários HTML
- Downloads controlados
- Pré-gerando arquivos para download
- Apache Commons
- Recursos EE que você vai precisar conhecer
Filtros e Eventos
- Inicialização e destruição de Servlets
- Filtros de Servlets
- Wrapeando requisições e respostas
- Eventos de contexto
- Eventos de sessão
Performance e Escalabilidade
- Performance de CSS e Javascript
- Evite imagens decorativas
- Obediência a padrões
- Não deixe lixo na sessão
- Cuidado com static e singleton!
- Pré-compilando páginas JSP
- Blobs x sistema de arquivos
- Dicas de acessibilidade
Caso faça o curso na modalidade EAD, para acompanhar este curso pela Internet com qualidade, é necessário que você tenha uma infraestrutura mínima com as seguintes características:
Importante: Não é possível fazer o curso com conexão discada. Também não recomendamos conexões 3G.
Curso à distância
75 horas, nas quais:
28 horas de aulas síncronas ao vivo com o professor através de vídeo-conferência.
45 horas assíncronas obrigatórias para melhor desempenho do aluno. Estas horas são controladas pelo aluno que deverá ler o material didático, documentações e tutoriais indicados pelo instrutor, participar do fórum de dúvidas e discussões, auto-estudo de vídeos e exercícios dirigidos para assimilar o conteúdo.
2 horas de ambientação para apresentação da Metodologia TripleClass e do ambiente de ensino à distância da 4Linux.
Este é o quarto curso da formação de Desenvolvedor Java Enterprise da 4Linux. Aprenda como desenvolver Aplicações Corporativas profissionais, escaláveis e integráveis usando os recursos do Java EE 6 e prepare-se para as certificações OCE Enterprise Java Beans (antiga SCBCD) e OCE Enterprise Java Persistence Architecture.
A tecnologia EJB é o coração do Java EE, desde sua criação há quase 10 anos. Componentes EJB podem ser distribuídos em rede, facilitando assim tanto a escalabilidade quando a reusabilidade e a integração entre aplicações. As primeiras versões do EJB eram complicadas, o que deu origem a frameworks alternativos, como Spring e Hibernate. As versões mais recentes do Java EE evoluíram e simplificaram a tecnologia EJB, suportando anotações e desenvolvimento estilo “POJO”, além de acrescentar as tecnologias JPA e CDI para incorporar capacidades e facilidades originadas nestes frameworks. Hoje o desenvolvedor Java EE pode contar com o melhor dos dois mundos: a segurança e poder dos padrões do JCP, junto com a facilidade e inovação do open source.
O JPA fornece capacidades de ORM (Object-Relational Mapping), ou seja, permite utilizar Bancos de Dados Relacionais com uma visão Orientada a Objeto. Isto simplifica o código, que fica independente do banco de dados utilizado, e permite incorporar facilmente técnicas avançadas de performance, como “lazy loading” e caches agressivos, sem abrir mão da performance a nível de SQL.
Já o CDI (Contexts and Dependency Injection) incorpora ao Java EE os padrões de projeto de IoC (Inversion of Control – Inversão de Controle) e DI (Dependency Injection – Injeção de Dependências) que são hoje a forma preferida de se projetar aplicações baseadas em componentes fracamente acoplados, reutilizáveis, plugáveis e substituíveis.
Mesmo quem preferia não usar EJB ainda necessitava, em sistemas corporativos, dos demais recursos enterprise do Java EE, por exemplo conectores para sistemas e bancos legados (JCA), transações distribuídas (JTA), segurança declarativa, multi-camada e compatível com diversas bases de identidade (JAAS), messageria transacional e assíncrona (JMS), distribuição (JNDI), agendamento e clustering. Só que a integração destas tecnologias com frameworks externos poderia acabar gerando tanta ou mais complexidade do que desenvolver baseado em EJB. Hoje, esta integração vem “de graça” para quem usa EJB 3.x, JPA e CDI.
Introdução aos Sistemas Corporativos
- Nenhum sistema é uma ilha
- Fontes de dados e EIS legados
- O conceito de servidor de aplicação
- O Padrão Java EE
Introdução ao EJB 3
- O que é um componente distribuído?
- O que é um componente gerenciável?
- Tipos e ciclo de vida de EJBs
- Clientes locais (EE) e remotos (SE) de um EJB
- EJB 3.x versus EJB 1 e 2.x
Introdução ao JBoss AS
- Instalação do JBoss AS
- Start e stop do servidor
- Empacotando e deployando componentes EJB
- Executando e depurando clientes Java SE ou Web dentro do Eclipse
- Executando e depurando o JBoss dentro do Eclipse
Lógica de Negócios em Stateless Session EJBs
- O que é um SLSB
- Anotações essenciais
- Clientes de um SLSB
- Implicações do “stateless” sobre uma aplicação
- EJBs chamando outros EJBs
- Alterando nomes JNI de EJBs
- Fachadas e VOs
Processos de Negócios como Stateful Session EJBs
- Estado de negócio x Estado da interfaces
- HTTP Session x SFSB
- Como o cliente mantém a referência a um SFSB
- Passivação, ativação e destruição de um SFSB
Conectores e fontes de dados
- Injeção de Datasources
- Sessões de E-mail
- Outros conectores JCA e integração com o legado
- Configuração de Datasources e Mail Sessions no JBoss AS
Transações em EJBs
- Transações locais x distribuídas
- Transações não são apenas com banco de dados!
- Anotações transacionais
- Consultas simples x Consultas com intenção de atualização
- Transações e SFSB
Persistência com JPA
- O que é ORM
- Mapeando entidades (classes) simples
- CRUD
- Lazy loading de atributos
- Consultas JPQL
- Projeções e agregados
- Consultas Criteria
- Detachando e reconectando entidades
Mapeando Relacionamentos e Herança
- Tipos de relacionamentos
- Relacionamentos em Java x BD Relacional
- Relacionamentos x Coleções
- Estratégias para mapear herança
- Lazy loading para relacionamentos
- Navegando relacionamentos via JPQL x junções
- Evitando o SELECT N+1 com fetch join
- Projeções e agregados em junções
Restringindo o Acesso
- O Modelo de segurança do Java EE
- Segurança declarativa no ejb-jar.xml e via anotações
- Configurando security domains no JBoss AS
- Segurança na camada de negócios x autenticação na camada de apresentação
Agendamento de tarefas
- EJB Timers
- Agendamento no deploy
Messageria com JMS e MDBs
- O que é um MOM
- Conceitos do JMS
- Publicando mensagens via um Session Bean
- Consumindo mensagens em um MDB
- Tratando falhas em MDBs
Conectando as Camadas com CDI
- Os conceitos de IoC e DI
- Anotações do CDI
- Contextos e conversações
Expondo EJBs como Web Services
- O que são Web Services
- SOAP x REST
- JAX-RPC, JAX-WS, JAXB e JAX-RS
- Anotações de WS para EJB
- Consumindo Web Services
Interceptadores
- Requisitos ortogonais e aspectos
- Inteceptadores para EJBs
Performance e Escalabilidade
- SQL Nativo e Stored Procedures com JPA
- “Limpando” SFSBs antes de passivar
- O JCA é seu amigo!
- Cuidado com o Lazy loading
- Geração de chaves primárias / ids
- Transações abortadas e retries
- Fachadas e Vos ainda são relevantes?
Caso faça o curso na modalidade EAD, para acompanhar este curso pela Internet com qualidade, é necessário que você tenha uma infraestrutura mínima com as seguintes características:
Importante: Não é possível fazer o curso com conexão discada. Também não recomendamos conexões 3G.
Curso à distância
75 horas, nas quais:
28 horas de aulas síncronas ao vivo com o professor através de vídeo-conferência.
45 horas assíncronas obrigatórias para melhor desempenho do aluno. Estas horas são controladas pelo aluno que deverá ler o material didático, documentações e tutoriais indicados pelo instrutor, participar do fórum de dúvidas e discussões, auto-estudo de vídeos e exercícios dirigidos para assimilar o conteúdo.
2 horas de ambientação para apresentação da Metodologia TripleClass e do ambiente de ensino à distância da 4Linux.
Este é um curso complementar para quem já completou a formação Java EE ou tem conhecimentos equivalentes. O curso Desenvolvendo Portlets Java EE - 495 da 4Linux capacitará o aluno a entender as tecnologias envolvidas num portal corporativo baseado nos padrões da plataforma Java EE. Durante as aulas, serão abordados os conceitos de portlets, portlet container, portais e portlet bridge e o aluno aprenderá criar, depurar, empacotar e instalar portlets tanto em um portlet container isolado, como em um ambiente completo de portal.
O treinamento mostrará, ainda, como criar uma aplicação construída em JSF para rodar como Portlets, como configurar o ambiente de desenvolvimento utilizando o IDE Eclipse, servidor de aplicações JBoss AS e Gerenciador de Portais eXo Platform.
A grande maioria do conteúdo do curso e, em particular, os exemplos de programação, funcionarão com poucas ou nenhuma alteração em outros servidores de aplicações e gerenciadores de portais aderentes aos padrões da plataforma Java EE, em especial às JSR's 168 e 286.
No decorrer do curso, o aluno será desafiado a construir portlets baseado num cenário totalmente prático e voltado para o mercado de trabalho.
As aulas do curso Desenvolvendo Portlets Java EE são práticas e os instrutores trazem para a sala de aula todo o know how adquirido no desenvolvimento de grandes aplicações, totalmente desenvolvidas utilizando a metodologia de portais como, por exemplo, o Feirão Habitacional da Caixa e o CadÚnico. (Cadastro de Beneficiários do Bolsa-Família), ambos projetos da Caixa Econômica Federal.
Desenvolvedores, arquitetos de softwares e outros profissionais da área de TI com experiência na plataforma Java EE que desejam:
Curso presencial:
Curso presencial:
40 horas
Noturno: 2 semanas de segunda a sexta, 4 horas diárias.
Diurno: 1 semana de segunda a sexta, 8 horas diárias.
Finais de Semana: 5 sábados ou domingos, 8 horas diárias.