terça-feira, 11 de janeiro de 2011

Tópicos da SCJP - OCP

Olá pessoal, neste post vou explicar um pouco dos tópicos da SCJP versão 6.0
que estão descritos neste site
aqui


E ao longo do tempo vou criando posts descrevendo cada tópico e vou colocando um link para cada um aqui neste mesmo post.

Tópicos cobrados na prova:

1-  Declarações, Inicializações e Escopo de código
      - Declarações de variaveis, escopo de visibilidade ou seja onde as variaveis são visiveis dentro de um código e inicializações obrigatorias para compilar seu código.

2 - Controle de fluxo de dados
      - Controle de decisões lógicas utilização de blocos, IF, ELSE, SWITCH, etc..

3 - Conceitos de API
      - Utilização de Wrapping, Boxing e Unboxing, diferenças entre Strings mutaveis e não mutaveis, ler e escrever arquivos, classes de funcionalidade para Parsear datas, numeros, e o uso correto do Locale do Java, e por fim como utilizar o pacote Regex (meu favorito e mto dificil) para verificar expressões regulares

4 - Concorrência
      - Como criar novas Threads de execução utilizando java.lang.Thread e java.lang.Runnable
      - Reconher os estados em que uma Thread pode existir e identificar meios em que cada Thread pode transitar de um estado para outro
      - Dado um cenario escrever um código que faz uso apropriado de locking de objetos para protejer blocos estaticos ou de instancia de problemas de acessos de concorrência.

 5 - Conceitos de Orientação a Objetos
       - Desenvolver um código que implementa encapsulamento, baixo acoplamento, e alta coesão em classes e descrever seus beneficios
      - Dado um cenario desenvolver código que usa polimorfismo, determinar quando casting será necessário e reconhecer erros de Compilador e erros de Runtime relacionados com Casting de referencias
     - Explicar efeitos dos modificadores de acesso nas heranças com respeito a construtores, instancias ou variaveis estáticas
    - Dado um cenario desenvolver código que declara ou invoca metodos sobreescritos ou sobrecarregados e código que declara e/ou invoca superclasses ou construtores sobrecarregados
    - Desenvoler códigos que implementam relacionamentos "is-a" ("é um") e ou "has-a" ("tem um")

6 - Coleções / Generics
      - Dado um cenario, determinar quais coleções devem ser usadas apropriadamente para implementar aquele design especifico, incluindo o uso da interface Comparable (muito importante)
      - Destinguir entre sobrescritas corretas e incorretas do método hashCode e do método equals e explicar a diferença entre == e o método equals
      - Escrever códigos que usam versões genericas da Collections API, em particular, as interfaces Set, List e Map e suas classes de implementação. Reconheçer limitações de coleções não genericas e como refatora-las em coleções genericas, e por fim escrever código que utiliza as interfaces NavigableSet e NavigableMap  (novo na versão 1.6 da prova)
      - Desenvolver códigos que fazem uso correto de tipos de paramêtros de declaração em classe/interfaces, instancia de variaveis, argumentos de métodos, e tipos de retorno, e escrever código métodos genéricos ou métodos que fazem usos de tipos "Wildcard" (tipos Coringa) e entender similaridades e diferenças entre essas duas abordagens
      - Usar as capacidades do pacote java.util para escrever código que efetua sorting em listas, criando uma busca binaria, ou convertendo uma lista para um array, usar capacidades do pacote para escrever código para fazer sorting de arrays utilizando uma busca binaria ou convertendo array para lista, usar as interfaces Comparator e Comparable para afetar sorting de listas e arrays, e mais pra frente reconhecer o efeito da ordenação natural de classes wrappers primitivas e Strings nos sortings

7 - Fundamentos
     - Dado um exemplo de código e um cenário, escrever códigos que usam apropriadamente modificadores de acesso, declaração de pacotes e imports para interagir com (atravez de acesso ou herança) o código no exemplo
     - Dado um exemplo de classe e uma linha de comando, determinar o comportamento experado de runtime
     - Determinar o efeito sobre uma referencia de objeto e valores primitivos quando são passados para metodos que fazem mudanças nos paramêtros.
     - Dado um exemplo de código reconhecer o ponto em que um objeto se torna elegivel para o GC (garbage collection) e determinar o que é e o que não é garantido pelo sistema de GC, e reconhecer os comportamentos do método Object.finalize()
     - Dado um full-qualified name de uma classe o que é compilado dentro ou fora do arquivo Jar, construção apropriada de uma estrutura de diretorio para aquela classe. Dado um exemplo de código e um classpath, determinar quando o classpath irá permitir o código compilar com sucesso.
     - Escrever um código que aplica corretamente operadores incluindo operadores de atribuição, aritiméticos, e relacionais, o operador instanceOf, operadores lógicos e o operador condicional  para produzir o resultado desejado.
     - Escrever um código que determina equalidade de dois objetos ou primitivos.

Nenhum comentário:

Postar um comentário