Questões de Concurso
Comentadas sobre java em programação
Foram encontradas 1.752 questões
É uma ferramenta de gerenciamento de dependências e construção para projetos Java. Ele simplifica o processo de compilação, empacotamento e distribuição de projetos em Java, além de permitir a gestão de dependências de forma automática.
Para não se usar uma classe de forma incorreta como, por exemplo, uma classe que tem um método de divisão entre dois atributos da classe, se o técnico Java não conhecer a implementação interna da classe, ele pode inserir um valor zero no atributo do dividendo, porém se a classe estiver corretamente codificada pode-se impedir que o técnico faça isso. Esse tipo de impedimento é feito utilizando-se um dos princípios da orientação a objetos que embasa a implementação via alguns métodos usados no código:
package com.trt1l5.model;
public class Divisao {
private int num1;
private int num2;
public void divisao( ) {
System.out.printIn("A divisao e: “ + (num1 / num2));
}
public int getNum1( ) {
return num1;
}
public void setNum1 (int num1) {
this.num1 = num1;
}
public int getNum2( ) {
return num2;
}
public void setNum2 (int num2) {
if (num2 == 0) {
num2 = 1;
} else {
this.num2 = num2;
}
}
}
O conteúdo do texto exemplifica um dos conceitos conforme utilizado na orientação a objetos e o trecho de código implementa esse conceito usando dois métodos em conjunto.
O conceito e os métodos utilizados são, correta e respectivamente,
String[ ] nomes = {“Marta”", “Paulo”, "Carolina", “Joaquim", “Pedro"};
Considere, também, os laços de repetição abaixo, criados com o objetivo de percorrer o array e exibir seus valores.
I. for (String nome : nomes) {
System.out.println (nome);
}
II. for (int i = 0; i < nomes.length; i++) {
System.out.println (nomes[i]);
}
III. int indice = 0;
while (indice < nomes.length) {
System.out .println (nomes [indice]);
indice++;
}
IV. int index = 0;
do {
System.out .println (nomes [index]) ;
index++;
} while (index < nomes.length)
Percorre corretamente o array e exibe seus valores APENAS os laços de repetição que constam em
Em uma aplicação Java que utiliza MapStruct, em condições ideais, um usuário tem uma classe chamada Processo e uma chamada ProcessoDto. Deseja criar uma interface MapStruct chamada ProcessoMap para mapear de ProcessocDto para Processo & vice-versa. Essa interface deve ser anotada, imediatamente antes de sua declaração, com
Em uma aplicação Java que utiliza JPA, em condições ideais, considere manager um objeto válido criado por meio da instrução abaixo.
EntityManager manager =
Persistence.createEntityManagerFactory("trtPU").createEntityManager();
A instrução manager.createNamedQuery("Acesso.findByUserSenha", Acesso.class); irá retomar um objeto do tipo
Considere a seguinte função recursiva que calcula o n-ésimo número de Fibonacci.
public long fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
Agora, imagine que você deseja calcular o 50º número de Fibonacci usando essa função. No entanto, ao executar o código, ele levará muito tempo para concluir. Por que o cálculo do 50º número de Fibonacci usando essa função recursiva levará tanto tempo?
iReports é uma ferramenta de geração de relatórios de código aberto e gratuita, baseada em Java. Ela permite que desenvolvedores criem relatórios personalizados para aplicações web e desktop. iReports é uma ferramenta poderosa e flexível que pode ser usada para criar uma variedade de relatórios, desde os simples até os complexos.
A função do arquivo .jrxml em iReports é
Conside o seguinte código em Java.
Scanner scanner = new Scanner(System.in);
System.out.print(“Digite seu nome: “);
String nome = scanner.nextLine();
System.out.print(“Digite sua idade: “);
int idade = scanner.nextInt();
System.out.println(“Nome: “ + nome);
System.out.println(“Idade: “ + idade);
scanner.close();
A respeito de comandos de entrada e saída, pode-se afirmar que
A tecnologia Java tem especificações muito bem definidas para implementação de uma das principais características de uma linguagem de programação orientada a objetos, chamada polimorfismo. A respeito de polimorfismo em orientação a objetos com Java, analise as assertivas a seguir.
I. A utilização de herança com a implementação de sobrescrita de método pode ser uma técnica utilizada para implementar polimorfismo em Java.
II. Sobrecarga de método é uma técnica para redefinir métodos de classes pai para que possamos utilizar polimorfismo em Java.
III. A definição de interfaces e classes que implementam essas interfaces é uma das principais técnicas para a implementação de polimorfismo em Java.
É correto o que se afirma em
Um programador criou um código Java com a seguinte aplicação “ApplicationMeuApp.java” e salvou no pacote “MeuApp”. Adicionalmente, salvou as classes “Contact.java”, “DialUp.java” e “Adsl.java” no mesmo pacote. Os códigos dos referidos arquivos Java são apresentados a seguir:
Contact.java |
|
package MeuApp; public interface Contact( public void connect (); } |
DialUp.java |
|
package MeuApp: public class DialUp implements Contact { @override public void connect(){ System.out.println("DialUpdialing..."); } } |
Adsl.java |
|
package MeuApp; public class Adsl implements Contact f @override public void connect () 1 System.out.printin("Adsl dialing..."); } } |
ApplicationMeuApp.java |
|
package MeuApp: public class ApplicationMeuApp { public static void main(String[] args) { Contact DialUp = new DialUp(); DialUp.connect (); Contact Adsl = new Adsl(); Adsl.connect (); } } |
Analisando o código, considere as seguintes afirmações:
I – No código ocorre o conceito de herança.
II – No código ocorre o conceito de polimorfismo.
III – Os objetos DialUp e Adsl criados não fazem referência a um objeto do tipo Contact, mas se referenciam a partir da implementação do método connect.
Assinale a alternativa CORRETA:
Código fonte em Java para as questões 36 e 37.
import java.util.ArrayList;
public class MyTestef
public static void main(Stringl] args) 1
Stack s = new Stack();
s.push(1):
s.push(2):
s.push(3):
s.clear ();
s.push(4):
s.push(5):
s.push(6);
System.out.println(s);
}
private static class Stack extends ArrayList<Object>1
private int top = 0;
public void push(Object element){
add(top++, element);
}
public Object pop (){
return remove(--top);
}
}
}
O código implementa de uma estrutura de dados que estende uma classe concreta ArrayList para outra classe concreta Stack. A classe ArrayList possui alguns métodos como o add() (adiciona elementos na lista), o remove() (remove elementos da lista) e o clear() (que remove todos os elementos da lista).
Considere as afirmações relacionadas ao código fonte.
I – O método clear() não é executado porque ele não foi implementado na classe Stack.
II – A herança entre essas classes gera um alto grau de acoplamento.
III – Após a execução do método clear(), a variável top ficará desatualizada.
Está CORRETO o que consta em:
Código fonte em Java para as questões 36 e 37.
import java.util.ArrayList;
public class MyTestef
public static void main(Stringl] args) 1
Stack s = new Stack();
s.push(1):
s.push(2):
s.push(3):
s.clear ();
s.push(4):
s.push(5):
s.push(6);
System.out.println(s);
}
private static class Stack extends ArrayList<Object>1
private int top = 0;
public void push(Object element){
add(top++, element);
}
public Object pop (){
return remove(--top);
}
}
}
O código implementa de uma estrutura de dados que estende uma classe concreta ArrayList para outra classe concreta Stack. A classe ArrayList possui alguns métodos como o add() (adiciona elementos na lista), o remove() (remove elementos da lista) e o clear() (que remove todos os elementos da lista).
Após executar o código, qual será o resultado?
Código fonte em Java para as questões 34 e 35.
package com.example. demo;
public class MyCalc {
public static void main(String[] args) {
double amount = 1000;
double intRate = 2;
int period = 12;
CalcSrv c = new CalcSrv(new CalcLC());
double fv = c.fValue (amount, intRate, period);
System.out.printf("VF of LC:%.2\n", fv);
c = new CalcSrv (new CalcCDB());
fv = c.fValue(amount,intRate, period);
System.out.printf("VE of CDB:%.2f", fv);
}
private static class CalcSrv {
private CalcFV calcsrv;
public CalcSrv(CalcFV calcsrv) {
this.calcsryv = calesrv;
}
public double fvalue(double amount, double intRate, int period) {
amount = amount + calcsrv.calc(amount, intRate, period);
return amount;
}
}
interface CalcFV {
double calc(double amount, double intRate, int period);
}
private static class CalcLC implements CalcFV{
@Override
public double calc(double amount, double intRate, int period)
return (amount * Math.pow(1 + intRate/100, period)) - amount;
}
}
private static class CalcCDB implements CalcFV{
@Override
public double calc(double amount, double intRate, int period){
double fv = amount * Math.pow(1 + intRate/100, period);
if (period >12)
return (fv - amount) * 0.85;
return (fv - amount) * 0.78;
}
}
}
Considere os princípios e padrões de projetos implementados no código.
I – Injeção de dependência
II – Inversão de controle
III – Injeção por construtor
Está CORRETO o que consta em:
A seguir, é apresentado um código que implementa uma estrutura de dados utilizando a linguagem de programação Java. A classe LinkedList é uma implementação de fila convencional e utiliza o método add() para incluir um elemento na fila e o remove() para removê-lo. A classe Stack implementa uma pilha e utiliza o método push() para empilhar e o pop() para desempilhar.
import java.util.Stack;
import java.util.Queue;
import java.util.LinkedList;
public class Tad {
public static void main(String[] args) {
Stack<String> s = new Stack<String>();
Queue<String> q = new LinkedList<String> O;
s.push("Z");
s.push("X");
q.add(s.pop());
s.push("y");
q.add(s.pop());
q.add ("W");
q.add(s.pop());
q.add(q.remove());
s.push("H");
s.push(q.remove());
q.remove();
System.out.print("stack: " + s);
System.out.println(", Queue: "+ g):
}
}
Após a execução, qual é a saída do programa acima?