Questões de Concurso sobre JAVA*

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
2.504 questões encontradas
Questões por página
20
Mais recentes
 

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 é


A

um módulo externo sem atributos.


B

o modelo de um objeto executável.


C

uma variável do tipo primitivo.


D

uma função que cria listas.


E

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?


A

lista.forEach(System.out::println);


B

lista.forEach(s -> System.out.println);


C

lista.forEach(s -> System.out.println(s));


D

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:


A

II e III apenas.


B

I, II e III.


C

I apenas.


D

I e III apenas.

Analise o seguinte programa escrito em Java conforme a especificação Java SE 11:


Imagem associada para resolução da questão


Considerando o comportamento do polimorfismo, qual será a saída produzida pela execução do programa?


A

A A


B

B B


C

B C


D

B B C


E

B B C C

Sobre o uso de polimorfismo, considere o trecho de código Java, que contém uma lacuna identificada por “”:


Imagem associada para resolução da questão


Para que o programa imprima exatamente “Ana:Aluno | Bruno:Professor”, qual das alternativas apresenta a melhor expressão para substituir a lacuna ?


A

p1.nome + ":" + p1.papel() + " | " + p2.nome + ":" + p2.papel()


B

p1.getNome() + ":" + p1.papel() + " | " + p2.getNome() + ":" + p2.papel()


C

p1.getNome() + ":" + p1.toString() + " | " + p2.getNome() + ":" + p2.toString()


D

p1.getNome() + ":" + Pessoa.papel() + " | " + p2.getNome() + ":" + Pessoa.papel()


E

((Aluno)p1).getNome() + ":" + ((Aluno)p1).papel() + " | " + ((Professor)p2).getNome() + ":" + ((Professor)p2).papel()

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:


A

XXX.campo1


B

XXX.campo2


C

YYY.campo3


D

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:


A

public sealed class CA permits CB, CC, CD


B

public final class CA permits CB, CC, CD


C

public class CA extended by CB, CC, CD


D

public final class CA extends CB, CC, CD


E

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.


A

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.


B

Apesar de o conceito de reflexão computacional existir na linguagem Java ele não pode ser utilizado para resolver o problema do enunciado.


C

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.


D

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:


A

Write Once, Run Anywhere (WORA).


B

Compile Once, Deploy Locally (CODL).


C

Build Once, Execute Specifically (BOES).


D

Interpret Everywhere, Compile Nowhere (IECN).


E

Code Once, Rewrite Always (CORA).

Qual é a principal diferença conceitual entre uma interface e uma classe abstrata em Java, considerando suas capacidades e seus propósitos de design?


A

Interfaces podem ter construtores, enquanto classes abstratas não.


B

Classes abstratas podem implementar múltiplas interfaces, mas interfaces não podem estender múltiplas classes abstratas.


C

Interfaces definem um contrato de comportamento sem implementação de estado, enquanto classes abstratas podem ter estado (atributos) e implementações parciais.


D

Interfaces podem ter métodos estáticos e privados, mas classes abstratas não.


E

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.


Imagem associada para resolução da questão


A

B F A


B

B A F


C

F B A


D

B F


E

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:


A

I, II e III.


B

III, apenas.


C

II e III, apenas.


D

I e II, apenas.


E

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?


A

strictfp.


B

throws.


C

protected.


D

synchronized.


E

transient.

Considere o seguinte código em Java:


Imagem associada para resolução da questão


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:


A

Apenas I, II e IV estão corretas.


B

Apenas I e III estão corretas.


C

Apenas II e IV estão corretas.


D

Apenas I, II e III estão corretas.


E

I, II, III e IV estão corretas.

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 é:


A

Impedir completamente qualquer modificação interna da classe por mecanismos de reflexão.


B

Evitar o uso de padrões de projeto como Builder na manipulação de textos.


C

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.


D

Ter como principal objetivo aumentar o consumo de memória para melhorar o desempenho.


E

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.


A

10 10


B

20 20


C

10 20


D

20 10


E

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 é:


A

dinâmicos / ArrayList


B

imutáveis / StringBuilder


C

estáticos / Scanner


D

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.


C

Certo


E

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.


C

Certo


E

Errado

 
Ir para a página:
OK
 
Gerar simulado