1. Magno A. Cavalcante
1
Certificações JavaCertificações Java
Desmistificando a Java AssociateDesmistificando a Java Associate
Sun Certified Associate for the Java 2 Platform
Magno A. Cavalcante
(RioJUG Leader)
Julho/2006
2. Magno A. Cavalcante
2
O Que é Tecnologia Java?
Java é uma linguagem de programação de computadores de alto
nível, com sintaxe extremamente similar à do C++, e com
diversas características herdadas de outras linguagens, como
Smalltalk e Modula-3, criada pela Sun Microsystems.
É antes de tudo uma linguagem simples, fortemente tipada,
portável e independente de arquitetura de hardware, robusta,
segura, extensível, bem estruturada, distribuída, com suporte
nativo a processamento paralelo e desalocação automática de
memória por processo de coletor de lixo.
Inicialmente elaborada para ser a linguagem-base de projetos de
software para produtos eletrônicos, hoje a tecnologia se estende
aos mais diversos equipamentos e componentes eletrônicos que
tenham processador e área de memória, mesmo que bem
pequenos.
3. Magno A. Cavalcante
3
O Que é Tecnologia Java?
Atualmente chamamos Java de tecnologia ou plataforma, e não
simplesmente de linguagem por causa de seu amplo suporte aos
mais diversos tipos de sistemas de processamento.
A tecnologia Java divide-se em blocos de APIs (Application
Program Interfaces) para diferentes níveis de capacidade de
processamento.
Como requisito básico temos a JSE – Java Standard Edition,
destinada a computadores pessoais e pequenos servidores.
Em função das necessidades do usuário, existem:
JEE – Java Enterprise Edition, para sistemas de grande porte e
servidores;
JME – Java Micro Edition, para sistemas de pequeno porte e
embarcados;
JavaCard, para operação de SIM Cards ou chips passivos.
6. Magno A. Cavalcante
6
Tecnologia Java –
Histórico de Versões
1.0 – 1995: versão inicial;
1.1 – 1997: AWT, Inner Classes, JavaBeans, JDBC, RMI;
1.2 (Playground) – 1998: Reflection, Swing, compilador JIT,
Java Plug-in, Java IDL for CORBA, Collections;
1.3 (Kestrel) – 2000: HotSpot JVM, RMI for CORBA,
JavaSound, JNDI, Platform Debugger;
1.4 (Merlin) – 2002: expressões regulares, Exception Chaining,
New I/O, Logger, XML parser, XSLT processor, extensões de
criptografia e segurança (JCE, JSSE, JAAS);
5.0 (Tiger) – 2004: generics, autoboxing/unboxing,
metadados, enumerações, loop for estendido;
6.0 (Mustang) – 2006 ou 2007: projeto GlassFish, Java
Compiler API, Pluggable Annotation Processing API, XML Digital
Signatures, melhorias no diagnóstico de OutOfMemoryError,
melhorias na JVM e no Debugger.
7.0 (Dolphin) – 2008 ou 2009
7. Magno A. Cavalcante
7
Java SE 5.0 – Novos
Recursos
Autoboxing/Unboxing
Type-safe enumerations
Varargs
Static import
Loop “for” estendido (“foreach”)
Generics
8. Magno A. Cavalcante
8
Contexto Atual Sobre
Tecnologia Java
Desde seu lançamento, em maio de 1995, a plataforma Java foi
adotada mais rapidamente do que qualquer outra linguagem de
programação na história da computação.
Em 2003 Java atingiu a marca de 4 milhões de desenvolvedores
em todo mundo. Java continuou e continua crescendo, e hoje é
com certeza um padrão para o mercado oferecendo qualidade,
performance e segurança ainda sem nenhum competidor a
altura.
Java tornou-se popular pelo seu uso na Internet e hoje possui
seu ambiente de execução presente em web browsers,
mainframes, diversos Sistemas Operacionais, celulares,
PalmTops, PDAs, automóveis, aviões, robôs e cartões
inteligentes.
9. Magno A. Cavalcante
9
Contexto Atual Sobre
Tecnologia Java
Em 2005 comemorou-se 10 anos do surgimento oficial da
tecnologia Java.
Java está presente em mais da metade do mercado mundial de
desenvolvimento de software.
Hoje é a principal linguagem utilizada em pesquisas relacionadas
a software ou que utilizem software, em todo o mundo.
É a linguagem preferida da NASA para controle dos novos robôs
de exploração espacial.
Está sendo utilizada pela Boeing para os novos sistemas de
controle de vôo autônomo.
10. Magno A. Cavalcante
10
Contexto Atual Sobre
Tecnologia Java
Apesar de Índia e China serem pólos de desenvolvimento de
software mundial, muitas empresas estrangeiras estão montando
fábricas de software no Brasil por causa da estabilidade
econômica e política de uma região sem conflitos e da baixa
ocorrência de desastres naturais.
Isso também estimula a concorrência entre as empresas
nacionais, gerando mais oportunidades para os profissionais
qualificados.
O profissional Java é mais valorizado porque para dominar a
tecnologia ele precisa conhecer conceitos acadêmicos do ciclo de
vida de software.
Ainda hoje existe muita carência de profissionais qualificados,
dados os amplos conhecimentos exigidos dos candidatos.
11. Magno A. Cavalcante
11
Certificações Java
Dos vários caminhos existentes para melhorar o seu fator de
empregabilidade, o mais objetivo de todos é a busca por possuir
o maior número de certificações internacionais que for possível.
Porém, é muito importante ressaltar que o profissional também
deverá ter cursado um curso de graduação de tecnologia em uma
universidade que seja reconhecida pelo mercado.
Em Java, as duas certificações “de entrada” para o profissional
são a Sun Certified Associate for the Java 2 PlatformSun Certified Associate for the Java 2 Platform
e a Sun Certified Programmer for the Java 2Sun Certified Programmer for the Java 2
Platform, Standard EditionPlatform, Standard Edition, já que as mesmas não têm
outras certificações como pré-requisito.
Mas antes de estudar para uma certificação em Java você deve
fortalecer seus conhecimentos de programação estruturada,
construção de compiladores e construção de sistemas
operacionais. Invista tempo com isso, e sua capacidade de
entendimento da tecnologia vai aumentar muito.
12. Magno A. Cavalcante
12
Contexto Atual Sobre
Tecnologia Java
“As empresas estão procurando profissionais que saibam muito,
sejam bem capacitados, experientes e com conhecimento sólido
da plataforma. A razão é simples: os investimentos em TI estão
cada vez mais curtos e sendo medidos milimetricamente. Sabe-
se exatamente o que se quer e com que tipo de retorno.
Desperdícios não são mais tolerados.” *
“Para se capacitar, o profissional tem várias alternativas: cursos,
livros, revistas, sites, e, sem dúvida alguma, o auto-aprendizado
(toda a especificação do Java é pública e está disponível a
qualquer pessoa). Além disso, há também uma outra maneira
interessante de penetrar nesse mercado de trabalho:
participando, como voluntário, em grupos de usuários e em
projetos de desenvolvimento de software livre em Java, o
profissional pode iniciar sua rede de contatos e, ao mesmo
tempo, ganhar experiência real de trabalho.” *
* por Eduardo Ramos, colunista do TI Master, outubro/2003.
14. Magno A. Cavalcante
14
Um grupo de cientistas colocou cinco macacos em uma jaula. No meio, uma
escada e, sobre ela, um cacho de bananas.
Quando um macaco subia na escada para pegar as bananas, os cientistas
jogavam um jato de água fria com uma mangueira de incêndio nos que estavam
no chão. Depois de certo tempo, quando algum macaco ia subir a escada, os
outros o pegavam e o enchiam de pancada. Com mais algum tempo, nenhum
macaco subia mais a escada, apesar da tentação de comer as bananas.
Então, os cientistas substituíram um dos macacos por um outro novo. A
primeira coisa que ele fez foi subir a escada, dela sendo retirado pelos outros, que
o surraram. Depois de algumas surras, o novo integrante do grupo não subia mais
a escada.
Um segundo foi substituído e o mesmo ocorreu, tendo o primeiro substituto
participado com entusiasmo na surra ao novato.
Um terceiro foi trocado e o mesmo ocorreu. Um quarto, e afinal, o último dos
veteranos foi substituído.
Os cientistas então ficaram com um grupo de cinco macacos que, mesmo nunca
tendo tomado um banho frio, continuavam batendo naquele que tentasse pegar
as bananas.
Se possível fosse perguntar a algum deles porque eles batiam em quem
tentasse subir a escada, com certeza a resposta seria: "Não sei, mas as coisas
sempre foram assim por aqui". (autor desconhecido)
Mudanças no Cotidiano, Os Macacos
16. Magno A. Cavalcante
16
Sun Certified Associate
for the Java 2 Platform
Destina-se a programadores de nível médio ou a profissionais da indústria
de software que trabalhem em projetos utilizando a plataforma Java.
O candidato deverá ter experiência com HTML, JavaScript, XML, SQL,
TCP-IP.
O candidato deverá ter experiência com UML e conceitos e modelagem
com orientação a objetos.
O candidato deverá ter experiência com programação em Java, APIs Java
SE, Java EE, Java ME e Web Services.
A Quem Se Destina
17. Magno A. Cavalcante
17
Sun Certified Associate
for the Java 2 Platform
Programadores de nível médio;
Programadores oriundos de outras tecnologias;
Estudantes que queiram tornar-se programadores Java;
Gerentes de projetos que trabalham com a tecnologia Java;
Gerentes de TI.
Perfil dos Candidatos
18. Magno A. Cavalcante
18
Sun Certified Associate
for the Java 2 Platform
Descrever e comparar tipos primitivos (inteiros, ponto flutuante, booleanos
e caracteres), tipos enumerados e objetos;
Descrever e comparar classes concretas, classes abstratas, interfaces e
como se aplica a herança a estes elementos;
Descrever e comparar composições de classes, associações (incluindo
multiplicidades um-para-um, um-para-muitos e muitos-para-muitos) e
navegação pelas associações;
Descrever o ocultamento de informações (usando atributos privados e
métodos), encapsulamento e exposição da funcionalidade dos objetos
utilizando métodos públicos;
Objetivos – Conceitos Fundamentais de Orientação
a Objetos
19. Magno A. Cavalcante
19
Sun Certified Associate
for the Java 2 Platform
Descrever as convenções para JavaBeans, como os métodos pré-fixados
“setter”, “getter” e “is”;
Descrever como se aplica o polimorfismo a classes e interfaces;
Descrever e aplicar o princípio da “programação para interfaces”.
Objetivos – Conceitos Fundamentais de Orientação
a Objetos
20. Magno A. Cavalcante
20
Sun Certified Associate
for the Java 2 Platform
Reconhecer a representação UML para classes, incluindo atributos e
operações, classes abstratas e interfaces;
Reconhecer a representação UML para herança (implementação concreta,
abstrata e interfaces);
Reconhecer a representação UML para modificadores de visibilidades dos
atributos da classes (private, default, protected e public);
Reconhecer a representação UML para associações de classes,
composições, indicadores de multiplicidade da associação e navegação
pelos indicadores das associações.
Objetivos – Representação UML para Conceitos de
Orientação a Objetos
21. Magno A. Cavalcante
21
Sun Certified Associate
for the Java 2 Platform
Verificar exemplos de código utilizando o operador “new”;
Desenvolver código que utilize tipos primitivos; tipos enumerados,
referências a objetos e reconhecer literais para estes tipos;
Desenvolver código que declare classes concretas, classes abstratas,
interfaces; código que suporte implementação e herança de interfaces;
que declare atributos de instância e métodos; que utilize modificadores de
acesso;
Desenvolver código que implemente associações simples de classes; que
implemente multiplicidade usando arrays e coleções;
Objetivos – Implementação Java para os Conceitos
de Orientação a Objetos
22. Magno A. Cavalcante
22
Sun Certified Associate
for the Java 2 Platform
Reconhecer código que implemente composições em contraste com
associações simples; que implemente corretamente navegação pelas
associações.
Desenvolver código que utilize polimorfismo para classes e interfaces; e
reconhecer código que utilize o princípio da “programação para
interfaces”.
Objetivos – Implementação Java para os Conceitos
de Orientação a Objetos
23. Magno A. Cavalcante
23
Sun Certified Associate
for the Java 2 Platform
Descrever e comparar 3 tipos de instruções básicas: atribuição, condições
booleanas e iterações. E dada a descrição de um algoritmo, selecionar o
tipo apropriado de instrução para o projeto do algoritmo;
Dado um algoritmo como pseudo-código, determinar o escopo correto
para uma variável utilizada. Desenvolver código que declare variáveis em
um dos seguintes escopos: variáveis de instância, parâmetros de métodos
e variáveis locais
Dado um algoritmo como pseudo-código, desenvolver código de método
que implemente instruções de acesso condicional (if, switch), de iterações
(for, for-each, while, do-while), de atribuição, instruções break e continue
para controle de fluxo dentro de blocos swith e blocos de iterações;
Objetivos – Projeto e Implementação de
Algoritmos
24. Magno A. Cavalcante
24
Sun Certified Associate
for the Java 2 Platform
Dado um algoritmo com múltiplas entradas e uma saída, desenvolver
código de método que implemente usando parâmetros de método, um tipo
de retorno e uma instrução de retorno. Reconhecer os efeitos quando
referências a objetos ou primitivos são passados como parâmetros para
métodos que os modificam.
Dado um algoritmo como pseudo-código, desenvolver código que aplique
os operadores apropriados, incluindo operações de atribuição (limitado a:
=, +=, -=), operadores aritméticos (limitado a: +, -, *, /, %, ++, --),
operadores relacionais (limitado a: <, <=, >, >=, ==, !=), operadores lógicos
(limitado a:!, &&, ||) para produzir o resultado esperado. Escrever código
que determine a igualdade entre 2 objetos e entre 2 primitivos;
Desenvolver código que utilize o operador de concatenação (+), e os
seguintes métodos da classe String: charAt, indexOf, trim, substring,
replace, length, startsWith, endsWith.
Objetivos – Projeto e Implementação de
Algoritmos
25. Magno A. Cavalcante
25
Sun Certified Associate
for the Java 2 Platform
Descrever o propósito dos pacotes na linguagem Java, e reconhecer o uso
apropriado das instruções import e package;
Demonstrar o uso apropriado do comando “javac” (incluindo as opções de
linha de comando –d e –classpath);
Demonstrar o uso apropriado do comando “java” (incluindo as opções de
linha de comando –classpath, -D e –version);
Descrever o propósito e tipos de classes para os seguintes pacotes Java:
java.awt, javax.swing, java.io, java.net, java.util.
Objetivos – Fundamentos de Desenvolvimento em
Java
26. Magno A. Cavalcante
26
Sun Certified Associate
for the Java 2 Platform
Distinguir as características básicas das 3 plataformas Java: JSE, JME,
JEE. E dada a finalidade de uma arquitetura de alto nível, selecionar a
apropriada plataforma ou plataformas Java que se aplicam;
Descrever os benefícios e características básicas de RMI e
processamento paralelo com multithreading;
Descrever os benefícios e características básicas de JDBC, SQL e
tecnologias de SGBD e persistência de dados;
Descrever os benefícios e características básicas de JNDI, sistemas de
mensagens assíncronas e tecnologias JMS.
Objetivos – Plataformas Java e Integração de
Tecnologias
27. Magno A. Cavalcante
27
Sun Certified Associate
for the Java 2 Platform
Descrever as características básicas, benefícios e desvantagens da
criação de clientes leves usando HTML e JavaScript, e soluções para
configuração e publicação dos recursos relacionados;
Descrever as características básicas, benefícios, desvantagens e soluções
para configuração e publicação dos recursos relacionados a criação de
clientes com JME midlets;
Descrever as características básicas, benefícios, desvantagens e soluções
para configuração e publicação dos recursos relacionados a criação de
clientes pesados usando Applets;
Descrever as características básicas, benefícios, desvantagens e soluções
para configuração e publicação dos recursos relacionados a criação de
clientes pesados usando Swing.
Objetivos –Tecnologias para o Lado Cliente
28. Magno A. Cavalcante
28
Sun Certified Associate
for the Java 2 Platform
Descrever as características de uso, benefícios e desvantagens de: EJB,
servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (incluindo
SOAP, UDDI, WSDL, e XML), e JavaMail;
Descrever as características de uso, benefícios e desvantagens de
Servlets e JSP no suporte a clientes leves com HTML;
Descrever as características de uso, benefícios e desvantagens de EJBs:
session, entity e message-driven beans;
Descrever as características básicas de uso, benefícios e desvantagens
ao utilizar tecnologias JEE no lado servidor, descrevendo e comparando a
camada web (web-tier), a camada de negócios (business-tier) e a camada
de integração de sistemas (EIS tier).
Objetivos –Tecnologias para o Lado Servidor
29. Magno A. Cavalcante
29
Sun Certified Associate
for the Java 2 Platform
Código: 310-019
Preço: US$ 100.00
Pré-requisitos: Não Tem
Idioma: Português e Inglês
Tipo de Exame: Questões de Múltipla Escolha e de Arrastar e Soltar
Número de Questões: 51
Pontuação Mínima: 68% (35 questões)
Duração: 115 minutos (média de 2 minutos por questão)
O Exame
30. Magno A. Cavalcante
30
Sun Certified Associate
for the Java 2 Platform
Sedimente os seus conhecimentos de HTML, JavaScript, XML, SQL e
TCP-IP estudando através de livros e apostilas;
Adquira um bom livro sobre tecnologia Java para ser o seu livro de
“cabeceira”, e estude-o do início ao fim, implementando em código-fonte
todos os exercícios;
Estude conceitos de análise e modelagem orientada a objetos utilizando
UML, seja através de um livro ou de apostilas capturadas na Internet;
Estude o tutorial do Java Standard versão 5.0, que pode ser capturado
direto do website da Sun Microsystems;
Não esqueça que RMI e JNDI são recursos nativos do Java Standard;
Como se Preparar
31. Magno A. Cavalcante
31
Sun Certified Associate
for the Java 2 Platform
Estude o tutorial do J2EE, disponível para download no website da Sun.
Procure na Internet tutoriais sobre Web Services em Java;
Leia mensalmente as revistas Java Magazine e Mundo Java;
Se puder pagar, faça uma formação completa de desenvolvedor Java em
algum dos centros de treinamento existentes;
Troque idéias com seus colegas de trabalho sobre tópicos da certificação;
Estude sobre a evolução dos sistemas de 1, 2, 3 e n camadas, e sobre
quais são as tecnologias presentes atualmente em cada camada;
Estude sobre padrões de projeto (design patterns);
Participe de um fórum de discussões sobre Java;
Faça muitos simulados e exercícios práticos do tipo “E se eu fizer isso...”
Como se Preparar
32. Magno A. Cavalcante
32
Faça o download dos códigos-fontes do livro “Java Como Programar – 6a.
Edição”, a partir do website do Deitel, e estude os capítulos que se
enquadram nos objetivos da certificação.
Procure por simulados do exame na Internet. Repita os testes até o ponto
em que você estiver obtendo uma média de acertos superior a 90% na
maioria deles;
Não se esqueça: as certificações se baseiam no fato de que o
profissional tem disponível apenas um editor de texto tipo MS Notepad ou
Unix VI, e nada além disso.
Como se Preparar
Sun Certified Associate
for the Java 2 Platform
33. Magno A. Cavalcante
33
Adquirindo um Voucher
No Brasil, telefone para 0800-557863 durante o horário comercial;
Ao ser atendido, informe que deseja adquirir um voucher para realizar
prova de certificação;
Informe os três primeiros números do código da certificação (em geral é
310);
O valor atual do voucher é R$ 330,00
Após pagar o boleto bancário que você vai receber por e-mail, você
receberá em sua casa um envelope com a documentação sobre aquele
voucher;
Você terá um ano, a partir da data de emissão do voucher, para usá-lo
antes que ele perca a validade;
Ou então, marque e pague seu exame direto no site da Prometric, com
cartão de crédito internacional.
Contactando os Serviços Educacionais da Sun
Microsystems do Brasil
34. Magno A. Cavalcante
34
Fazendo o Exame
Cadastre-se no website de certificações da Prometric.com;
Procure por centros de exame autorizados na sua cidade;
Visite pessoalmente os centros autorizados para selecionar o que melhor
se enquadra nas suas expectativas;
No website, selecione um local de realização, o código e nome do exame,
escolha uma data e informe o código do voucher;
No dia do exame, procure chegar com 30 minutos de antecedência ao
local de realização;
Dê preferência em resolver primeiro às questões mais simples. Procure
deixar questões tipo Drag & Drop e sobre threads para o final;
Após o exame, verifique seus pontos obtidos.
Registrando-se na Prometric.com
37. Magno A. Cavalcante
37
Referências
Java Como Programar; 6a. Edição; Deitel; Editora Pearson Education.
UML – Guia do Usuário; Booch, Rumbauch, Jacobson; Editora Campus.
Tutorial do J2EE (tradução); Bodoff; Editora Ciência Moderna.
Core J2EE Patterns; Dan Malks, Deepak Alur, John Crupi; Editora
Campus.
Head First Java, 2nd Edition; Kathy Sierra, Bert Bates; Editora O'Reilly &
Associates.
Livros
38. Magno A. Cavalcante
38
Referências
Sun Java Technology Certification Paths (
www.sun.com/training/certification/java/index.html)
Java Ranch's (www.javaranch.com/certfaq.jsp)
UML for the Java Associate (www.hfoobook.com/pdf/hfoo-
associateuml.pdf)
Marcus Green's Certification (www.jchq.net)
Java Enterprise Edition Specification
(jcp.org/aboutJava/communityprocess/pr/jsr244/index.html)
Java Micro Edition Documentation (java.sun.com/j2me/docs/)
DEITEL Online (www.deitel.com)
Internet
39. Magno A. Cavalcante
39
Referências
J2SE 5.0 in a Nutshell
(java.sun.com/developer/technicalArticles/releases/j2se15/)
The All-New Java 2 Platform, Standard Edition (J2SE) 5.0 Platform:
Programming with the New Language Features in J2SE 5.0
(java.sun.com/developer/technicalArticles/releases/j2se15langfeat/)
Using and Programming Generics in J2SE 5.0
(java.sun.com/developer/technicalArticles/J2SE/generics/index.html)
Java Community Process (www.jcp.org)
RioJUG (www.riojug.org)
DFJUG (www.dfjug.org)
SouJava (www.soujava.org.br)
Internet
40. Magno A. Cavalcante
40
Referências
JavaFree (www.javafree.com.br)
GUJ (www.guj.com.br)
Serviços Educacionais da Sun Microsystems do Brasil
(www.sun.com.br/service/educacao/certificacoes)
Thomson Prometric (www.prometric.com)
TI Master (www.timaster.com.br)
Internet
41. Magno A. Cavalcante
41
Agradecemos a sua participação.
Obrigado!
Magno A. Cavalcante
magno@riojug.org
RioJUG Leader
riojug-owner@yahoogroups.com
RioJUG Leaders