

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Um projeto em Java, dentro do paradigma da orientação por objeto, precisa definir uma estrutura base que descreva um modelo com atributos e comportamentos comuns para vários tipos de clientes do sistema bancário.
Essa estrutura é
um módulo externo sem atributos.
o modelo de um objeto executável.
uma variável do tipo primitivo.
uma função que cria listas.
uma classe que define o modelo.
Considerando expressões lambda em Java, qual alternativa representa um Method Reference correto para imprimir os elementos de uma lista de strings?
lista.forEach(System.out::println);
lista.forEach(s -> System.out.println);
lista.forEach(s -> System.out.println(s));
lista.stream().map(s->s.toUpperCase())
.forEach(System.out.println);
Na programação orientada a objetos com a linguagem Java, a distinção entre membros de classe e membros de instância define como os recursos são compartilhados e acessados. Considerando as propriedades dos métodos, analise as afirmativas a seguir.
I. Métodos estáticos podem acessar variáveis de instância diretamente sem a necessidade de instanciar um objeto, desde que estejam no mesmo pacote.
II. Um método declarado como final em uma classe pai não pode ser sobrescrito pelas subclasses, garantindo a integridade do comportamento definido.
III. Métodos não estáticos possuem implicitamente a referência "this", que permite acessar o estado interno do objeto específico que invocou o método.
Está correto o que se afirma em:
II e III apenas.
I, II e III.
I apenas.
I e III apenas.
Analise o seguinte programa escrito em Java conforme a especificação Java SE 11:

Considerando o comportamento do polimorfismo, qual será a saída produzida pela execução do programa?
A A
B B
B C
B B C
B B C C
Sobre o uso de polimorfismo, considere o trecho de código Java, que contém uma lacuna identificada por “”:

Para que o programa imprima exatamente “Ana:Aluno | Bruno:Professor”, qual das alternativas apresenta a melhor expressão para substituir a lacuna ?
p1.nome + ":" + p1.papel() + " | " + p2.nome + ":" + p2.papel()
p1.getNome() + ":" + p1.papel() + " | " + p2.getNome() + ":" + p2.papel()
p1.getNome() + ":" + p1.toString() + " | " + p2.getNome() + ":" + p2.toString()
p1.getNome() + ":" + Pessoa.papel() + " | " + p2.getNome() + ":" + Pessoa.papel()
((Aluno)p1).getNome() + ":" + ((Aluno)p1).papel() + " | " + ((Professor)p2).getNome() + ":" + ((Professor)p2).papel()


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
A linguagem Java permite herança múltipla de classes, de modo que uma classe pode ser subclasse de outras duas classes diretamente.
Certo
Errado
Um programador escreveu o seguinte programa em Java:
class XXX {
private int campo1;
protected char campo2;
public void procedure1() {
this.campo1 = 100;
this.campo2 = ‘X’;} }
class YYY extends XXX {
protected double campo3;
public int campo4;
public void procedure2() {
this.campo4 = 100;
this.campo3 =100; }}
public class Main {
public static void main(String[] args) {
YYY c = new YYY();
c.campo1 = 100;
c.campo2 = ‘x’;
c.campo4= 100;
c.campo3 =200; }}
Na execução, ocorreu um erro indicando a não-visibilidade do atributo:
XXX.campo1
XXX.campo2
YYY.campo3
YYY.campo4
Na linguagem Java, para declarar uma classe chamada CA que só pode ser herdada por CB, CC e CD, dentre as alternativas a seguir, deve-se declará-la como:
public sealed class CA permits CB, CC, CD
public final class CA permits CB, CC, CD
public class CA extended by CB, CC, CD
public final class CA extends CB, CC, CD
public class CA sealed CB, CC, CD
Durante o desenvolvimento de um framework surgiu a necessidade de invocar dinamicamente um método a partir de uma string que contém o nome e a classe do método. Um dos programadores com mais experiência sugeriu o uso do conceito de reflexão computacional. O framework em questão foi desenvolvido na linguagem Java, versão 25.
Assinale a alternativa CORRETA.
Java não implementa nativamente o conceito de reflexão computacional, mas é possível implantar manipulando diretamente o bytecode. Existem bibliotecas open source desenvolvidas com esse propósito, sendo uma delas a JavaReflect.
Apesar de o conceito de reflexão computacional existir na linguagem Java ele não pode ser utilizado para resolver o problema do enunciado.
A linguagem Java implementa o conceito de reflexão computacional por meio do pacote import java.lang.reflect.* e o problema do enunciado pode ser resolvido a partir desse conceito.
Não existe forma de implementar reflexão computacional na linguagem Java, porque esse conceito vai contra os princípios do uso de máquinas virtuais.
A linguagem Java foi concebida com forte ênfase em portabilidade, independência de plataforma e execução distribuída. Uma das características centrais da arquitetura Java consiste na possibilidade de executar aplicações compiladas em diferentes sistemas operacionais sem necessidade de recompilação, desde que exista uma Java Virtual Machine (JVM) compatível. Esse conceito é tradicionalmente associado ao princípio:
Write Once, Run Anywhere (WORA).
Compile Once, Deploy Locally (CODL).
Build Once, Execute Specifically (BOES).
Interpret Everywhere, Compile Nowhere (IECN).
Code Once, Rewrite Always (CORA).


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Qual é a principal diferença conceitual entre uma interface e uma classe abstrata em Java, considerando suas capacidades e seus propósitos de design?
Interfaces podem ter construtores, enquanto classes abstratas não.
Classes abstratas podem implementar múltiplas interfaces, mas interfaces não podem estender múltiplas classes abstratas.
Interfaces definem um contrato de comportamento sem implementação de estado, enquanto classes abstratas podem ter estado (atributos) e implementações parciais.
Interfaces podem ter métodos estáticos e privados, mas classes abstratas não.
Não há diferença significativa, são apenas formas diferentes de alcançar o polimorfismo.
Analise o seguinte programa escrito em linguagem Java, conforme a especificação Java SE 11. Sobre o fluxo de execução com try-catch-finally e relançamento de exceções, assinale a alternativa que apresenta a saída produzida. Considere que o método main captura a exceção relançada, e que o bloco finally sempre é executado antes da propagação da exceção, conforme a Seção 11.3 da Java Language Specification.

B F A
B A F
F B A
B F
F A
Na linguagem Java, a anotação @Override é utilizada no contexto de herança e polimorfismo para auxiliar na verificação de métodos sobrescritos. Analise as afirmativas a seguir:
I.A anotação @Override faz com que o compilador verifique se o método realmente sobrescreve um método da superclasse ou interface.
II.Caso um método anotado com @Override não corresponda a nenhum método da superclasse ou interface, ocorrerá erro de compilação.
III.A anotação @Override altera o comportamento do método em tempo de execução, permitindo otimizações na JVM.
É correto o que se afirma em:
I, II e III.
III, apenas.
II e III, apenas.
I e II, apenas.
I, apenas.
Qual é a palavra reservada, na linguagem de programação Java, para indicar que um bloco de código será executado de forma segura, com recursos compartilhados em múltiplas threads?
strictfp.
throws.
protected.
synchronized.
transient.
Considere o seguinte código em Java:

Com base nos princípios da Programação Orientada a Objetos e no mecanismo de herança, analise as afirmativas a seguir:
I. A classe Cachorro herda o atributo nome da classe Animal e pode acessá-lo diretamente por ele ter sido declarado como protected.
II. A anotação @Override garante, em tempo de compilação, que o método emitirSom() da subclasse esteja sobrescrevendo corretamente um método da superclasse.
III. Caso o construtor da classe Cachorro não chamasse explicitamente super(nome), o código ainda compilariam normalmente, pois o construtor da superclasse é automaticamente herdado.
IV. A classe Cachorro especializa o comportamento da superclasse ao redefinir o método emitirSom(), caracterizando polimorfismo por sobrescrita.
Assinale a alternativa CORRETA:
Apenas I, II e IV estão corretas.
Apenas I e III estão corretas.
Apenas II e IV estão corretas.
Apenas I, II e III estão corretas.
I, II, III e IV estão corretas.


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
Na linguagem Java, a classe String é imutável, ou seja, uma vez criada, seu valor não pode ser alterado. Essa decisão possui implicações importantes no design da linguagem e na arquitetura da JVM. Nesse contexto, é correto afirmar que a principal razão arquitetural para a imutabilidade de String é:
Impedir completamente qualquer modificação interna da classe por mecanismos de reflexão.
Evitar o uso de padrões de projeto como Builder na manipulação de textos.
Garantir que seu valor não possa ser alterado após a criação, permitindo seu uso seguro em ambientes concorrentes e como chave em estruturas baseadas em hash.
Ter como principal objetivo aumentar o consumo de memória para melhorar o desempenho.
Permitir que a JVM execute cálculos matemáticos com maior precisão utilizando Strings.
Analise o seguinte programa em linguagem Java SE 11:
class A{
int valor = 10;
void mostrar(){
System.out.print(valor + " ");
}
}
class B extends A{
int valor = 20;
void mostrar(){
System.out.print(valor + " ");
}
void imprimir(){
super.mostrar();
mostrar();
}
}
public class Teste{
public static void main(String[] args){
B obj = new B();
obj.imprimir();
}
}
Assinale a alternativa que apresenta a saída produzida pelo programa.
10 10
20 20
10 20
20 10
Erro de compilação
Preencha as lacunas abaixo.
Em Java, os objetos da classe String são considerados __________, o que significa que seu conteúdo não pode ser alterado após a criação. Para situações em que é necessária a manipulação intensiva de sequências de caracteres com alterações frequentes de conteúdo, a classe __________ é mais eficiente por permitir modificações in-place.
A sequência de palavras que preenche corretamente as lacunas é:
dinâmicos / ArrayList
imutáveis / StringBuilder
estáticos / Scanner
constantes / Character
A linguagem Java utiliza ponteiros para o gerenciamento de endereços de memória, o que garante mais segurança para o uso do Garbage Collector.
Certo
Errado
A linguagem Java, ao implementar o conceito de nest, permite o acesso a membros private entre nestmates nativamente pela máquina virtual, dispensando o uso de métodos sintéticos.
Certo
Errado