Buscar

Prova Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1/10 - 
Considerando a classe Estante a seguir, marque a alternativa que representa um método 
de acesso (setter ou getter). 
 
 
public Estante(int qtde) { 
 
public boolean isCheia() 
 
public void limpar() { 
 
public Livro remover(int i) { 
 
public void adicionar(Livro l) { 
2/10 - 
Considere uma classe chamada Regra, cujos objetos podem conter regras de validação de 
texto. Essa classe possui o método validar, que recebe uma String e retorna um boolean. 
Agora, considere que foi criado um objeto chamado regraCPF que valida CPFs: 
Regra regraCPF = new Regra('000.000.000-00'); 
Também considere uma classe de Lista que possuísse o método validarTodos que aceitasse 
como parâmetro a interface Predicate. 
Sobre essa situação, assinale a alternativa correta. 
 
Para utilizar o validador, seria necessário criar uma classe utilitária similar a: 
 
E então chamar: 
Lista.validarTodos(Util::validarCPF); 
 
O objeto regraCPF não poderia ser criado por ser de um objeto. 
 
Seria possível usar o método por meio da chamada: 
lista.validarTodos(Regra::validar); 
 
Seria possível usar o método por meio da chamada: 
lista.validarTodos(regraCPF::validar); 
 
Para validar, seria obrigatório o uso de um lambda: 
lista.validarTodos(p -> regraCPF.validar(p)); 
3/10 - Assinale a alternativa que indica o que precisa ser implementado para que um 
TreeMap funcione corretamente com uma classe implementada por você usada como 
chave. 
 
Nada, basta adicionar objetos ao TreeMap. 
 
A interface Comparator e os métodos equals e toString. 
 
Os métodos hashCode e equals. 
 
As interfaces Comparator e Comparable e o método hashCode. 
 
A interface Comparable. 
4/10 - Sobre os métodos equals e hashCode, assinale a alternativa correta: 
 
O método equals deve levar em conta todos os atributos do objeto, caso contrário, objetos diferentes podem 
ser considerados iguais. 
 
Objetos considerados iguais no equals devem ter hashCodes iguais. Objetos diferentes, hashCodes 
diferentes. 
 
Um bom hashCode terá um componente aleatório, pois isso evitaria que duas chamadas diferentes gerassem 
o mesmo valor. 
 
Um método hashCode que retorne apenas o número 1 é correto, embora seja pouquíssimo eficiente. 
 
O equals da classe Aluno foi implementado utilizando os campos matrícula e nome. Já o hashCode deve ser 
implementado apenas com a matrícula, pois ela identifica o Aluno (chave). 
5/10 - O Java possui um pacote chamado java.util.function, que contém uma série de 
interfaces já definidas para serem utilizadas com lambda. Sobre esse assunto, assinale a 
alternativa correta. 
 
O uso dessas interfaces é obrigatório, já que fazem parte da biblioteca padrão da plataforma Java. 
 
Seu uso é desejável, pois o compromisso com interfaces é menor do que o de classes abstratas. 
 
Elas são desejáveis, pois evitam que se crie código simples e óbvio. Além disso, suas implementações já 
podem definir métodos padrão úteis. 
 
Seu uso é obrigatório, já que, sem a definição de um tipo de dado, é impossível declarar uma variável 
lambda. 
 
Elas devem ser evitadas, pois a criação de interfaces específicas gera um código mais claro. 
6/10 - Suponha que o programador queira criar um método ordenar que aceite dois 
parâmetros - um objeto da classe Lista que pode ser parametrizado com um tipo T e um 
objeto da classe Comparador, que também pode ser parametrizado com um tipo T - e 
comparar dois objetos desse tipo para dizer em que ordem irão. Ele faz isso por meio do 
método compare, que recebe dois parâmetros de entrada do tipo T, e retorna um inteiro 
com o valor -1, 0 ou 1 se o primeiro objeto for menor, igual ou maior que o segundo, 
respectivamente. Qual das alternativas a seguir seria a mais flexível para ser utilizada 
nessa situação? Assinale a alternativa correta. 
 
void ordenar(Lista lista, Comparador comparador) 
 
void ordenar(Lista T> lista, Comparador comparador) 
 
void ordenar(Lista T> lista, Comparador comparador) 
 
void ordenar(Lista lista, Comparador comparador) 
7/10 - Assinale a alternativa que indica o que precisa ser implementado para que um 
HashMap funcione corretamente com uma classe implementada por você usada como 
valor. 
 
Os métodos hashCode, equals e toString. 
 
Somente o método hashCode. 
 
Nada. Quem depende de implementações específicas é a chave. 
 
Os métodos hashCode e equals. 
 
A interface Comparable ou a interface Comparator. 
8/10 - O que imprime o código a seguir? Assinale a alternativa correta. 
 
 
ACDFGH 
 
ABCDEFGH 
 
ACH 
 
ACGH 
 
ACDEGH 
9/10 - Um programa possui uma lista de objetos que representam transações bancárias. 
Elas possuem um atributo com a data, outro com o valor da transação e outro com o local 
onde a transação foi feita. A lista possui milhares de transações. Um programador deseja 
calcular a média de todos os valores gastos por determinada empresa. Considerando que 
ele já possui uma lista de transações, qual é a melhor opção? Assinale a alternativa 
correta. 
 
Utilizar um stream. Filtrar com o método filter, utilizar o mapToDouble sobre o valor da transação e o 
método average para calcular a média. 
 
Utilizar o método removeif para eliminar transações inválidas. Calcular a média das que restarem por meio 
do forEach ao final do processo. 
 
Copiar os dados para um conjunto ordenado e realizar o cálculo, o que descartaria automaticamente as 
transações duplicadas. 
 
Utilizar o iterator para iterar sobre a coleção. Realizar o cálculo das transações válidas, usar o método 
remove do iterator sobre as inválidas. 
 
Iterar sobre a coleção com um for each e realizar o cálculo é preferível por usar apenas um comando 
simples. 
10/10 - Para implementar boas abstrações, objetos 'escondem' a funcionalidade interna de 
seus usuários, enquanto expõem uma interface pública simples. Assinale a alternativa que 
representa o nome dessa característica. 
 
Imutabilidade. 
 
Empacotamento. 
 
Modificadores de acesso. 
 
Encapsulamento. 
 
Métodos de acesso (getters e setters).

Outros materiais