Logo Passei Direto
Buscar

A2 - Programação Orientada a Objetos 3

User badge image
JGVM

em

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto



Informações da avaliação
 JOÃO GABRIEL VASCONCELLOS MELÃO  1240106673
 21_2025_1_IL10332_21SIF7251A
 Avaliação 2 - Prova Regular - 28/06/2025 11:00:00 (Finished)
 Sala 127 - Laboratório 1 / Térreo - Lab Informática / Bloco A / POLO UVA RIO DE JANEIRO - TIJUCA -
RJ
Total: 7.60 / 10.00
 Legenda
 Discursiva  Objetiva
 Questão 1 | Código 38958 | 0.80 / 0.80
Enunciado
O padrão Factory Method é bastante utilizado em projetos de sistemas, pois é possível encapsular o
código que cria objetos, concentrando o código de criação em apenas um objeto ou método, evitando
duplicação de código e apresentando um local único para fazer manutenção, tornando o código mais
flexível e extensível para o futuro.Analise as asserções a seguir sobre o padrão de projeto “Factory
Method” usado no desenvolvimento de sistemas computacionais com acesso a banco de dados:I – O
padrão de projeto “Factory Method” pode ser usado para definir uma interface específica para criação
de conexões do banco de dados.PORQUEII – O padrão Factory Method” consegue controlar melhor o
processo repetitivo de criação de conexões, o qual consome muitos recursos do SGBD. Analisando as
assertivas, pode-se inferir que:
Justificativa
Resposta correta:As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I.I
é verdadeira, pois, com o padrão Factory, o código para criação de conexões do banco de dados pode
ser encapsulado, definindo assim um local único para implementação de uma interface específica.II é
verdadeira, pois, com o uso do padrão Factory Method, é possível concentrar as atividades de abertura
e fechamento de conexões com o banco de dados para melhor controle dos recursos importantes do
sistema.II justifica a I, pois o padrão “Factory Method” consegue controlar o processo de criação de
conexões, o qual consome muitos recursos do SGBD. Esse padrão é normalmente aplicado em projetos
de sistemas para implementar interfaces específicas de conexões do banco de dados, evitando
duplicação de código e apresentando um local único para fazer manutenção, além de tornar o código
mais flexível e extensível para atualizações.
 >c)As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I.
Alternativa marcada
c) As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
1 of 9 7/11/25, 6:36 PM

 Questão 2 | Código 39216 | 0.00 / 0.80
Enunciado
Para gerenciar as entidades de uma aplicação é necessário usar um objeto gerenciador
“EntityManager” obtido por meio de uma classe “EntityManagerFactory”. Analise as seguintes
assertivas a seguir sobre os métodos do EntityManager utilizados para manipulação de dados em uma
aplicação JAVA.I. É necessário usar o método persist() do gerenciador EntityManager para persistir as
informações de um objeto no banco de dados.II. Para obter um objeto que contenha informações do
banco de dados, é possível utilizar os métodos find() ou getReference() do EntityManager. Enquanto o
método getReference() busca imediatamente os dados, o método find() adia a consulta até que um
método get seja executado no objeto desejado.III.Pode-se utilizaro método “remove()” do gerenciador
de entidade EntityManager para remover um registro de um objeto.IV. Para sincronizar o banco de
dados com as informações que foram modificadas em memória é necessário criar uma transação JPA
pelo gerenciador de entidade que controla os objetos a serem atualizados. Para a sincronização de
dados de forma definitiva deve-se usar o método commit().V. Para abrir uma transação JPA deve-se
usar o método begin() e para sincronizar as informações com o banco de dados de forma apenas
parcial pode-se usar o método flush().Indique as assertivas corretas:
Justificativa
Resposta correta:I, III, IV e V.Na assertiva II, os conceitos dos conceitos dos métodos find() ou
getReference() estão trocados. Para obter um objeto que contenha informações do banco de dados, é
possível utilizar os métodos find() ou getReference() do EntityManager. Enquanto o método find() busca
imediatamente os dados, o método getReference() adia a consulta até que um método get seja
executado no objeto desejado.
 >a)I, III, IV e V.
Alternativa marcada
e) Todas.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
2 of 9 7/11/25, 6:36 PM

 Questão 3 | Código 38968 | 0.80 / 0.80
Enunciado
É importante implementar o tratamento adequado de exceções ao usar a biblioteca JDBC. No caso de
alguma falha no acesso ao banco de dados, deve-se prever o fechamento das conexões com o banco
de dados para liberar recursos importantes do sistema.Avalie as alternativas mostradas a seguir sobre
o tratamento adequado de exceções ao usar a biblioteca JDBC:I- Pode ser implementado por um bloco
“try … catch ... finally”. O bloco “finally” indica um trecho de código que sempre será executado, se uma
exceção ocorrer ou não e que pode ser usado para liberar recursos importantes do sistema.II- Basta
utilizar o comando “throws” para avisar que estamos cientes de que aquela exceção pode ocorrer, mas
não é necessário tratá-la neste momento para liberar recursos do sistema.III- Pode ser realizado por
um bloco “try-with-resources” ( Java 7) que permite declarar e inicializar objetos que implementam o
método “AutoCloseable”. Dessa forma, ao término do bloco “try”, o próprio compilador insere
instruções para chamar o fechamento de recursos importantes do sistema.Assinale a opção correta:
Justificativa
Resposta correta:Apenas as alternativas I e III são verdadeiras.I- Verdadeira: No bloco “try … catch ...
finally”, a parte “finally” indica um trecho de código que sempre será executado, se uma exceção
ocorrer ou não e que pode ser usado para liberar recursos importantes do sistema e prever o
fechamento das conexões com o banco de dados.III- Verdadeira. O bloco “try-with-resources”
(disponível a partir da versão Java 7) que permite declarar e inicializar objetos que implementam o
método “AutoCloseable” (fechamento automático). Dessa forma, ao término do bloco “try”, o próprio
compilador insere instruções para chamar o fechamento de recursos importantes do sistema e prever
o fechamento das conexões com o banco de dados.Distrator:II- Falsa. Sempre é necessário
implementar o tratamento de exceções.
 >d)Apenas as alternativas I e III são verdadeiras.
Alternativa marcada
d) Apenas as alternativas I e III são verdadeiras.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
3 of 9 7/11/25, 6:36 PM

 Questão 4 | Código 39211 | 0.80 / 0.80
Enunciado
Na técnica de Mapeamento Objeto-Relacional (MOR), a utilização de anotações específicas nos próprios
arquivos Java é prática e evita a utilização de extensos arquivos em outra linguagem e sintaxe
XML.Analise as seguintes assertivas sobre o uso da anotação @Entity:I- A anotação @Entity deve estar
depois do nome de uma classe que terá objetos persistidos no banco de dados.II - Qualquer classe
com a anotação @Entity será mapeada para uma tabela do banco de dados e seus atributos serão
mapeados para colunas nesta tabela.III- O nome da tabela será o mesmo nome da classe por padrão,
mas poderá ser alterado pela anotação @Table.Marque a alternativa correta:
Justificativa
Resposta correta:Apenas as assertivas II e III são verdadeiras.II – Verdadeira. Qualquer classe com a
anotação @Entity será mapeada para uma tabela do banco de dados. Uma classe com a anotação
@Entity terá seus atributos mapeados para colunas na tabela que corresponde à classe mapeada.III-
Verdadeira. O nome da tabela será o mesmo nome da classe por padrão, mas poderá ser alterado pela
anotação @Table.Distrator:I – Falsa. A anotação @Entity deve estar sempre antes do nome de uma
classe que terá objetos persistidos no banco de dados.
 >e)Apenas as assertivas II e III são verdadeiras.
Alternativa marcada
e) Apenas as assertivas II e III são verdadeiras. Questão 5 | Código 39221 | 0.00 / 0.80
Enunciado
Com o objetivo de saber como os objetos são administrados pelos Entity Managers, é necessário
conhecer o ciclo de vida das entidades de dados.Relacione os estados do ciclo de vida das entidades de
dados descritos a seguir com seus verdadeiros significados.Marque a alternativa com a correlação
correta:
Justificativa
Resposta correta:I – b, II – d, III – a, IV – c.Novo (New): o objeto não está associado a um Gerenciador de
Entidade. No estado “Novo”, o objeto não possui uma chave de identidade e seu conteúdo não é
transmitido para o banco de dados. Se uma instância de uma entidade foi recém-criada com um
comando “New” ela encontra-se no estado “Novo”, conforme a especificação JPA.Administrado
(Managed): nesse estado o objeto está associado a um Gerenciador de Entidade e possui uma chave de
identidade. Os dados de um objeto no estado “Administrado” são atualizados no banco de dados a
cada sincronização.Desvinculado (Detached): no estado “Desvinculado” o objeto não está associado a
um Gerenciador de Entidade, mas possui uma chave de identidade. O conteúdo de um objeto nesse
estado não é sincronizado com o banco de dados.Removido (Removed): nesse estado o objeto possui
uma chave de identidade e está associado a um Gerenciador de Entidade. Quando houver uma
sincronização, o conteúdo desse objeto será removido do banco de dados.
 >c)I – b, II – d, III – a, IV – c.
Alternativa marcada
b) I – b, II – d, III – c, IV – a.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
4 of 9 7/11/25, 6:36 PM

 Questão 6 | Código 38959 | 0.80 / 0.80
Enunciado
Durante o desenvolvimento de um aplicativo Java com conexão a bancos de dados é necessário
realizar operações de dados SQL nas tabelas utilizando conexões JDBC. Neste caso, existe o problema
de se misturar a sintaxe das linguagens Java e SQL torna o código confuso e de difícil entendimento,
especialmente para operações de inserção e atualização de dados.Dessa forma, determine qual classe
da biblioteca JDBC poderia ser usada para facilitar a utilização do código SQL no código Java para
realizar operações de dados:
Justificativa
Resposta correta:PreparedStatement.A interface PreparedStatement possui o método
prepareStatement , passando como argumento o comando SQL com os valores vindos de variáveis
preenchidos com uma interrogação, evitando as concatenações de strings.A interface
PreparedStatement evita a necessidade de concatenação de strings longas para os implementar os
comandos SQL, principalmente com tabelas de dados grandes com várias colunas e o tratamento de
caracteres especiais nas strings, existe o risco de alteração do código SQL por usuários mal
intencionados (SQL injection).Distratores:DriverManager. Errada. A interface DriverManager trata da
implementação de conexão aos drivers do banco de dados.Connection. Errada. Na classe Connection
são definidos métodos padrões para trabalhar com banco de dados, tais como: executar consultas,
inserir dados, confirmar uma transação, fechar a conexão, entre outros.ResultSET. Errada. A interface
ResultSET possui métodos para tratar o resultado das consultas ao banco de dados.
 >d)PreparedStatement.
Alternativa marcada
d) PreparedStatement.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
5 of 9 7/11/25, 6:36 PM

 Questão 7 | Código 39222 | 0.00 / 0.80
Enunciado
Imagine que, para o desenvolvimento de um aplicativo com acesso a banco de dados utilizando
provedores JPA, será necessário utilizar a funcionalidade de “caching” para otimizar o acesso às
informações armazenadas. Avalie as seguintes assertivas sobre as diferentes formas de
implementação da funcionalidade de “caching” em provedores JPA :I - A funcionalidade de caching não
é indicada para acesso às informações que são modificadas e acessadas com muita frequência.II - É
mais eficiente manter apenas uma cópia das informações mais usadas em dispositivos de disco rígido
do banco de dados do que armazenar em memória de acesso rápido.III – Existesomenteuma forma de
implementação da funcionalidade “caching” em provedores JPA.Marque a alternativa correta:
Justificativa
Resposta correta:Apenas a alternativa I é verdadeira.I – Verdadeira. O caching possui objetivo de
possibilitar o acesso mais rápido às informações que são mais utilizadas e que por sua vez não são
alteradas com muita frequência.Distratores:II – Falsa. É mais eficiente manter uma cópia destas
informações mais usadas em memória de acesso rápido (“caching”), evitando o acesso constante e
mais lento aos dispositivos de armazenamento do banco de dados.III – Falsa. Existem as seguintes
formas de implementação de cache em provedores JPA: Cache de Primeiro Nível (“Persistence Context”)
e Cache de Segundo Nível (“Shared Cache”).
 >b)Apenas a alternativa I é verdadeira.
Alternativa marcada
e) Apenas a alternativa II é verdadeira.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
6 of 9 7/11/25, 6:36 PM

 Questão 8 | Código 38951 | 0.80 / 0.80
Enunciado
Sabemos que existem algumas vantagens em escolher modelos de arquitetura adequados para
utilização no desenvolvimento de sistemas computacionais com alta complexidade.Neste contexto, leia
as afirmações a seguir.I – Ajudam o gerenciamento dos riscos técnicos da solução computacional.II –
Permitem melhor tratamento dos requisitos de qualidade de software.III – Impedem a análise de
impacto de mudanças tecnológicas e de negócios.IV – Orientam as atividades de projeto e
implementação.Está correto apenas o que se afirma em:
Justificativa
Resposta correta:I, II e IV estão corretas.I – Correta. A utilização de modelos de arquitetura adequados
ajuda na gestão e controle dos riscos técnicos envolvidos durante o desenvolvimento de sistemas
computacionais complexos.II – Correta. Durante o ciclo de desenvolvimento de sistemas
computacionais, o uso de modelos de arquitetura adequados permite melhor tratamento dos
requisitos funcionais e não funcionais necessários para a solução computacional.IV – Correta. A
utilização de modelos de arquitetura adequados ajudam o ciclo de desenvolvimento de sistemas com
alta complexidade, desde as etapas iniciais de análise, projeto e durante a fase de implementação do
código.Distrator:A asserção III está errada, pois a escolha modelos de arquitetura adequados ajuda a
análise de impacto de mudanças tecnológicas e de negócios.
 >b)I, II e IV estão corretas.
Alternativa marcada
b) I, II e IV estão corretas.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
7 of 9 7/11/25, 6:36 PM

 Questão 9 | Código 39225 | 0.80 / 0.80
Enunciado
Após a implementação de uma aplicação num Web Container, o processamento de requisições e
respostas em cada página JSF é controlada pela classe Faces Servlet por meio de várias etapas de
execução.Relacione as seguintes etapas de processamento de requisições JSF com seus respectivos
significados:Marque a alternativa correta:
Justificativa
Resposta correta:I – d, II – c, III – b, IV – a.Restore View. Nesta etapa, uma árvore de componentes
(“component tree”) inicial representando a tela da primeira requisição feita por um usuário é gerada. A
árvore de componentes da tela será reconstruída nas requisições seguintes desse mesmo usuário
(“postback”).Apply-Request Values. Nesta etapa, a árvore de componentes construída na etapa Restore
View” anterior é verificada e decodificada, onde cada componente retira as informações associadas da
requisição atual para atualização. Além disso, os eventos de usuário são identificados nesta etapa e
são armazenados para tratamento futuro na etapa Invoke Application.Process Validations. Nesta
etapa, os componentes com dados transmitidos pelos usuários por meio de formulários de entrada
sofrem as conversões e validações necessárias. Se não houve erro durante os processos de validação e
conversão, o fluxo continua na etapa “Update Model Values”. Caso aconteça algum umerro, serão
acrescentadas mensagens de falha no contexto da requisição e o fluxo sofrerá direcionamento para a
etapa “Render Response”.Invoke Application. Nesta fase as tarefas relacionadas ao evento de usuário
que iniciou a requisição podem ser executadas porque as informações dos componentes já estão
convertidas, validadas e armazenadas nos “Managed beans” do modelo. Na fase “Invoke Application” o
método que realiza a lógica do negócio apresenta a próxima tela ao usuário.
 >c)I – d, II – c, III – b, IV – a.
Alternativa marcada
c) I – d, II – c, III – b, IV – a.
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
8 of 9 7/11/25, 6:36 PM

 Questão 10 | Código 39212 | 2.80 / 2.80
Enunciado
Considere um aplicativo com acesso a banco de dados que foi desenvolvido pela equipe de
programação Java. Foi utilizada a especificação Java Database Connectivity (JDBC) para fazer a
aplicação Java interagir com os Sistemas Gerenciadores de Banco de Dados (SGBD) e as consultas
foram definidas com a linguagem SQL diretamente nas classes Java.Avalie se a solução empregada é a
mais adequada para o desenvolvimento desse projeto. Justifique sua resposta e, se for o caso,
apresente uma alternativa.
Resposta
Para uma aplicação mais simples, como um CRUD, visto na avaliação 2 cadeira de Programação
Orientada a Objetos II e no material educacional (e-book) de Programação Orientada a Objetos 3
(sistema de aluno), não seria tão problemático. Entretanto, afim de escalar de uma forma mais limpa, o
ideal seria separar os contextos utilizando o padrão repositório + factory e inversão de controle junto a
utilização de uma interface. Por exemplo: github.com/JGMelon22/Controle-de-Carros. Entretanto,
poderíamos também implementar uma maior abstração utilizando o projeto Hibernate.
Comentários
Ok!
Justificativa
Expectativa de resposta:Ao implementar as consultas diretamente com a linguagem SQL, o primeiro
problema é que a sintaxe da linguagem SQL é diferente em cada SGDB. Dessa forma, a complexidade
do trabalho dos desenvolvedores aumenta caso seja necessário usar vários SGBDs diferentes.Outro
problema é que os SGDBs são organizados seguindo o modelo relacional e as aplicações Java utilizam
o modelo orientado a objetos, o que dificulta a comunicação e a transição de dados entre modelos e
paradigmas diferentes. A manutenção e o desenvolvimento do sistema também possuem maior
dificuldade.Para resolver esses problemas, deve-se utilizar ferramentas ORM (Object Relational
Mapper) como o Hibernate e o JPA (Java Persistence API), que conseguem automatizar a transição de
dados entre as aplicações e os SGDBs. As ferramentas ORM oferecem mecanismos de consultas
independentes da linguagem SQL, o que diminui o acoplamento entre as aplicações e os SGDBs. Pode
ser definido um mapeamento entre os conceitos objeto-relacional. Por exemplo, classes podem ser
mapeadas para tabelas, objetos para registros, atributos para campos e referência entre objetos para
chaves estrangeiras
Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/46199...
9 of 9 7/11/25, 6:36 PM

Mais conteúdos dessa disciplina