Workshop Certificação Oracle Associate, Java SE 5/6.



Documentos relacionados
Programação de Computadores - I. Profª Beatriz Profº Israel

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Java. Marcio de Carvalho Victorino

Programação Orientada a Objetos em Java

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Capítulo 4. Packages e interfaces

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

A Linguagem Java. Alberto Costa Neto DComp - UFS

2 Orientação a objetos na prática

Curso de Aprendizado Industrial Desenvolvedor WEB

Técnicas de Programação II

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Orientação a Objetos

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Análise de Programação

EMENTA DO CURSO. Tópicos:

Programação Orientada a Objetos. Encapsulamento

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Noções sobre Objetos e Classes

Módulo 07 Características Avançadas de Classes

POO Programação Orientada a Objetos. Classes em Java

Programação Orientada a Objetos

Orientação a Objetos com Java

Universidade Federal de Uberlândia

Módulo 06 Desenho de Classes

Exercícios de Revisão Java Básico

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

3 Classes e instanciação de objectos (em Java)

CURSO DE PROGRAMAÇÃO EM JAVA

Herança. Alberto Costa Neto DComp - UFS

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Mini-curso Gratuíto.

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Sobre o Professor Dr. Sylvio Barbon Junior

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

CURSO DESENVOLVEDOR JAVA Edição 2010

Tópicos em Engenharia de Computação

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

J2EE TM Java 2 Plataform, Enterprise Edition

Java para Desenvolvimento Web

Programação por Objectos. Java

Encapsulamento de Dados

Programação por Objectos. Java

JSP - ORIENTADO A OBJETOS

BSI UFRPE Prof. Gustavo Callou

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

SUN Camilo Lopes -Sun Certified Programmer Java

Unidade IV: Ponteiros, Referências e Arrays

UNIVERSIDADE FEDERAL DO PARANÁ

Prova Específica Cargo Desenvolvimento

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

insfcanceof new public switch transient while byte continue extends for int null

Sistemas Distribuídos

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

J2EE. J2EE - Surgimento

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Programação Orientada a Objetos (DPADF 0063)

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Introdução a Java. Hélder Nunes

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Guia de Fatores de Qualidade de OO e Java

Professor Antonio Benedito Coimbra Sampaio Jr

Curso de Pós-Graduação Desenvolvimento de Aplicativos Web

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Análise e Projeto Orientados por Objetos

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Introdução à linguagem

Sintaxe Básica de Java Parte 1

Programação por Objectos. Java

Curso de Extensão Programação Orientada a Objetos com Java. Última atualização: 25/05/2010

CONVENÇÃO DE CÓDIGO JAVA

FBV - Linguagem de Programação II. Um pouco sobre Java

JPA: Persistência padronizada em Java

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java Aula Introdutória. # História e Anatomia Java

Java II. Sérgio Luiz Ruivace Cerqueira

Documentação Usando o Javadoc

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Reuso com Herança a e Composiçã

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Orientação a Objetos

Padrão Arquitetura em Camadas

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Transcrição:

Workshop Certificação Oracle Associate, Java SE 5/6. Rodrigo C. de Azevedo Certified ScrumMaster Project Management Professional CompTIA Project+ OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate Sun Certified Associate for Java Platform Sun Certified Programmer Java 1.4, 5.0 e 6.0 Sun Certified Web Component Developer 1.4 e 5.0 Sun Certified Business Component Developer J2EE 1.3 Sun Certified Enterprise Architect [SCEA, Part I] Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 2 / 96 1

Roteiro Assuntos O que é a certificação? Porque se certificar? Mapa da certificação Certificações Oracle Novas Certificações Oracle Como marcar uma prova Visualizando as conquistas Oracle Certified Associate, Java SE 5/SE Oracle Certified Associate, Java SE 5/SE - Conteúdo Questões Agradecimento Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 3 / 96 O que é certificação? É projetado para que um profissional demonstre sua competência, dedicação e seja considerado confiável no campo altamente competitivo da tecnologia. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 4 / 96 2

Porque se certificar? Aumentar o conhecimento Aumentar a produtividade Diferencial no currículo Reconhecimento do mercado Salário Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 5 / 96 Mapa da certificação Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 6 / 96 3

Certificações Oracle Titulação na certificação SUN Titulação na certificação Oracle Sun Certified Java Associate (SCJA) Oracle Certified Associate, Java SE 5/SE 6 Sun Certified Java Programmer 5.0 (SCJP) Oracle Certified Professional, Java SE 5 Programmer Sun Certified Java Programmer 6.0 (SCJP) Oracle Certified Professional, Java SE 6 Programmer Sun Certified Java Developer (SCJD) Sun Certified Web Component Developer (SCWCD) EE5 Sun Certified Business Component Developer (SCBCD) EE5 Oracle Certified Master, Java SE6 Developer Oracle Certified Professional, Java EE 5 Web Component Developer Oracle Certified Professional, Java EE 5 Business Component Developer Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 7 / 96 Certificações Oracle Titulação na certificação SUN Sun Certified Developer for Java Web Services 5 (SCDJWS) Sun Certified Enterprise Architect (SCEA) EE5 Sun Certified Mobile Application Developer (SCMAD) Titulação na certificação Oracle Oracle Certified Professional, Java EE 5 Web Services Developer Oracle Certified Master, Java EE 5 Enterprise Architect Oracle Certified Professional, Java ME 1 Mobile Application Developer Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 8 / 96 4

Novas Certificações Oracle Titulação na certificação SUN Sun Certified JSP and Servlet Developer for the Java EE6 Platform Sun Certified EJB Developer for the Java EE6 Platform Sun Certified JPA Developer for the Java EE6 Platform Sun Certified Developer for the Java Web Services for the Java EE6 Sun Certified Developer for the JSF for the Java EE6 Platform Titulação na certificação Oracle Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Pages and Servlet Developer Oracle Certified Professional, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Oracle Certified Professional, Java Platform, Enterprise Edition 6 Java Persistence API Developer Oracle Certified Professional, Java Platform, Enterprise Edition 6 Web Services Developer Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Faces Developer Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 9 / 96 Como marcar uma prova Fazer o cadastro no site da Prometric. Antigamente era preciso entrar em contato com a Sun Education para a aquisição do voucher, atualmente com a Oracle, basta realizar o pagamento através de cartão de crédito no site Prometric. No momento do agendamento deve-se escolher o local e data para realização da prova. http://www.prometric.com/oracle/default.htm Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 10 / 96 5

Como marcar uma prova Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 11 / 96 Conquistas Alguns dias após a aprovação na prova escolhida, é possível visualizar sua certificação através do site Oracle Certification Database. https://i7lp.integral7.com/durango/do/login?ownername=sun&ch annel=sun&basechannel=sun&usertype=candidate Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 12 / 96 6

Conquistas Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 13 / 96 Oracle Certified Associate, Java SE 5/SE 6 Provê um ponto de entrada no desenvolvimento de aplicações ou gerenciamento de projeto de software utilizando tecnologia JAVA. Valida o conhecimento básico dos conceitos OO, de representação UML, da linguagem de programação JAVA e conhecimentos gerais da plataforma JAVA. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 14 / 96 7

Oracle Certified Associate, Java SE 5/SE 6 Exame CX-310-019 Duração: 115 minutos. Número de questões: 51. Percentual de acerto para aprovação: 68% (35 questões). Possui opção de Português (Brasil). Questões de múltipla-escolha e do tipo drag and drop. Custo: USD 125 (cerca de 215 reais) Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 15 / 96 Oracle Certified Associate, Java SE 5/SE 6 Conteúdo Seção 1: Conceitos fundamentais de Orientação a Objeto Seção 2: Representação UML dos conceitos de orientação a objeto Seção 3: Conceitos de Orientação a Objeto implementados em Java Seção 4: Projeto e Implementação de Algoritmo Seção 5: Fundamentos do desenvolvimento Java Seção 6: Plataforma Java e tecnologias de integração Seção 7: Tecnologias Cliente Seção 8: Tecnologias Servidor Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 16 / 96 8

Seção 1: Conceitos fundamentais de Orientação a Objeto 14 questões Conceitos de Orientação a Objeto Descrever, comparar e diferenciar os tipos primitivos (inteiros, pontos-flutuantes, boleanos e caracter), tipo enumeration e objetos. Descrever, comparar e diferenciar classes concretas, classes abstratas e interfaces e como aplicar herança. Descrever, comparar e diferenciar composições de classe, associações (incluindo multiplicidade: um-para-um, um-paramuitos e muitos-para-muitos), e navegação da associação. Descrever ocultação da informação (usando atributos e métodos privados), encapsulamento, e exposição de funcionalidade de objeto utilizando métodos públicos; descrever as convenções do JavaBean para métodos acessadores (getter e setter). Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 18 / 96 9

Conceitos de Orientação a Objeto Descrever polimorfismo e como se aplica a classes e interfaces, e descrever e aplicar o princípio de "programar para uma interface" (programar orientado a interface). Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 19 / 96 Conceitos de Orientação a Objeto Qual das opções abaixo não representa uma classe Wrapper? A. Char. B. Byte. C. Short. D. Boolean. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 20 / 96 10

Conceitos de Orientação a Objeto Encapsulamento A. Permite o reuso de um tipo existente e a extensibilidade. B. Diferentes comportamentos para a mesma definição de variável, dependendo do tipo do objeto. C. Permite modificar a implementação dos métodos sem alterar seu contrato. D. Permite dar um estado inicial ao objeto criado. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 21 / 96 Conceitos de Orientação a Objeto Um classe abstrata pode: Marque duas. A. Estender de várias classes abstratas. B. Estender de uma classe concreta. C. Estender de várias interfaces. D. Definir métodos concretos. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 22 / 96 11

Conceitos de Orientação a Objeto O que pode conter métodos abstratos? Marque duas. A. Classes abstratas B. Interfaces C. Enumerations D. Classes concretas Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 23 / 96 Conceitos de Orientação a Objeto Uma classe abstrata tem que conter pelo menos um método abstrato. A. Verdadeiro B. Falso Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 24 / 96 12

Conceitos de Orientação a Objeto Métodos abstratos NÃO podem ser: Marque 4. A. final B. private C. static D. protected E. synchronized Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 25 / 96 Conceitos de Orientação a Objeto Qual das opções abaixo representa o relacionamento entre Pessoa e Professor. A. Associação B. Herança C. Composição D. Nenhuma das anteriores. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 26 / 96 13

Conceitos de Orientação a Objeto Qual é o relacionamento entre Locador e Locatário? A. Herança B. Composição C. Associação D. Abstração Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 27 / 96 Conceitos de Orientação a Objeto O que é verdade sobre interfaces? Marque duas. A. Seus métodos são implicitamente abstratos. B. Seus métodos precisam ser explicitamente declarados como públicos. C. Suas variáveis não podem ser modificadas pelas classes que a implementam. D. Seus métodos precisam ser definidos por todas as classes que a implementam. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 28 / 96 14

Conceitos de Orientação a Objeto Quais opções abaixo definem corretamente o padrão JavaBean para métodos acessadores? Marque duas. A. Método getter e setter precisam ser públicos. B. Em propriedades boleanas, o método setter sempre começa com is. C. Método setter precisa ter o tipo da propriedade como retorno. D. Método setter precisa ter o tipo da propriedade como tipo do argumento. E. Método getter precisa ter o tipo da propriedade como tipo do argumento. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 29 / 96 Conceitos de Orientação a Objeto Qual afirmação é correta sobre classes abstratas? A. Não podem ter construtores. B. Seus métodos precisam ser marcados como final. C. Não podem ser estendidas por classes concretas. D. Não podem ser declaradas como final. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 30 / 96 15

Conceitos de Orientação a Objeto Quais trechos abaixo NÃO apresentam problemas? Marque duas. A. float f=5.5; B. double d = 10.0; long l = d; C. float f = (float) 100.00; double d = f; D. char c = A ; int i = c; Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 31 / 96 Conceitos de Orientação a Objeto Uma classe abstrata pode ter todos os métodos concretos. A. Verdadeiro B. Falso Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 32 / 96 16

Conceitos de Orientação a Objeto Qual é classificação do relacionamento entre interface e a classe que a implementa? A. É-UM B. TEM C. É-COMPOSTO-POR D. Nenhuma das anteriores. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 33 / 96 Seção 2: Representação UML dos conceitos de orientação a objeto 9 Questões 17

Representação UML Reconhecer a representação UML de classes (incluindo atributos e operações, classes abstratas e interfaces), representação UML de herança, representação UML para modificadores de visibilidade de membros de classe. Reconhecer a representação UML para associações de classe, composições, multiplicidade e navegação da associação. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 35 / 96 Representação UML O que é verdade sobre o diagrama de classes apresentado abaixo? A. A é composto por 1 ou * objetos do tipo B. B. B é composto por 1 ou * objetos do tipo A. C. A é associado com B. D. B é associado com A. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 36 / 96 18

Representação UML Quais das afirmações são verdadeiras? Marque duas. A. No diagrama de classe, o nome da classe é em negrito. B. Classes abstratas são representadas usando o texto <<abstract>>. C. Interfaces são representadas usando o texto <<inter>>. D. Métodos abstratos são representados em itálico. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 37 / 96 Representação UML Qual é o relacionamento que representa corretamente a relação entre A e B? A. A B. B C. C D. D E. E F. F Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 38 / 96 19

Representação UML Identifique a ordem correta abaixo de acordo com as visibilidades possíveis em UML: + # ~ A. público, privado, pacote, protegido B. público, protegido, privado, pacote C. público, privado, protegido, pacote D. privado, público, pacote, protegido Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 39 / 96 Representação UML Quais afirmações são verdadeiras sobre o diagrama de classes apresentado abaixo? Marque quatro. A. A, B e C são interfaces. B. X e Y são classes. C. A herda de B. D. B herda de A. E. X implementa C. F. X é composto de B e C. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 40 / 96 20

Representação UML Navegabilidade na associação é bidirecional ocorre quando há: Marque duas. A. Uma linha contínua. B. Uma linha contínua com setas em ambas as pontas. C. Multiplicidade 2 é ambas as pontas. D. A linha tem um losango em ambas as pontas. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 41 / 96 Representação UML O que representa na notação UML 0..1? A. Multiplicidade B. Navegabilidade C. Papéis D. Atributos Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 42 / 96 21

Representação UML O que é verdade sobre o diagrama de classes apresentado abaixo? A. B e A herda de C B. B e A implementam C. C. B e A é composto por C. D. B e A é associado com C. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 43 / 96 Representação UML Quais afirmações são verdade sobre o diagrama de classes apresentado abaixo? Marque duas. A. B é subclasse A. B. C é um subtipo de B. C. B é um subtipo de C. D. B implementa C. E. B está associado a C. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 44 / 96 22

Seção 3: Conceitos de Orientação a Objeto implementados em Java 9 questões Orientação Objeto e Java Desenvolver código que usa primitivos, tipos enumeration e referências de objeto, reconhecer literais desses tipos. Desenvolver código que declara classes concretas, classes abstratas e interfaces, códigos que fornecem implementação e herança de interface, código que declara atributos e métodos de instância e códigos que usam modificadores de acesso Java: privado e público. Desenvolver código que implementa associações de classes, código que implementa multiplicidade usando arrays, e reconhecer códigos que implementam composições e códigos que implementar corretamente a navegação na associação. Desenvolver código que usa polimorfismo para classes e interfaces, e reconhecer código que usa o princípio "programar para interface" (programar orientado a interface). Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 46 / 96 23

Orientação Objeto e Java interface X {} interface Y {} interface W extends X, Y { void fazalgo(); } public abstract class XPTO implements W {} A. Não compila. A interface X e Y precisam ter pelo menos 1 método. B. Não compila. A interface W deveria ter usado implements e não extends. C. Não compila. A interface não pode herdar de mais de 1 interface. D. Não compila, A classe XPTO não implementou o método fazalgo(). E. Não compila, pois a classe XPTO não tem métodos abstratos. F. Compila sem problemas. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 47 / 96 Orientação Objeto e Java De acordo com o código abaixo: interface Mamifero { void beberleite(); } class Felino implements Mamifero { public void beberleite() {} } class Gato extends Felino { public void beberleite() {} } Qual das opções abaixo está de acordo com o princípio programar orientado a interface? A. class Cliente { void fazalgo(mamifero m) { m.beberleite(); }} B. class Cliente { void fazalgo(felino f) { f.beberleite(); }} C. class Cliente { void fazalgo(gato g) { g.beberleite(); }} D. class Cliente { void fazalgo(cliente c) { c.beberleite(); }} Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 48 / 96 24

Orientação Objeto e Java Qual dos códigos abaixo pode ser inserido na classe? abstract class XPTO { // Inserir código } A. public void fazalgo(); B. abstract protected void fazalgo(); C. abstract void fazalgo() {} D. protected abstract void fazalgo() {} Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 49 / 96 Orientação Objeto e Java class SubClasse { static int x; private double d; protected boolean b; } class SuperClasse extends SubClasse { public static void main (String args[]) { SubClasse sub = new SuperClasse(); System.out.println(sub.x + + sub.d + + sub.b); } } A. Não compila. As variáveis não foram iniciadas. B. Não compila. Há uma variável static. C. Não compila. A variável d é privada. D. Compila corretamente e não imprime nada. E. Compila corretamente e imprime 0 0.0 false. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 50 / 96 25

Orientação Objeto e Java Uma pessoa pode ter zero ou um carro. Um carro pertence a uma única Pessoa. Que código abaixo retrata este relacionamento? (Pessoa conhece Carro) A. class Pessoa { Carro c; } class Carro{} B. class Pessoa { Carro c; } class Carro{ Pessoa[] p; } C. class Pessoa { List<Carro> c; } class Carro { Pessoa[] p; } D. class Pessoa { } class Carro { Pessoa p; } Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 51 / 96 Orientação Objeto e Java Se Mamifero é uma interface e Gato é uma classe concreta que implementa Mamifero. Quais dos trechos de códigos abaixo compilam sem problema? Marque duas. A. Mamifero m = new Mamifero(); B. Gato g = new Mamifero(); C. Mamifero m = new Gato(); D. Gato g = new Gato(); Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 52 / 96 26

Orientação Objeto e Java Uma pessoa tem nome e data de nascimento. Um funcionário é uma pessoa e tem matrícula e salário. Assumindo que a classe Pessoa já foi construída, o que é preciso ser colocado na classe Funcionário? Marque duas. A. Date datanascimento; B. String nome; C. int matricula; D. double salario; E. Pessoa p; F. Funcionario f; Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 53 / 96 Orientação Objeto e Java Quais dos trechos abaixo contendo declaração de enum são válidos? A. enum DiaSemana extends Enum { DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO}; B. enum DiaSemana { domingo, segunda, terca, quarta, quinta, sexta, sabado} C. enum DiaSemana { boolean diautil; DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO;} D. enum DiaSemana { DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO; boolean diautil; void fazalgo() {} } Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 54 / 96 27

Orientação Objeto e Java abstract class A { abstract void fazalgo(); } class B extends A { void fazalgo() { System.out.println( B ); } } class C { public static void main (String[] args) { B b = new A(); // linha 1 b.fazalgo(); /* linha 2 */ } } A. Não compila. Há um erro na linha 1. B. Não compila. Há um erro na linha 2. C. Imprime B. D. Não imprime nada. E. Nenhuma das anteriores Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 55 / 96 Seção 4: Projeto e Implementação de Algoritmo 7 Questões 28

Projeto e Implementação de Algoritmo Descrever, comparar e diferenciar os três tipos fundamentais de procedimentos: atribuição, condicional e iteração, e dado uma descrição de um algoritmo selecionar o tipo apropriado de procedimento. Dado um algoritmo em pseudo-código, desenvolver o código do método que implementa tal algoritmo usando procedimentos condicionais (if e switch), procedimentos de iteração (for, for-each, while e do-while), procedimentos de atribuição, e comandos break e continue para controlar o fluxo de um switch ou de um comando de iteração. Desenvolver código que usa o operador de concatenação (+), e os seguintes métodos da classe String: charat, indexof, trim, substring, replace, length, startswith e endswith. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 57 / 96 Projeto e Implementação de Algoritmo Dado um algoritmo com múltiplas entradas e saídas, desenvolver código que implementa o algoritmo usando os parâmetros do método, o tipo de retorno, e o comando return, e reconhecer o efeito quando uma referência de objeto ou primitivo são passados para métodos que os modificam. Dado um algoritmo em pseudo-código, desenvolver o código que corretamente aplica os operadores incluindo operadores de atribuição (somente: =, +=, -=), operadores aritméticos (somente: +, -, *, /, %, ++, --+, operadores relacionais (somente: <, <=, >, >=, ==,!=), operadores lógicos (somente:!, &&, ) para produzir os resultados desejados). Adicionalmente, escrever códigos que determinam a igualdade entre dois objetos ou dois primitivos. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 58 / 96 29

Projeto e Implementação de Algoritmo Ao executar o trecho abaixo, o que será impresso ao final? int i = 0, j = 0; boolean b = ((i++ == ++j && i-- == --j)); System.out.println(b + + i); A. false 0 B. true 0 C. false 1 D. true 1 Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 59 / 96 Projeto e Implementação de Algoritmo Qual é a saída gerada pelo código abaixo? String s1 = new String( oi ); String s2 = oi ; String s3 = oi ; System.out.println(s1 == s3); System.out.println(s2 == s3); System.out.println(s1.equals(s2)); A.true true true B.false true true C.false false true D.false true false E.true false false F.false false false G.true true false Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 60 / 96 30

Projeto e Implementação de Algoritmo Qual é o resultado ao compilar e executar o código abaixo? class XPTO { public static void main (String args[]) throws Exception { String s = abc ; s.replace( c, C ); s = s.substring(1); System.out.println(s); } } A. Erro de compilação B. Exceção ao executar C. Imprime abc D. Imprime abc E. Imprime bc F. Imprime bc Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 61 / 96 Projeto e Implementação de Algoritmo Qual das declarações de loop executam sem problemas? Marque duas. A. while(1) {} B. for (;;) {} C. do {} while (true) D. for (int i=0, j=0; i<10; i++) {} Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 62 / 96 31

Projeto e Implementação de Algoritmo O que acontecerá quando o trecho de código abaixo for compilado e executado? String s = new String ( ABCD ); s = s.substring(0,2); System.out.println(s); A. Não compila B. Imprime AB C. Imprime ABC D. Imprime ABCD Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 63 / 96 Projeto e Implementação de Algoritmo public class XPTO { public static void main (String[] args) { String a = new String( mno ); String b = a; fazalgo(b); b+= ab ; System.out.println(a + + b); } public static void fazalgo(string b) { b+= cd ; } } A. Imprime mno mnoab B. Imprime mnoab mnoab C. Imprime mnocdab mnocdab D. Imprime mnoab mnocdab E. Erro de compilação Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 64 / 96 32

Projeto e Implementação de Algoritmo Deve-se projetar uma classe XPTO com 2 atributos (quantidade e preço). O quantidade é comum a todos os objetos XPTO, enquanto o preço é único para cada objeto XPTO. Qual das opções abaixo projeta corretamente? A. class XPTO { int quantidade; double preco;} B. class XPTO {static int quantidade, static double preco;} C. class XPTO {static int quantidade, double preco;} D. Nenhuma das anteriores Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 65 / 96 Seção 5: Fundamentos do desenvolvimento Java 8 Questões 33

Fundamentos do desenvolvimento Java Descrever o propósito de pacotes na linguagem Java, e reconhecer o uso correto dos comandos import e package. Demonstrar o uso correto do comando "javac" (incluindo as opções de linha de comando: -d e -classpath), e demonstrar o uso correto do comando "java" (incluindo as opções de linha de comando: -classpath, -D e -version). Descrever o propósito e os tipos de classes dos seguintes pacotes: java.awt, javax.swing, java.io, java.net, java.util. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 67 / 96 Fundamentos do desenvolvimento Java O que é verdade sobre a opção jar? A. Pode ser utilizada no comando java. B. Pode ser utilizado no comando javac. C. Pode ser utilizado tanto com o comando java e javac. D. Nenhuma das anteriores. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 68 / 96 34

Fundamentos do desenvolvimento Java Classes AWT estão em: A. Pacote java.awt. B. Pacote javax.awt. C. Em java.awt e javax.awt. D. Nenhuma das opções. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 69 / 96 Fundamentos do desenvolvimento Java Na definição de um arquivo fonte para uma classe Java, qual opção deve ser declarada primeiro, se for necessária sua presença? A. Procedimentos de import. B. Declaração de package. C. Declaração de classe. D. Nenhuma das anteriores. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 70 / 96 35

Fundamentos do desenvolvimento Java O que é verdadeiro sobre a opção version? Marque três. A. Mostra informações sobre a versão B. É utilizado para modificar a versão do Java utilizado. C. Pode ser utilizado no comando javac. D. Pode ser utilizado no comando java. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 71 / 96 Fundamentos do desenvolvimento Java XPTO.java --------------- package pct; public class XPTO { int alterar(int i) { return - - i*4; } } A.Não compila. B.Imprime 40. C.Imprime 36. D.Ocorre problemas na execução. E.Nenhuma das anteriores. Cliente.java ---------------- import pct.*; class Cliente { public static void main (String args) { pct.xpto x = new pct.xpto(); System.out.println(x.alterar(10)); } } Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 72 / 96 36

Fundamentos do desenvolvimento Java Transporte.java --------------------- package pct1; class Transporte { Transporte () { System.out.println( T ); } } A. Não compila. A classe Transporte não possui construtor recebendo um argumento inteiro. B.Não compila. A classe Jato não tem construtor sem argumentos. C.Não compila. A classe Transporte não é pública. D.Imprime T J E.Imprime J. Jato.java ------------ package pct2; import pct1.transporte; class Jato extends Transporte { Jato (int vmax) { System.out.println( J ); } public static void main (String[] args) { Jato j = new Jato(1200); } } Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 73 / 96 Fundamentos do desenvolvimento Java Automovel.java -------------------- package pct1; public abstract class Automovel { public Automovel (int pneus) { System.out.println( A ); } } A.Compila mas ocorre erro na execução. B.Não compila. A classe Focus não é pública. Focus.java ---------- package pct2; import pct1.automovel; class Focus extends Automovel { Focus () { System.out.println( F ); } public static void main (String[] args) { Focus f = new Focus(); } } C.Não compila. A classe Automovel não tem construtor sem argumentos. D.Imprime Automovel Focus E.Imprime Focus. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 74 / 96 37

Fundamentos do desenvolvimento Java Qual dos procedimentos abaixo tem que ser inseridos no código para que a classe compile sem problemas? class XPTO { } public void fazalgo() { List<String> minhalista = new ArrayList<String>(); } A. import java.util.list; B. package java.util; C. import java.util.*; D. Não é preciso acrescentar nada. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 75 / 96 Seção 6: Plataforma Java e tecnologias de integração 4 Questões 38

Plataforma Java e tecnologias de integração Distinguir as características básicas das 3 plataformas Java: J2SE, J2ME, e J2EE, e dado o objetivo em alto-nível da arquitetura, selecionar a plataforma Java ou plataformas mais apropriadas. Descrever em alto-nível os benefícios e as características básicas do RMI. Descrever em alto-nível os benefícios e as características básicas do JDBC, SQL e das tecnologias RDBMS. Descrever em alto-nível os benefícios e as características básicas do JNDI, messaging e tecnologias JMS. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 77 / 96 Plataforma Java e tecnologias de integração Quais afirmações são verdadeiras? Marque duas. A. O pacote javax.sql provê a capacidade de utilizar pool de conexões. B. Para escrever uma aplicação com JDBC é necessário conhecer a API proprietária do BD. C. Cada driver de banco de dados precisa fornecer uma classe que implementa a java.sql.driver. D. Com a utilização de JPA, JDBC não é mais necessário e toda a API poderia ser removida da plataforma Java. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 78 / 96 39

Plataforma Java e tecnologias de integração Em J2ME, que configuração é utilizada para dispositivos com altas capacidades de memória e processamento? A. CLDC B. CDC C. CLDC e CDC D. Nenhuma das opções. CDC :: Connected Device Configuration CLDC :: Connected Limited Device Configuration Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 79 / 96 Plataforma Java e tecnologias de integração Quais afirmações são verdadeiras sobre JDBC? Marque duas. A. É necessário utilizar JDBC para conectar aplicações JAVA com RDBMS * B. A API JDBC pode ser encontrada nos pacotes java.sql e javax.sql. C. As implementações dos drivers JDBC são incluídas na API JDBC. D. JDBC não é independente de plataforma de RDBMS. (*relational database management system). Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 80 / 96 40

Plataforma Java e tecnologias de integração Qual das tecnologias abaixo permite que um objeto cliente chame os métodos de um objeto em um servidor residindo em outra JVM? A. JDBC B. JavaMail C. RMI D. SQL E. RDBMS F. Nenhuma das anteriores Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 81 / 96 Seção 7: Tecnologias Cliente 2 questões 41

Tecnologias Cliente Descrever em alto-nível as características básicas, benefícios e desvantagens na criação de thin-clients usando HTML e Javascript e relacionar questões e soluções de deployment. Descrever em alto-nível as características básicas, benefícios e desvantagens no deployment relacionados com a criação de clientes usando J2ME midlets. Descrever em alto-nível as características básicas, benefícios e desvantagens no deployment relacionados com a criação de fatclients usando Applets. Descrever em alto-nível as características básicas, benefícios e desvantagens no deployment relacionados com a criação de fatclients usando Swing. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 83 / 96 Tecnologias Cliente O que é verdade sobre Swing? Marque duas. A. Swing tem mais componentes que AWT B. Componentes Swing são parte do pacote java.awt. C. Componentes Swing podem ser encontrados no pacote java.swing D. Componentes Swing são considerados lightweigth. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 84 / 96 42

Tecnologias Cliente Quais afirmações podem ser feitas sobre applets Java: Marque duas. A. São compilados utilizando o comando javac B. São executados utilizando o comando java. C. O método main tem que ser definido. D. Define o método start. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 85 / 96 Seção 8: Tecnologias Servidor 3 Questões 43

Tecnologias Servidor Descrever em alto-nível as características básicas de: EJB, servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (incluindo SOAP, UDDI, WSDL e XML), e JavaMail. Descrever em alto-nível as características básicas de servlet e JSP nos thin-clients HTML. Descrever em alto-nível o uso e as características básicas de session bean, entity e message-driven beans. Descrever em alto-nível os benefícios e desvantagens de usar tecnologias J2EE server-side, e descrever e comparar as características básicas da camada web, camada de negócio e camada EIS (Enterprise Integration Services). Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 87 / 96 Tecnologias Servidor Quais das afirmações abaixo são verdadeiras sobre Servlets? Marque duas. A. Não podem receber dados de páginas web. B. São executados no browser. C. São mais otimizados que scripts CGI D. São portáveis entre vários Servidores JEE distintos. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 88 / 96 44

Tecnologias Servidor Qual das tecnologias abaixo pode ser utilizada para enviar um email usando SMTP? A. JavaMail B. JMail C. JMX D. JMS E. Nenhuma das anteriores. Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 89 / 96 Tecnologias Servidor Qual tecnologia abaixo pode ser utilizada para acessar objetos de sessão no lado servidor? A. HTML B. JavaScript C. servlet D. applet Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 90 / 96 45

Desafio JAVA Desafio JAVA Nível SCJP import static java.lang.system.out; class Mamifero { int x = -1; static String beberleite() { return "[Mamifero]"; } String fazerbarulho() { return "[barulho]"; } } class Cao extends Mamifero { int x = 1; static String beberleite() { return "[Cao]"; } String fazerbarulho() { return "[latindo]"; } } public class Cliente { public static void main(string... args) { Mamifero m = new Cao(); out.println("[" + m.x + "]" + m.beberleite() + m.fazerbarulho()); } } A.[1][Cao][latindo] B.[1][Cao][barulho] C.[-1][Mamifero][latindo] D.[-1][Mamifero][barulho] E.Nenhuma das anteriores Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 92 / 96 46

Desafio Programa de desempate Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 93 / 96 Referências Liguori, Robert; Finegan, Edward. SCJA Sun Certified Java Associate Study Guide (Exam CX-310-019), McGraw- Hill/Osborne, 2009 Sierra, Kathy; Bates, Bert. SCJP Sun Certified Programmer for Java 6 Exam 310-065. McGraw-Hill/Osborne, 2008 Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 94 / 96 47

Referências Certificações Oracle Java http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=140#13 Certificações Oracle na Prometric http://www.prometric.com/oracle/default.htm Site do Oracle Certification Database https://i7lp.integral7.com/durango/do/login?ownername=sun&channe l=sun&basechannel=sun&usertype=candidate Rodrigo Cabral de Azevedo :: www.rodrigocabral.com.br 95 / 96 Agradecimentos Obrigado contato@rodrigocabral.com.br http://www.rodrigocabral.com.br 48