Allan Larangeiras

Analista de Sistemas




read

Olá pessoal,

Fazer este exame da Sun não é tarefa fácil portanto elaborei um roteiro que me ajudou muito na hora da prova, espero que possa ajudar a mais alguém.

a) Verifique as opções de respostas.

  1. Se oferecerem as Opções: “Não Compila” e/ou “Lança exceção em tempo de execução”.

1.1. Verifique as Declarações de controle de acesso, se o código foi muito grande anote em uma folha de papel o nome do identificador e seu controle de acesso.

1.2. Muito cuidado com membros static (variáveis ou métodos) tentando acessar membros de instância. Costumam ser muito ilusórios.

1.3. Cuidados especiais com métodos subscritos. Lembre-se das regras de retornos covariantes, Exceções checadas e modificadores de acesso.

1.4. Avalie cada linha se questionando sobre tudo. Por exemplo:

x = x + getMontante(); //X recebe/passa a apontar, para x+ retorno de getMontante()

Será que eu tenho acesso a x?

Será que x foi realmente herdado? (membros private não são)

Se x é final eu não posso modificá-lo!

Será que eu tenho acesso ao método getMontante()? (membros instância e estáticos)

O que getMontante retorna? Pode ser somado a x? precisa de conversão (Casting)?

1.5. Apesar dos livros não darem muita atenção a este detalhe na prova, mas, Exceções Checadas precisam ser tratadas, portanto verifique se há alguma exceção checada que precisa ser tratada e não está sendo. Se houver um caso desses então não compila.

1.6. Após checar se o código compila, verifique se lança alguma exceção de tempo de execução, as quais não precisam ser tratadas.

1.7. ArrayIndexOutOfBoundsException é lançado quando se tenta acessar algum índice de array que não existe.

1.8. NullPointerException é lançado quando se tenta usar um membro nulo como um objeto.

1.9. ClassCastException é lançado quando se tenta converter um objeto em algo (na mesma hierarquia) que ele não é. Atenção para o “mesma hierarquia”, casting para algo que não está na mesma hierarquia nem compila.

1.10. Runtime Exceptions são muito traiçoeiras e muitas vezes não são óbvias. Tente colocar uma String em um TreeSet de Integers e você terá uma ClassCastException.

1.11. APIs pegam pelo pé. Saiba exatamente que métodos existem em cada API exigida pelo exame e que construtores sobrecarregados elas possuem. Que APIs podem ser instanciadas e que APIs recebem instâncias de métodos estáticos. Quais parâmentros são passados para cada método/construtor. Que exceções podem lançar.

1.12. Se precisar baixe o Jude (ou outro software para UML) e faça o modelo das APIs, com seus argumentos e retornos. Faça setas e aponte quais exceções são lançadas.

1.13. Se preocupe com as APIs de String, StringBuilder, StringBuffer, Coleções, IO, Parsing, Tokenização e Wrappers. Elas são bem extensas

  1. Se não oferecerem não se preocupe com isso.

b) Se você passou a letra “a” sem encontrar a resposta (não compila ou lança runtime exception) chegou a hora de saber o que acontece no código.

  1. Agora não tem segredo, precisa conhecer como a linguagem se comporta em certos casos.

  2. O que acontece quando instanciamos um novo objeto, seu construtor como reage? E as suas superclasses? Blocos init e static em que ordem são carregados?

OBS.: A palavra chave é “Questionamento”. Se pergunte na hora da prova sobre cada detalhe. Não passe como um trator por classes que parecem ser simples, os menores detalhes fazem as grandes diferenças, afinal, não existe meio-certo em múltipla-escolha.

Boa sorte para todos.

Abs.

Blog Logo

Allan Larangeiras


Publicado em

Image
Continuar lendo