Magno A. Cavalcante
1
www.riojug.org
Desde 2001 difundindo a
tecnologia
Java no Rio de Janeiro
Hoje, mais de 1200 membros
...
Magno A. Cavalcante
2
Desmistificando aDesmistificando a
SCPJ 5.0 (Tiger)SCPJ 5.0 (Tiger)
Sun Certified Programmer for the...
Magno A. Cavalcante
3
O Que é Tecnologia Java?
 Java é uma linguagem de programação de computadores de alto
nível, com si...
Magno A. Cavalcante
4
O Que é Tecnologia Java?
 Atualmente chamamos Java de tecnologia ou plataforma, e não
simplesmente ...
Magno A. Cavalcante
5
James Gosling, um dos criadores da tecnologia Java.
Magno A. Cavalcante
6
APIs Java
Magno A. Cavalcante
7
Tecnologia Java –
Histórico de Versões
 1.0 – 1995: versão inicial;
 1.1 – 1997: AWT, Inner Classe...
Magno A. Cavalcante
8
Contexto Atual Sobre
Tecnologia Java
 Desde seu lançamento, em maio de 1995, a plataforma Java foi
...
Magno A. Cavalcante
9
Contexto Atual Sobre
Tecnologia Java
 Em 2005 comemorou-se 10 anos do surgimento oficial da
tecnolo...
Magno A. Cavalcante
10
Contexto Atual Sobre
Tecnologia Java
 Apesar de Índia e China serem pólos de desenvolvimento de
so...
Magno A. Cavalcante
11
Contexto Atual Sobre
Tecnologia Java
 “As empresas estão procurando profissionais que saibam muito...
Magno A. Cavalcante
12
Certificações Java
 Dos vários caminhos existentes para melhorar o seu fator de
empregabilidade, o...
Magno A. Cavalcante
13
Certificações Java
Magno A. Cavalcante
14
Um grupo de cientistas colocou cinco macacos em uma jaula. No meio, uma
escada e, sobre ela, um cac...
Magno A. Cavalcante
15
Sun Certified Associate
for the Java 2 Platform
Magno A. Cavalcante
16
Sun Certified Associate
for the Java 2 Platform
 Destina-se a programadores de nível médio ou a pr...
Magno A. Cavalcante
17
Sun Certified Associate
for the Java 2 Platform
 Programadores de nível médio;
 Programadores ori...
Magno A. Cavalcante
18
Sun Certified Associate
for the Java 2 Platform
 Descrever e comparar tipos primitivos (inteiros, ...
Magno A. Cavalcante
19
Sun Certified Associate
for the Java 2 Platform
 Descrever as convenções para JavaBeans, como os m...
Magno A. Cavalcante
20
Sun Certified Associate
for the Java 2 Platform
 Reconhecer a representação UML para classes, incl...
Magno A. Cavalcante
21
Sun Certified Associate
for the Java 2 Platform
 Verificar exemplos de código utilizando o operado...
Magno A. Cavalcante
22
Sun Certified Associate
for the Java 2 Platform
 Reconhecer código que implemente composições em c...
Magno A. Cavalcante
23
Sun Certified Associate
for the Java 2 Platform
 Descrever e comparar 3 tipos de instruções básica...
Magno A. Cavalcante
24
Sun Certified Associate
for the Java 2 Platform
 Dado um algoritmo com múltiplas entradas e uma sa...
Magno A. Cavalcante
25
Sun Certified Associate
for the Java 2 Platform
 Descrever o propósito dos pacotes na linguagem Ja...
Magno A. Cavalcante
26
Sun Certified Associate
for the Java 2 Platform
 Distinguir as características básicas das 3 plata...
Magno A. Cavalcante
27
Sun Certified Associate
for the Java 2 Platform
 Descrever as características básicas, benefícios ...
Magno A. Cavalcante
28
Sun Certified Associate
for the Java 2 Platform
 Descrever as características de uso, benefícios e...
Magno A. Cavalcante
29
Sun Certified Associate
for the Java 2 Platform
 Código: 310-019
 Preço: US$ 100.00
 Pré-requisi...
Magno A. Cavalcante
30
Sun Certified Associate
for the Java 2 Platform
 Sedimente os seus conhecimentos de HTML, JavaScri...
Magno A. Cavalcante
31
Sun Certified Associate
for the Java 2 Platform
 Estude o tutorial do J2EE, disponível para downlo...
Magno A. Cavalcante
32
Java SE 5.0 (Tiger)
Magno A. Cavalcante
33
Java SE 5.0 – Novos
Recursos
 Autoboxing/Unboxing
 Type-safe enumerations
 Varargs
 Static impo...
Magno A. Cavalcante
34
Java SE 5.0 - Autoboxing
public class AutoboxingUnboxing {
public static void main(String[] args) {...
Magno A. Cavalcante
35
Java SE 5.0 - Autoboxing
private static void comAutoboxingUnboxing() {
Integer fator1 = 15; // Auto...
Magno A. Cavalcante
36
Java SE 5.0 - Autoboxing
public class BoxingCompare {
public static void main(String... args) {
int...
Magno A. Cavalcante
37
Java SE 5.0 - Autoboxing
static void testWrapperSecond(int a, Integer b){
System.out.print("int a =...
Magno A. Cavalcante
38
Java SE 5.0 - Enums
import java.text.NumberFormat;
import static java.lang.System.out;
public class...
Magno A. Cavalcante
39
Java SE 5.0 - Enums
private static void imprimirResultado(Medalha medalha) {
String colocacao = "";...
Magno A. Cavalcante
40
Java SE 5.0 - Enums
out.printf("%s colocadonMedalha de %snPremio de %snn",
colocacao, medalha,
Numb...
Magno A. Cavalcante
41
Java SE 5.0 - Varargs
public class SemVarargs {
static String calcula(String s, int a) {
return s +...
Magno A. Cavalcante
42
Java SE 5.0 - Varargs
public class ComVarargs {
static String calcula(String s, int... a) {
int tot...
Magno A. Cavalcante
43
Java SE 5.0 – Static
import
import static java.lang.Math.*;
public class StaticMath {
private doubl...
Magno A. Cavalcante
44
Java SE 5.0 – Static
import
import static java.lang.Math.*;
public class StaticImportTest {
public ...
Magno A. Cavalcante
45
Java SE 5.0 – Generics
public class SimpleGeneric {
public <E> void metodoSimples(E value) {
System...
Magno A. Cavalcante
46
Java SE 5.0 – Generics
public class ArrayTestGenerics {
public static <E> void printArray(E... inpu...
Magno A. Cavalcante
47
Java SE 5.0 – Generics
public class ColecoesSemGenerics {
public static void main(String[] args) {
...
Magno A. Cavalcante
48
Java SE 5.0 – Generics
public class ColecoesComGenerics {
public static void main(String[] args) {
...
Magno A. Cavalcante
49
Java SE 5.0 – Generics
class SequenciaStrings {
public void semGenerics(List seq, char primChar) {
...
Magno A. Cavalcante
50
Java SE 5.0 – Generics
public void comForeach(List<String> seq, char primChar) {
for (String i : se...
Magno A. Cavalcante
51
Java SE 5.0 – Generics
public class ColecaoNumber<T extends Number> {
List<T> cj;
public ColecaoNum...
Magno A. Cavalcante
52
Java SE 5.0 – Generics
public void extractNumbers() {
for (Number n : cj) {
System.out.printf("%ft"...
Magno A. Cavalcante
53
Java SE 5.0 – Generics
public class StackGeneric<T> implements Cloneable {
private ArrayList<T> ite...
Magno A. Cavalcante
54
Java SE 5.0 – Generics
public T pop() {
if (items.size() == 0) {
throw new EmptyStackException();
}...
Magno A. Cavalcante
55
Java SE 5.0 – Generics
protected StackGeneric<T> clone() {
try {
StackGeneric<T> s = (StackGeneric<...
Magno A. Cavalcante
56
Java SE 5.0 – Generics
public static void main(String[] args) {
StackGeneric<String> s = new StackG...
Magno A. Cavalcante
57
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
Magno A. Cavalcante
58
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Programadores experientes ...
Magno A. Cavalcante
59
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que dec...
Magno A. Cavalcante
60
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que dec...
Magno A. Cavalcante
61
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que imp...
Magno A. Cavalcante
62
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Reconhecer o efeito que um...
Magno A. Cavalcante
63
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que uti...
Magno A. Cavalcante
64
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que uti...
Magno A. Cavalcante
65
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Reconhecer e utilizar padr...
Magno A. Cavalcante
66
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Escrever código que define...
Magno A. Cavalcante
67
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que imp...
Magno A. Cavalcante
68
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Dado um cenário de projeto...
Magno A. Cavalcante
69
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Desenvolver código que faç...
Magno A. Cavalcante
70
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Dado um exemplo de código ...
Magno A. Cavalcante
71
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Reconhecer os comportament...
Magno A. Cavalcante
72
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Código: 310-055
 Preço: U...
Magno A. Cavalcante
73
Sun Certified Programmer for the
Java 2 Platform, Standard
Edition 5.0 Upgrade Exam
 Código: 310-0...
Magno A. Cavalcante
74
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Estude os fundamentos da l...
Magno A. Cavalcante
75
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Leia especialmente os arti...
Magno A. Cavalcante
76
Sun Certified Programmer
for the Java 2 Platform,
Standard Edition 5.0
 Faça o download dos código...
Magno A. Cavalcante
77
Adquirindo um Voucher
 No Brasil, telefone para 0800-557863 durante o horário comercial;
 Ao ser ...
Magno A. Cavalcante
78
Fazendo o Exame
 Cadastre-se no website de certificações da Prometric.com;
 Procure por centros d...
Magno A. Cavalcante
79
Score
Magno A. Cavalcante
80
Cartão de Certificação
Nominal
Magno A. Cavalcante
81
Referências
 Java Como Programar; 6a. Edição; Deitel; Editora Pearson Education.
 UML – Guia do U...
Magno A. Cavalcante
82
Referências
 Sun Java Technology Certification Paths (www.sun.com/training/
certification/java/ind...
Magno A. Cavalcante
83
Referências
 J2SE 5.0 in a Nutshell (java.sun.com/developer/technicalArticles/releases
/j2se15/)
...
Magno A. Cavalcante
84
Referências
 JavaFree (www.javafree.com.br)
 GUJ (www.guj.com.br)
 Serviços Educacionais da Sun ...
Magno A. Cavalcante
85
Desmistificando aDesmistificando a
SCPJ 5.0 (Tiger)SCPJ 5.0 (Tiger)
O RioJUG agradece a sua partici...
Próximos SlideShares
Carregando em…5
×

Desmistificando a Certificação Sun Java Programmer

795 visualizações

Publicada em

Informações úteis para quem deseja se especializar e quer prestar o exame para a certificação de Sun Java Programmer.

Publicada em: Tecnologia
1 comentário
1 gostou
Estatísticas
Notas
  • Olá,se possível poderias me enviar este slide por email?.Meu email jotajunior@hotmail.com, agradeceria muito se possível!
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
Sem downloads
Visualizações
Visualizações totais
795
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desmistificando a Certificação Sun Java Programmer

  1. 1. Magno A. Cavalcante 1 www.riojug.org Desde 2001 difundindo a tecnologia Java no Rio de Janeiro Hoje, mais de 1200 membros ativos
  2. 2. Magno A. Cavalcante 2 Desmistificando aDesmistificando a SCPJ 5.0 (Tiger)SCPJ 5.0 (Tiger) Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 Magno A. Cavalcante (RioJUG Leader) Janeiro/2006
  3. 3. Magno A. Cavalcante 3 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.
  4. 4. Magno A. Cavalcante 4 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.
  5. 5. Magno A. Cavalcante 5 James Gosling, um dos criadores da tecnologia Java.
  6. 6. Magno A. Cavalcante 6 APIs Java
  7. 7. Magno A. Cavalcante 7 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
  8. 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. 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. 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. 11. Magno A. Cavalcante 11 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.
  12. 12. Magno A. Cavalcante 12 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.
  13. 13. Magno A. Cavalcante 13 Certificações Java
  14. 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
  15. 15. Magno A. Cavalcante 15 Sun Certified Associate for the Java 2 Platform
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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  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. 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. 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. 32. Magno A. Cavalcante 32 Java SE 5.0 (Tiger)
  33. 33. Magno A. Cavalcante 33 Java SE 5.0 – Novos Recursos  Autoboxing/Unboxing  Type-safe enumerations  Varargs  Static import  Loop “for” estendido (“foreach”)  Generics
  34. 34. Magno A. Cavalcante 34 Java SE 5.0 - Autoboxing public class AutoboxingUnboxing { public static void main(String[] args) { semAutoboxingUnboxing(); comAutoboxingUnboxing(); } private static void semAutoboxingUnboxing() { Integer fator1 = new Integer(15); int fator2 = 10; int produto = fator1.intValue() * fator2; System.out.println("Sem autoboxing/unboxing:"); System.out.printf("%d x %d = %dnn", fator1, fator2, produto); }
  35. 35. Magno A. Cavalcante 35 Java SE 5.0 - Autoboxing private static void comAutoboxingUnboxing() { Integer fator1 = 15; // Autoboxing int fator2 = 10; int produto = fator1 * fator2; // Unboxing System.out.println("Com autoboxing/unboxing:"); System.out.printf("%d x %d = %dnn", fator1, fator2, produto); } }
  36. 36. Magno A. Cavalcante 36 Java SE 5.0 - Autoboxing public class BoxingCompare { public static void main(String... args) { int x = 3, y=3; Integer z = new Integer(3); Integer k = new Integer(3); testWrapperFirst(x, y); // true testWrapperSecond(z, y); // true testWrapperFirst(z, k); // false } static void testWrapperFirst(Integer a, Integer b){ System.out.print("Integer a = " + a); System.out.println("tInteger b = " + b); System.out.println((a == b) ? true : false); }
  37. 37. Magno A. Cavalcante 37 Java SE 5.0 - Autoboxing static void testWrapperSecond(int a, Integer b){ System.out.print("int a = " + a); System.out.println("tInteger b = " + b); System.out.println((a == b) ? true : false); } }
  38. 38. Magno A. Cavalcante 38 Java SE 5.0 - Enums import java.text.NumberFormat; import static java.lang.System.out; public class Premiacao { private enum Medalha { OURO ("Ouro"), PRATA ("Prata"), BRONZE ("Bronze"); final String s; Medalha(String s) { this.s = s; } public String toString() { return this.s; } }
  39. 39. Magno A. Cavalcante 39 Java SE 5.0 - Enums private static void imprimirResultado(Medalha medalha) { String colocacao = ""; double premio = 0.0; switch (medalha) { case OURO: colocacao = "Primeiro"; premio = 5000.0; break; case PRATA: colocacao = "Segundo"; premio = 2000.0; break; case BRONZE: colocacao = "Terceiro"; premio = 1000.0; }
  40. 40. Magno A. Cavalcante 40 Java SE 5.0 - Enums out.printf("%s colocadonMedalha de %snPremio de %snn", colocacao, medalha, NumberFormat.getCurrencyInstance().format(premio)); } public static void main(String[] args) { imprimirResultado(Medalha.OURO); imprimirResultado(Medalha.PRATA); imprimirResultado(Medalha.BRONZE); } }
  41. 41. Magno A. Cavalcante 41 Java SE 5.0 - Varargs public class SemVarargs { static String calcula(String s, int a) { return s + " = " + (a); } static String calcula(String s, int a, int b) { return s + " = " + (a + b); } static String calcula(String s, int a, int b, int c) { return s + " = " + (a + b + c); } public static void main(String[] riojug) { System.out.print(" Valor -> " + calcula("var", 2, 5)); } }
  42. 42. Magno A. Cavalcante 42 Java SE 5.0 - Varargs public class ComVarargs { static String calcula(String s, int... a) { int total = 0; for (int i : a) { total += i; } return s + " = " + total; } public static void main(String... riojug) { System.out.print(" Valor -> " + calcula("var", 2, 5)); } }
  43. 43. Magno A. Cavalcante 43 Java SE 5.0 – Static import import static java.lang.Math.*; public class StaticMath { private double getCosseno(){ double r = cos(PI / 2.5); return r; } public static void main(String... args){ StaticMath sm = new StaticMath(); System.out.println(sm.getCosseno()); } }
  44. 44. Magno A. Cavalcante 44 Java SE 5.0 – Static import import static java.lang.Math.*; public class StaticImportTest { public static void main(String args[]) { System.out.printf("sqrt(900.0) = %.1fn", sqrt(900.0)); System.out.printf("ceil(-9.8) = %.1fn", ceil(-9.84)); System.out.printf("floor(-9.84) = %.1fn", floor(-9.84)); System.out.printf("round(-9.84) = %dn", round(-9.84)); System.out.printf("rint(-9.85) = %.2fn", rint(-9.85)); System.out.printf("abs(-9.8) = %.1fn", abs(-9.8)); System.out.printf("log(E) = %.1fn", log(E)); System.out.printf("cos(0.0) = %.1fn", cos(0.0)); System.out.printf("ulp(9.85) = %.2fn", ulp(9.85)); } }
  45. 45. Magno A. Cavalcante 45 Java SE 5.0 – Generics public class SimpleGeneric { public <E> void metodoSimples(E value) { System.out.println(" Elemento Generico: " + value.getClass().getName() + " => " + value); } public static void main(String... riojug) { SimpleGeneric t = new SimpleGeneric(); t.metodoSimples(" riojug e scpj 5.0 "); t.metodoSimples(new Integer(7)); t.metodoSimples((new float[] {1.2F, 2.3F, 3.4F})); t.metodoSimples(3.1415); } }
  46. 46. Magno A. Cavalcante 46 Java SE 5.0 – Generics public class ArrayTestGenerics { public static <E> void printArray(E... inputArray) { for (E element : inputArray) { System.out.printf("%s ", element); } System.out.println(); } public static void main(String... args) { Integer[] integerArray = {1, 2, 3, 4, 5, 6}; Double[] doubleArray = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6}; Character[] characterArray = {'H', 'E', 'L', 'L', 'O'}; printArray(integerArray); printArray(doubleArray); printArray(characterArray); } }
  47. 47. Magno A. Cavalcante 47 Java SE 5.0 – Generics public class ColecoesSemGenerics { public static void main(String[] args) { colecoesSemGenerics(); } private static void colecoesSemGenerics() { List nomes = new ArrayList(); // Runtime Fail by ClassCastException // nomes.add(new StringBuffer("Joaquim")); nomes.add("Joaquim"); nomes.add("Joao"); nomes.add("Maria"); String primeiroNome = null; primeiroNome = ((String) nomes.get(0)).toUpperCase(); System.out.println(primeiroNome); } }
  48. 48. Magno A. Cavalcante 48 Java SE 5.0 – Generics public class ColecoesComGenerics { public static void main(String[] args) { colecoesComGenerics(); } private static void colecoesComGenerics() { List<String> nomes = new ArrayList<String>(); /* Compilation Fail: The method add(String) in the * type List<String> is not applicable * for the arguments (StringBuffer) */ // nomes.add(new StringBuffer("Joaquim")); nomes.add("Joaquim"); nomes.add("Joao"); nomes.add("Maria"); String primeiroNome = nomes.get(0).toUpperCase(); System.out.println(primeiroNome); } }
  49. 49. Magno A. Cavalcante 49 Java SE 5.0 – Generics class SequenciaStrings { public void semGenerics(List seq, char primChar) { for (Iterator i = seq.iterator(); i.hasNext();) { if (((String) i.next()).charAt(0) != primChar) { i.remove(); } } } public void comGenerics(List<String> seq, char primChar) { for (Iterator<String> i = seq.iterator(); i.hasNext();) { if (i.next().charAt(0) != primChar) { i.remove(); } } }
  50. 50. Magno A. Cavalcante 50 Java SE 5.0 – Generics public void comForeach(List<String> seq, char primChar) { for (String i : seq) { if (i.charAt(0) != primChar) { seq.remove(i); } } } }
  51. 51. Magno A. Cavalcante 51 Java SE 5.0 – Generics public class ColecaoNumber<T extends Number> { List<T> cj; public ColecaoNumber() { cj = new ArrayList<T>(); } public void loadNumber(T number) { cj.add(number); }
  52. 52. Magno A. Cavalcante 52 Java SE 5.0 – Generics public void extractNumbers() { for (Number n : cj) { System.out.printf("%ft", n.doubleValue()); } } public static void main(String... var) { ColecaoNumber cn = new ColecaoNumber(); cn.loadNumber(new Integer(2)); cn.loadNumber(4.1357); cn.loadNumber(7L); cn.extractNumbers(); } }
  53. 53. Magno A. Cavalcante 53 Java SE 5.0 – Generics public class StackGeneric<T> implements Cloneable { private ArrayList<T> items; private int top = 0; public StackGeneric() { items = new ArrayList<T>(); } public StackGeneric(T... ts ) { items = new ArrayList<T>(); for (T a : ts) { items.add(a); } } public void push(T item) { items.add(item); top++; }
  54. 54. Magno A. Cavalcante 54 Java SE 5.0 – Generics public T pop() { if (items.size() == 0) { throw new EmptyStackException(); } T obj = items.get(--top); return obj; } public boolean isEmpty() { if (items.size() == 0) return true; else return false; }
  55. 55. Magno A. Cavalcante 55 Java SE 5.0 – Generics protected StackGeneric<T> clone() { try { StackGeneric<T> s = (StackGeneric<T>) super.clone(); s.items = (ArrayList<T>) items.clone(); return s; } catch (CloneNotSupportedException e) { throw new InternalError(); } }
  56. 56. Magno A. Cavalcante 56 Java SE 5.0 – Generics public static void main(String[] args) { StackGeneric<String> s = new StackGeneric<String>(); s.push("1o."); s.push("2o."); s.push("3o."); StackGeneric<String> s2 = s.clone(); System.out.printf("%s t %s t %s t %s", s.pop(), s.pop(), s.pop(), s2.pop()); //3o. 2o. 1o. 3o. } }
  57. 57. Magno A. Cavalcante 57 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0
  58. 58. Magno A. Cavalcante 58 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Programadores experientes que utilizam a linguagem Java.  Esta certificação fornece claras evidências que o programador entende a sintaxe básica e a estrutura da linguagem Java e que pode criar aplicações Java que serão executadas tanto em sistemas servidores quanto em sistemas desktops, utilizando o JSE 5.0. A Quem Se Destina
  59. 59. Magno A. Cavalcante 59 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que declare classes (incluindo classes abstratas e todas as formas de classes aninhadas/nested), interfaces, enums, incluindo o uso apropriado das instruções package e import (incluindo static imports);  Desenvolver código que declare uma interface. Desenvolver código que implemente ou estenda uma ou mais interfaces. Desenvolver código que declare uma classe abstrata. Desenvolver código que declare estenda uma classe abstrata;  Desenvolver código que declare, inicialize e utilize tipos primitivos, arrays, enums e objetos, suportando variáveis estáticas, de instância e locais, utilizando identificadores corretos para os nomes das variáveis; Objetivos – Declaração, Inicialização e Escopo
  60. 60. Magno A. Cavalcante 60 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que declare métodos estáticos e não-estáticos simultaneamente, e – se for o caso – que utilizem nomes de métodos aderentes ao padrão JavaBeans. Desenvolver código que declare e utilize uma lista de argumentos de tamanho variável;  Dado um código de exemplo, determine se um método está sobrescrevendo ou sobrecarregando outro método, além de identificar valores de retorno corretos (incluindo valores covariantes) para o método;  Dado um conjunto de classes e superclasses, desenvolver construtores para uma ou mais classes. Dada uma declaração de classe, determinar se um construtor default vai ser criado, e se for, determinar o comportamento daquele construtor. Dada uma lista de classes aninhadas e não- aninhadas, escrever código que instancie estas classes. Objetivos – Declarações, Inicialização e Escopo
  61. 61. Magno A. Cavalcante 61 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que implemente uma instrução if ou switch; e identificar tipos de argumentos corretos para estas instruções;  Desenvolver código que implemente todas as formas de loops e iterações, incluindo o uso de for, o loop for estendido (for-each), do, while, labels, break, continue; e interpretar os valores tratados pelo contador do loop durante e depois da execução do loop;  Desenvolver código que faça uso de assertions, e distinguir apropriadamente o uso incorreto de assertions;  Desenvolver código que faça uso de exceptions e clausulas que tratam exceptions (try, catch, finally). Declarar métodos e sobrescrita de métodos que lançam exceptions; Objetivos – Controle de Fluxo
  62. 62. Magno A. Cavalcante 62 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Reconhecer o efeito que uma exception produz em um ponto específico dentro de um pedaço de código-fonte;  Reconhecer as diferenças entre Runtime Exception, Checked Exception, ou Error;  Reconhecer situações que poderão acabar em um dos seguintes casos de lançamento de exceptions ou errors: ArrayIndexOutOfBoundsException, ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError, NoClassDefFoundError. Entender quais destes são lançados pela JVM e reconhecer situações em que outros devem ser lançados programaticamente. Objetivos – Controle de Fluxo
  63. 63. Magno A. Cavalcante 63 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que utilize classes wrapper (como Boolean, Character, Double, Integer, etc.) e condições de ocorrência de autoboxing e unboxing.  Discutir as diferenças entre as classes String, StringBuilder e StringBuffer.  Dado um cenário envolvendo navegação pelo sistema de arquivos, leitura ou escrita de arquivos, desenvolver a solução adequada usando as seguintes classes (algumas vezes em combinação) do pacote java.io: BufferedReader,BufferedWriter, File, FileReader, FileWriter, PrintWriter;  Desenvolver código que serialize e/ou de-serialize objetos usando as seguintes classes (algumas vezes em combinação) do pacote java.io: DataInputStream, DataOutputStream,FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream, Serializable; Objetivos – Conteúdo da API
  64. 64. Magno A. Cavalcante 64 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que utilize as APIs do pacote java.text corretamente para formatar e transformar datas, números e valores monetários para uma localidade específica. Dado um cenário, determinar os métodos apropriados para utilizar se você quer exibir dados com a localidade padrão ou para uma específica localidade. Descrever o propósito e o uso da classe java.util.Locale;  Escrever código que utilize APIs dos pacotes java.util e java.util.regex para formatar e transformar strings ou streams de dados. Para strings, escrever código que utilize as classes Pattern e Matcher e o método String.split; Objetivos – Conteúdo da API
  65. 65. Magno A. Cavalcante 65 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Reconhecer e utilizar padrões de expressões regulares para combinações de strings (limitado a: . (dot), * (star), + (plus), ?, d, s, w, [], ()). O uso de *, +, e ? estará limitado a quantificadores e o operador () somente vai ser usado como um mecanismo de agrupamento, enão para captura de conteúdo nas combinações. Para streams, escrever código que use as classes Formatter e Scanner e os métodos PrintWriter.format/printf. Reconhecer e utilizar parâmetros de formatação (limitado a: %b, %c, %d, %f, %s) para formatar strings. Objetivos – Conteúdo da API
  66. 66. Magno A. Cavalcante 66 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Escrever código que define, instancia e inicia novas threads usando java.lang.Thread e/ou java.lang.Runnable;  Reconhecer os estados em que uma thread pode existir, e identificar caminhos em que uma thread pode transitar entre um estado e outro;  Dado um cenário, escrever código que faça uso correto de “object locking” para proteger variáveis estáticas ou de instância contra problemas de acesso concorrente;  Dado um cenário, escrever código que faça uso correto de wait, notify, notifyAll. Objetivos – Concorrência
  67. 67. Magno A. Cavalcante 67 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que implemente encapsulamento compacto, baixo acoplamento e alta coesão em classes, descrevendo os respectivos benefícios;  Dado um cenário, desenvolver código que demonstre o uso de polimorfismo. Determinar quando a conversão (casting) de tipos será necessária e reconhecer erros do compilador versus erros de tempo de execução relacionados ao casting da referência de objetos;  Expor o efeito dos modificadores de acesso, na herança de objetos, com respeito a construtores, variáveis estáticas ou de instância e métodos estáticos ou de instância;  Dado um cenário, desenvolver código que declare e/ou invoque sobrescrita ou sobrecarga de métodos; e código que declare e/ou invoque superclasse, sobrescrita ou sobrecarga de construtores;  Desenvolver código que implemente relacionamentos entre classes do tipo “is-a” e/ou “has-a”. Objetivos – Conceitos de Orientação a Objetos
  68. 68. Magno A. Cavalcante 68 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Dado um cenário de projeto, determinar quais classes de coleções e/ou interfaces devem ser usadas para implementar corretamente aquele projeto, incluindo o uso da interface Comparable;  Distinguir entre a forma correta e a incorreta de sobrescrever os métodos correspondentes hashCode e equals, e explicar a diferença entre o operador == e o método equals;  Escrever código que utilize as versões genéricas da API de Collections, em particular as interfaces Set, List, Queue, Map e as classes que as implementam;  Reconhecer as limitações dos elementos não-genéricos da API de Collections e como fazer para modificar o código para utilizar as versões genéricas; Objetivos – Coleções e Generics
  69. 69. Magno A. Cavalcante 69 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Desenvolver código que faça uso apropriado de parâmetros de tipo genéricos na declaração de classes ou interfaces, variáveis de instância, argumentos de métodos e tipos de retorno. Escrever métodos genéricos ou métodos que façam uso de marcadores de tipos e entender as similaridades e diferenças entre estas duas abordagens;  Utilizar as capacidades do pacote java.util para escrever código que manipule uma lista para ordenação, execução de busca binária, ou conversão de um array para uma lista;  Utilizar as interfaces java.util.Comparator e java.lang.Comparable para modificar a forma de ordenação de listas e de arrays. Além disso, reconhecer o efeito da “ordenação natural” de classes wrapper para primitivos e da classe java.lang.String na ordenação. Objetivos – Coleções e Generics
  70. 70. Magno A. Cavalcante 70 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Dado um exemplo de código e um cenário, escrever código que utilize os modificadores de acesso apropriados, declarações de pacotes e instruções de importação para interagir (acesso direto ou por herança) com o código no exemplo;  Dado um exemplo de classe e uma linha de comando, determinar o comportamento esperado em tempo de execução;  Determinar o efeito a respeito de referências de objetos e valores primitivos quando eles são passados como parâmetros para métodos que realizam atribuições e outras operações de modificação sobre os parâmetros;  Dado um exemplo de código, reconhecer o ponto no qual um objeto torna- se elegível para a coleta automática de lixo (garbage collection), e determinar o que é e o que não é garantido pelo sistema de coleta automática de lixo; Objetivos – Fundamentos
  71. 71. Magno A. Cavalcante 71 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Reconhecer os comportamentos de System.gc e finalization;  Dado um nome completo de uma classe que é publicada dentro e/ou fora de um arquivo JAR, construir a estrutura de diretórios apropriada para aquela classe;  Dado um exemplo de código e um CLASSPATH, determinar se o CLASSPATH vai ser compatível para a compilação completa e correta do código;  Escrever código que aplique corretamente os operadores apropriados, incluindo operadores de atribuição (limitado a: =, +=, -=), operadores aritméticos (limitado a: +, -, *, /, %, ++, --), operadores relacionais (limitado a: <, <=, >, >=, ==, !=), o operador instanceof, operadores lógicos(limitado a: &, |, ^, !, &&,||), ) e o operador condicional ( ? : ), para produzir o resultado desejado;  Escrever código que determine a igualdade entre dois objetos e dois primitivos. Objetivos – Fundamentos
  72. 72. Magno A. Cavalcante 72 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Código: 310-055  Preço: US$ 150.00  Pré-requisitos: Não Tem  Tipo de Exame: Questões de Múltipla Escolha e de Arrastar e Soltar  Número de Questões: 73  Pontuação Mínima: 59% (44 questões)  Duração: 175 minutos (média de 2 minutos por questão) O Exame
  73. 73. Magno A. Cavalcante 73 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 Upgrade Exam  Código: 310-056  Preço: US$ 100.00  Pré-requisitos: versão anterior (1.4) do exame Sun Certified Programmer for Java 2 Platform  Tipo de Exame: Questões de Múltipla Escolha e de Arrastar e Soltar  Número de Questões: 46  Pontuação Mínima: 59% (28 questões)  Duração: 105 minutos (média de 2 minutos por questão) O Exame de Upgrade
  74. 74. Magno A. Cavalcante 74 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Estude os fundamentos da linguagem por um livro em português, fazendo todos os exercícios recomendados;  Peça emprestado outros livros diferentes para seus colegas e estude-os;  Faça o download do Java Standard Tutorial e estude os tópicos que estão relacionados diretamente com o exame, implementando todos os exemplos. Faça variações sobre os exemplos;  Estude os artigos técnicos escritos por Rogério Moraes de Carvalho sobre os novos recursos do Java 5.0 (Tiger) nos boletins do DFJUG do primeiro semestre de 2005;  Procure por artigos sobre o Java 5.0 nas revistas Java Magazine e Mundo Java de 2005 e de 2006; Como se Preparar
  75. 75. Magno A. Cavalcante 75 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  Leia especialmente os artigos escritos pelo colunista Osvaldo Pinali Doederlein, na revista Java Magazine. Ele é membro individual do Java Community Proccess e participa ativamente das definições do JSE;  Estude o artigo de Gilad Bracha, com o nome “Generics in the Java Programming Language”, de 5 de julho de 2004;  Estude e implemente os exemplos do artigo “J2SE 5.0 in a Nutshell”;  Estude o “White Paper Java Platform Migration Guide, Version 1.3 to 5.0”, disponível no website da Sun Microsystems;  Estude o artigo “The All-New Java 2 Platform, Standard Edition (J2SE) 5.0 Platform: Programming with the New Language Features in J2SE 5.0”;  Importante: utilize fortemente em sua preparação todo material que você conseguir sobre a certificação anterior (J2SE 1.4); Como se Preparar
  76. 76. Magno A. Cavalcante 76 Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0  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.  Sempre procure exercitar a prática dos exemplos, variando as opções com curiosidade, aplicando a técnica do “E se eu fizer esta alteração...”;  Procure por simulados do exame na Internet, tanto do 1.4 quanto do 5.0. 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 VI, e nada além disso. Como se Preparar
  77. 77. Magno A. Cavalcante 77 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. Contactando os Serviços Educacionais da Sun Microsystems do Brasil
  78. 78. Magno A. Cavalcante 78 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
  79. 79. Magno A. Cavalcante 79 Score
  80. 80. Magno A. Cavalcante 80 Cartão de Certificação Nominal
  81. 81. Magno A. Cavalcante 81 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
  82. 82. Magno A. Cavalcante 82 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
  83. 83. Magno A. Cavalcante 83 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
  84. 84. Magno A. Cavalcante 84 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
  85. 85. Magno A. Cavalcante 85 Desmistificando aDesmistificando a SCPJ 5.0 (Tiger)SCPJ 5.0 (Tiger) O RioJUG agradece a sua participação. Obrigado! Magno A. Cavalcante magno@riojug.org RioJUG Leader riojug-owner@yahoogroups.com RioJUG Leaders Janeiro/2006

×