Buscar

21-Linguagem Orientada a Objetos-Exercicios

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 23 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

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 6, do total de 23 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

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 9, do total de 23 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

Prévia do material em texto

Page 2 of 2
UNIDADE 1 - Conceitos do Desenvolvimento Orientado a Objetos – tentativa 1
Questão 1
Correta
Questão com problema?
A linguagem Java é uma linguagem orientada a objetos. Uma linguagem orientada a objetos pode ser entendida como uma evolução da programação estruturada. Considere a seguinte assinatura de um método qualquer: public void fazalgo(float x, int y). 
A respeito da linguagem Java e desse método acima avalie as afirmações que se seguem:
 
I. Esse método recebe dois argumentos o primeiro do tipo float e o segundo do tipo int. 
II. Esse método não retorna nenhum tipo de valor. 
III. Esse método pode ser invocado pelo nome fazalgo(5, 3).
IV. Esse método pode ser invocado pelo nome fazalgo(5.0, 3.0).
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
I, II e III apenas.
Comentário
As afirmações corretas são as I, II e III. A afirmação IV é falsa, pois não se pode invocar o método com fazalgo(5.0, 3.0). Lembre-se que fazalgo recebe dois argumentos o primeiro do tipo float (assim 5.0 é do tipo float e está tudo ok), mas o segundo argumento é to tipo int (assim 3.0 é do tipo float e não do tipo int). Assim, o método fazalgo(5.0, 3.0) não pode ser chamado dessa forma, deveria ser, por exemplo, dessa forma fazalgo(5.0, 3).
Questão 2
Correta
Questão com problema?
A linguagem Java segue o paradigma orientado a objetos, podemos pensar nesse paradigma como sendo uma evolução da programação procedural. Dessa maneira, a linguagem Java possui os conceitos de classe e objetos. Tomando como base esses conceitos de classe e objeto, responda.
Marque a alternativa que apresenta corretamente a ideia de classe e objeto.
Sua resposta
Correta
Uma classe é a modelagem de um problema ou algo. Já o objeto é uma instância de uma classe.
Comentário
A alternativa que apresenta corretamente a ideia de classe e objeto é a que afirma que: Uma classe é a modelagem de um problema ou algo. Já o objeto é uma instância de uma classe. Todas as outras alternativas estão erradas.
Questão 3
Correta
Questão com problema?
A linguagem Java possui quatro grandes pilares que são: classe, objeto, método e atributo. Com base no que você aprendeu sobre esses pilares, associe a Coluna A, que apresenta os pilares mencionados, com a Coluna B, que apresenta alguns trechos de código relacionado a alguns desses pilares:
 
	Coluna A 
	Coluna B 
	1. Classe 
	I. Carro carro = new Carro(); 
	2. Objeto 
	II. int anoCarro = 2020; 
	3. Método 
	III. public void marcaCarro(){}   
	4. Atributo 
	IV. public class Carro {} 
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
1 – IV; 2 – I; 3 – III; 4 – II.
Comentário
A alternativa que apresenta a associação correta é 1 – IV; 2 – I; 3 – III; 4 – II. Assim, o trecho de código public class Carro {} realiza a declaração de uma classe. O trecho de código Carro carro = new Carro(); contém uma declaração de objeto. O trecho de código public void marcaCarro(){} contém um método. E, por fim, o trecho  de código int anoCarro = 2020; contém a declaração de um atributo.
Questão 4
Correta
Questão com problema?
A ferramenta Alice é uma ferramenta utilizada para criação de animações e jogos 3D. Com base no software Alice, avalie as afirmações que se seguem:
I. Pode-se criar formas de interação com personagens utilizando eventos baseados no mouse.
II. Pode-se criar formas de interação com personagens utilizando eventos baseados no teclado.
III. Pode-se criar formas de interação com personagens utilizando eventos baseados no tempo.
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
I, II e III apenas.
Comentário
As afirmações apresentadas acima corretas são I, II e III. Na ferramenta Alice existem essas três formas de interação com os personagens criados. Assim, pode-se interagir com eles através de cliques de mouse, através do pressionar de teclas do teclado e também através de tempo.
Questão 5
Correta
Questão com problema?
Um programa em Java, assim como, todo programa de computador precisa de um ponto de entrada da aplicação. Um programa desenvolvido na linguagem C possui duas possíveis assinaturas para ponto de entrada, que são:
I. int main()
II. int main(int argc, char argv[])
Marque a alternativa que apresenta a assinatura correta do ponto de entrada de uma aplicação desenvolvida em Java.
Sua resposta
Correta
public static void main(String[] args)
Comentário
A alternativa que apresenta a assinatura do ponto de entrada de uma aplicação Java é a que possui a assinatura: public static void main(String[] args). O método deve se chamar main, não deve retornar nenhum valor (void), deve ser um método da classe (static), deve ser um método público (public) e, por fim, deve receber um vetor de Strings.
UNIDADE 1 - Conceitos do Desenvolvimento Orientado a Objetos – tentativa 2
Igual a primeira
UNIDADE 2 - Estruturas do Desenvolvimento Orientado a Objetos - tentativa 1
Questão 1
Incorreta
Questão com problema?
A linguagem Java dá suporte aos conceitos de sobrecarga e sobreposição de métodos. Com base no que você aprendeu sobre a linguagem Java, associe a Coluna A, que apresenta a sobrecarga e a sobreposição de métodos, com a Coluna B, que apresenta algumas características desses tipos de métodos:
 
	Coluna A 
	Coluna B 
	1. Sobreposição 
	I. Argumentos devem ser trocados 
	2. Sobrecarga 
	II. Argumentos não devem ser trocados 
	 
	III. Tipo de retorno pode ser trocado.  
	 
	IV. Tipo de retorno não pode ser trocado. 
	 
	V. Ocorre entre duas classes. 
	 
	VI. Ocorre em uma classe.  
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Incorreta
1 – I; 1 – III; 1 - VI; 2 – II; 2 – IV; 2 – V.
Solução esperada
1 – II; 1 – IV; 1 - V; 2 – I; 2 – III; 2 – VI.
Comentário
A alternativa que apresenta a associação correta é 1 – II; 1 – IV; 1 - V; 2 – I; 2 – III; 2 – VI. Na sobreposição os argumentos não devem ser trocados, o tipo de retorno não pode ser trocado e ocorre entre duas classes. Na sobrecarga os argumentos devem ser trocados, o tipo de retorno pode ser trocado e ocorre em uma classe apenas.
Questão 2
Correta
Questão com problema?
A linguagem Java segue o paradigma orientado a objetos. A mesma suporta uma série de recursos como definição de construtores, métodos e herança. Tendo esses conceitos em mente, avalie as afirmações que se seguem:
 
I. Um construtor com a assinatura “public Matematica(inta, int b)” pode ser chamado de construtor padrão. 
II. Um método com a assinatura “static int mult(int a, int b)” pode ser chamado de método de classe. 
III. Uma classe com a assinatura “public class A extends B” indica que a classe B herda a classe A.
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
II apenas.
Comentário
Apenas a afirmação II está correta. Um construtor com a assinatura “public Matematica(int a, int b)” é um construtor não-padrão. Uma classe com a assinatura “public class A extends B” indica que a classe A herda a classe B.
Questão 3
Correta
Questão com problema?
A linguagem Java possui um conjunto de comandos para realizar a repetição. Alguns desses comandos são o for, o while e o do-while. Tendo esses comandos em mente, avalie as afirmações que se seguem: 
 
I. Os comandos for, while e do-while são comandos de repetição e possuem todos o mesmo poder de expressão. 
II. O comando for é um comando de repetição, mais expressivo (no sentido de que consegue resolver mais problemas) do que o comando while. 
III. O comando while é um comando de repetição, mais expressivo (no sentido de que consegue resolver mais problemas) do que o comando do-while. 
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
I apenas.
Comentário
A afirmação correta apresentada acima é apenas a I. Assim, os comandos for, while e do-while são comandos de repetição e possuem todos o mesmo poder de expressão. Pode-se converter um tipo de estrutura na outrade forma relativamente fácil.
Questão 4
Correta
Questão com problema?
A linguagem Java segue o paradigma de desenvolvimento orientado a objetos. A mesma possui um conjunto de características próprias. Tomando como base as características da linguagem Java, responda à pergunta a seguir.
Assinale a alternativa que apresenta algumas das características presentes da linguagem Java.
Sua resposta
Correta
A linguagem Java é case-sensitive, ou seja, os nomes utilizados são sensíveis a maiúsculas e minúsculas. As classes em Java, por default, têm um construtor padrão. A anotação em Java @Override indica a sobreposição de métodos.
Comentário
A alternativa que apresenta algumas características da linguagem Java é a que afirma: A linguagem Java é case-sensitive, ou seja, os nomes utilizados são sensíveis a maiúsculas e minúsculas. As classes em Java, por default, têm um construtor padrão. A anotação em Java @Override indica a sobreposição de métodos.
Questão 5
Correta
Questão com problema?
A linguagem Java possui operadores de incremento e decremento. Em que se destacam os operadores de pré-incremento, pós-incremento, pré-decremento e pós-decremento. Com base no que você aprendeu sobre esses operadores em Java e considerando o valor de x = 5, associe a Coluna A, que apresenta algumas operações, com a Coluna B, que apresenta os possíveis resultados da operação:
 
	Coluna A 
	Coluna B 
	1. ++x 2 - 2 
	I. 8 
	2. 3 --x 
	II. 10 
	3. x++ 2 - 2 
	III. 12 
	4. 3 x++ 
	IV. 15 
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
1 – II; 2 – III; 3 – I; 4 – IV.
Comentário
A alternativa que apresenta a associação correta é a 1 – II; 2 – III; 3 – I; 4 – IV. Explicação. ++x 2 - 2 = ++5 2 - 2 = 6 2 - 2 = 12 - 2 = 10 3 --x = 3 --5 = 3 4 = 12 x++ 2 - 2 = 5++ 2 - 2 = 5 2 - 2 = 10 - 2 = 8 3 x++ = 3 5++ = 3 5 = 15
UNIDADE 2 - Estruturas do Desenvolvimento Orientado a Objetos - tentativa 2
Igual a primeira
UNIDADE 3 - Desenvolvimento De Classes Abstratas, Exceções E Interfaces Orientada A Objetos – tentativa 1
Questão 1
Correta
Questão com problema?
A linguagem Java possui suporte a tratamento de exceção. Existem diversas classes que tratam as exceções, em que podemos destacar: ArithmeticException, NumberFormatException, NullPointerException e ArrayIndexOutOfBoundsException. Com base no que você aprendeu sobre tratamento de exceção, associe a Coluna A, que apresenta as classes mencionadas, com a Coluna B, que apresenta uma linha de código que gera uma dessas exceções:
 
	Coluna A 
	Coluna B 
	1. Arithmetic
Exception
	I. String indiceNeg = args[-1];
	2. Number
FormatException
	II. int refNull = Integer.parseInt(null);
	3. ArrayIndexOut
OfBoundsException
	III. int divPor0 = 5/0;
	4. NullPointer
Exception
	IV. int valStr = Integer.parseInt("A");
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
1 – III; 2 – IV; 3 – I; 4 – II.
Comentário
A alternativa que apresenta a associação correta é 1 – III; 2 – IV; 3 – I; 4 – II. Assim, a exceção ArithmeticException está associada a divisão 5/0. A exceção NumberFormatException está associada a conversão do valor “A” para inteiro. A exceção ArrayIndexOutOfBoundsException está associada ao argumento negativo no vetor. A exceção NullPointerException está associada ao argumento do tipo null.
Questão 2
Correta
Questão com problema?
A linguagem Java possui suporte a criação de interfaces. Esse conceito ajuda a contornar a limitação de não permitir a herança múltipla. Com base nesse conceito de interface, avalie as afirmações que se seguem:
I. A interface Comparable é utilizada para impor uma ordem nos objetos de uma determinada classe. Para isso deve-se implementar o método compareTo. 
II. A interface Runnable é utilizada para especificar alguma tarefa que a ser realizada. Para isso deve-se implementar o método run. 
III. A interface Serializable é utilizada para identificar classes em que os objetos podem ser gravados ou lidos de algum dispositivo de armazenamento, como HD. 
IV. As interfaces Comparable, Runnable e Serializable em suas implementações fazem uso avançado de recursos do Java. 
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
I, II e III apenas.
Comentário
As afirmações apresentadas acima corretas são I, II e III apenas. Dessa maneira, apenas a afirmação IV é falsa, ou seja, as interfaces Comparable, Runnable e Serializable são super simples e não fazem uso de recursos avançados do Java. Mesmo não fazendo nada complexo essas três interfaces são muito importantes e são muito utilizadas.
Questão 3
Correta
Questão com problema?
A linguagem Java é uma linguagem orientada a objetos que possui um importante recurso chamado asserção. A respeito da linguagem Java e das asserções avalie as afirmações que se seguem:
I. Caso a expressão condicional da asserção seja verdadeira uma exceção é disparada. 
II. A asserção dispara uma exceção do tipo AssertionError.
III. A exceção AssertionError possui Exception como superclasse em sua hierarquia.
IV. A exceção AssertionError possui Throwable como superclasse em sua hierarquia. 
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
II e IV apenas.
Comentário
As afirmações corretas são as II e IV. A afirmação I é falsa, pois a exceção é disparada somente se a condicional for falsa e não verdadeira. A afirmação III é falsa, pois AssertionError não possui Exception como superclasse em sua hierarquia, a exceção AssertionError é subclasse de Error que por sua vez é subclasse de Throwable.
Questão 4
Correta
Questão com problema?
A linguagem Java é uma linguagem orientada a objetos e possui suporte a asserções. Esse recurso auxilia no desenvolvimento de aplicações e as mantém limpas quando as mesmas forem para a etapa de produção na linha de desenvolvimento de software.
Marque a alternativa que apresenta corretamente a sintaxe de asserção em Java.
Sua resposta
Correta
assert(ExprLógica) : “MsgDeAviso”;
Comentário
 A alternativa que apresenta a sintaxe de asserção em Java correta é: assert (ExprLógica) : “MsgDeAviso”;. Assim, a palavra-reservada utilizada é a assert seguida por uma expressão lógica. Em seguida, são utilizados os dois pontos e então uma mensagem é especificada para deixar a asserção mais intuitiva. Lembrando que a mensagem é opcional.
Questão 5
Correta
Questão com problema?
A linguagem Java suporta a criação de classes concretas e abstratas. As classes concretas permitem que sejam criados atributos, métodos, herdar outras classes, instanciar estas classes, entre outras coisas. Tomando como base o que você aprendeu sobre classes concretas e abstratas, responda.
Marque a alternativa que apresenta corretamente a ideia de classe abstrata.
Sua resposta
Correta
Uma classe abstrata representa uma abstração de alguma entidade, assim não podemos fazer a instanciação dessa classe.
Comentário
A alternativa que apresenta corretamente a ideia de classe abstrata é a que afirma que: Uma classe abstrata representa uma abstração de alguma entidade, assim não podemos fazer a instanciação dessa classe. Todas as outras afirmações estão erradas.
UNIDADE 3 - Desenvolvimento De Classes Abstratas, Exceções E Interfaces Orientada A Objetos – tentativa 2
Igual a primeira
UNIDADE 4 - Aplicações Orientada A Objetos Tentativa 1
Questão 1
Correta
Questão com problema?
A linguagem Java possui três importantes classes para manipulação de valores literais que são: String, StringBuilder e StringBuffer. Avalie as linhas de código mostradas a seguir.
String s1 = new String(“conteudo”);
String s2 = new String(“conteudo”);
String s3 = “conteudo”;
String s4 = “conteudo”;
Tomando como base o que você aprendeu sobre essas classes, avalie as afirmações que se seguem:
I. Ao se comparar s1 == s2 é retornando verdadeiro.
II. Ao se comparar s1 == s3 é retornando verdadeiro.
III. Ao se comparar s3 == s4 é retornando verdadeiro.
IV. Ao se comparar s2 == s4 é retornando verdadeiro.
Considerandoas afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
III apenas.
Comentário
Apenas a afirmação III está correta. As strings s1 e s2 estão armazenadas na memória heap. As strings s3 e s4 estão armazenadas na memória string pool. Assim, como a memória string pool junta conteúdos iguais em um só lugar é que a comparação de s3 e s4 será retornado verdadeiro. Lembre-se foi utilizado o comparador de == e não o comparador equals. O método equals compara os conteúdos, já o operador == comparada o endereço de memória dos objetos.
Questão 2
Incorreta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays unidimensionais. Essa estrutura de dados é muito robusta, pois conseguem armazenar um grande volume de dados. Tomando como base o uso de vetores em Java, analise o código a seguir. 
	public void calcula() { 
    double resultado = 0; 
    double vet[] = {5, 2.5, 6, 1, -3}; 
    for (double v : vet) { 
        resultado += v; 
    } 
    for (double v : vet) { 
        resultado += v - 3; 
    } 
    System.out.println(resultado); 
} 
Assinale a alternativa que apresenta o resultado que será impresso na tela.
Sua resposta
Incorreta
9.
Solução esperada
8.
Comentário
A alternativa que apresenta o resultado que será impresso na tela é 8. É importante destacar que o primeiro laço for soma todos os valores do vetor, ou seja, 5 + 2.5 + 6 + 1 + (-3) = 11.5. O segundo laço for soma também todos os valores do vetor subtraído três. Assim no segundo laço temos: 11.5 + (5 - 3) + (2.5 - 3) + (6 - 3) + (1 - 3) + (-3 - 3) = 11.5 + 2 + (-0.5) + 3 + (-2) + (-6) = 8. Assim, o valor impresso será oito (8).
Questão 3
Correta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays multidimensionais. Essa estrutura de dados é muito robusta, pois conseguem armazenar um grande volume de dados. Tomando como base o uso de matrizes bidimensionais em Java, analise o código a seguir. 
	public void calcula2() { 
    int resultado = 0; 
    int mat[][] = {{2, 4, 7}, {6, 3}, {5, 1, 9, 2}}; 
    for (int i = 0; i < mat.length; i++) { 
        for (int j = 0; j < mat[i].length; j++) { 
            resultado += mat[i][j]; 
        } 
    } 
    System.out.println(resultado); 
} 
Assinale a alternativa que apresenta o resultado que será impresso na tela.
Sua resposta
Correta
39.
Comentário
A alternativa que apresenta o resultado que será impresso na tela é 39. É importante destacar que o que esse código faz é a soma de todos os elementos da matriz isso é feito através dos dois laços for aninhados. Assim, basta somar o conteúdo da matriz. Assim temos: (2 + 4 + 7) + (6 + 3) + (5 + 1 + 9 + 2) = 13 + 9 + 17 = 39. Assim, o valor impresso será 39.
Questão 4
Incorreta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays unidimensionais e multidimensionais. Essas estruturas são robustas pois conseguem armazenar um grande volume de dados. Nesse contexto, avalie as afirmações que se seguem:  
I. A declaração de uma matriz bidimensional pode ser feita da seguinte forma: 
tipo nomeMat[][]; 
II. A alocação de espaço de uma matriz bidimensional pode ser feita da seguinte forma: 
nomeMat = new tipo[tamX][tamY]; 
III. A declaração e alocação de uma matriz bidimensional pode ser feita da seguinte forma:
tipo nomeMat[][] = new [tamX][tamY]; 
IV. O acesso a uma posição de uma matriz bidimensional pode ser feito da seguinte forma:
nomeMat[indiceX][indiceY] 
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Incorreta
I e IV apenas.
Solução esperada
I, II e IV apenas.
Comentário
As afirmações corretas são I, II e IV. A afirmação III é falsa, pois o código está incompleto. O código correto é da seguinte forma: tipo nomeMat[][] = new tipo[tamX][tamY];  Assim, ficou faltando o tipo do vetor que pode ser de um tipo primitivo ou derivado. Todas as outras afirmações estão corretas. Algumas dessas operações podem ser feitas de outras maneiras, mas isso não invalida as formas apresentadas acima.
Questão 5
Correta
Questão com problema?
A linguagem Java possui três importantes classes para manipulação de valores literais que são: String, StringBuilder e StringBuffer. Com base no que você aprendeu sobre as classes strings em Java, associe a Coluna A, que apresenta essas duas classes (String e StringBuffer), com a Coluna B, que apresenta algumas características dessas classes: 
	Coluna A 
	Coluna B 
	1. Classe String 
	I. É mutável. 
	2. Classe StringBuffer 
	II. É imutável. 
	 
	III. É thread safe.  
	 
	IV. Não é thread safe. 
	 
	V. Utiliza memória heap. 
	 
	VI. Utiliza memória string pool e heap.  
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
1 – II; 1 – IV; 1 - VI; 2 – I; 2 – III; 2 – V.
Comentário
A alternativa que apresenta a associação correta é 1 – II; 1 – IV; 1 - VI; 2 – I; 2 – III; 2 – V. Assim, a classe String é imutável não é thread safe e utiliza as memórias string pool e heap. Já a classe StringBuffer é mutável é thread safe e utiliza memória heap.
UNIDADE 4 - Aplicações Orientada A Objetos Tentativa 2
Questão 1
Correta
Questão com problema?
A linguagem Java possui três importantes classes para manipulação de valores literais que são: String, StringBuilder e StringBuffer. Avalie as linhas de código mostradas a seguir.
String s1 = new String(“conteudo”);
String s2 = new String(“conteudo”);
String s3 = “conteudo”;
String s4 = “conteudo”;
Tomando como base o que você aprendeu sobre essas classes, avalie as afirmações que se seguem:
I. Ao se comparar s1 == s2 é retornando verdadeiro.
II. Ao se comparar s1 == s3 é retornando verdadeiro.
III. Ao se comparar s3 == s4 é retornando verdadeiro.
IV. Ao se comparar s2 == s4 é retornando verdadeiro.
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
III apenas.
Comentário
Apenas a afirmação III está correta. As strings s1 e s2 estão armazenadas na memória heap. As strings s3 e s4 estão armazenadas na memória string pool. Assim, como a memória string pool junta conteúdos iguais em um só lugar é que a comparação de s3 e s4 será retornado verdadeiro. Lembre-se foi utilizado o comparador de == e não o comparador equals. O método equals compara os conteúdos, já o operador == comparada o endereço de memória dos objetos.
Questão 2
Correta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays multidimensionais. Essa estrutura de dados é muito robusta, pois conseguem armazenar um grande volume de dados. Tomando como base o uso de matrizes bidimensionais em Java, analise o código a seguir. 
	public void calcula2() { 
    int resultado = 0; 
    int mat[][] = {{2, 4, 7}, {6, 3}, {5, 1, 9, 2}}; 
    for (int i = 0; i < mat.length; i++) { 
        for (int j = 0; j < mat[i].length; j++) { 
            resultado += mat[i][j]; 
        } 
    } 
    System.out.println(resultado); 
} 
Assinale a alternativa que apresenta o resultado que será impresso na tela.
Sua resposta
Correta
39.
Comentário
A alternativa que apresenta o resultado que será impresso na tela é 39. É importante destacar que o que esse código faz é a soma de todos os elementos da matriz isso é feito através dos dois laços for aninhados. Assim, basta somar o conteúdo da matriz. Assim temos: (2 + 4 + 7) + (6 + 3) + (5 + 1 + 9 + 2) = 13 + 9 + 17 = 39. Assim, o valor impresso será 39.
Questão 3
Correta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays unidimensionais e multidimensionais. Essas estruturas são robustas pois conseguem armazenar um grande volume de dados. Nesse contexto, avalie as afirmações que se seguem:  
I. A declaração de uma matriz bidimensional pode ser feita da seguinte forma: 
tipo nomeMat[][]; 
II. A alocação de espaço de uma matriz bidimensional pode ser feita da seguinte forma: 
nomeMat = new tipo[tamX][tamY];III. A declaração e alocação de uma matriz bidimensional pode ser feita da seguinte forma:
tipo nomeMat[][] = new [tamX][tamY]; 
IV. O acesso a uma posição de uma matriz bidimensional pode ser feito da seguinte forma:
nomeMat[indiceX][indiceY] 
Considerando as afirmações apresentadas acima, é correto o que se afirma em:
Sua resposta
Correta
I, II e IV apenas.
Comentário
As afirmações corretas são I, II e IV. A afirmação III é falsa, pois o código está incompleto. O código correto é da seguinte forma: tipo nomeMat[][] = new tipo[tamX][tamY];  Assim, ficou faltando o tipo do vetor que pode ser de um tipo primitivo ou derivado. Todas as outras afirmações estão corretas. Algumas dessas operações podem ser feitas de outras maneiras, mas isso não invalida as formas apresentadas acima.
Questão 4
Correta
Questão com problema?
A linguagem Java permite a criação de estruturas de dados homogêneas como os arrays unidimensionais. Essa estrutura de dados é muito robusta, pois conseguem armazenar um grande volume de dados. Tomando como base o uso de vetores em Java, analise o código a seguir. 
	public void calcula() { 
    double resultado = 0; 
    double vet[] = {5, 2.5, 6, 1, -3}; 
    for (double v : vet) { 
        resultado += v; 
    } 
    for (double v : vet) { 
        resultado += v - 3; 
    } 
    System.out.println(resultado); 
} 
Assinale a alternativa que apresenta o resultado que será impresso na tela.
Sua resposta
Correta
8.
Comentário
A alternativa que apresenta o resultado que será impresso na tela é 8. É importante destacar que o primeiro laço for soma todos os valores do vetor, ou seja, 5 + 2.5 + 6 + 1 + (-3) = 11.5. O segundo laço for soma também todos os valores do vetor subtraído três. Assim no segundo laço temos: 11.5 + (5 - 3) + (2.5 - 3) + (6 - 3) + (1 - 3) + (-3 - 3) = 11.5 + 2 + (-0.5) + 3 + (-2) + (-6) = 8. Assim, o valor impresso será oito (8).
Questão 5
Correta
Questão com problema?
A linguagem Java possui três importantes classes para manipulação de valores literais que são: String, StringBuilder e StringBuffer. Com base no que você aprendeu sobre as classes strings em Java, associe a Coluna A, que apresenta essas duas classes (String e StringBuffer), com a Coluna B, que apresenta algumas características dessas classes: 
	Coluna A 
	Coluna B 
	1. Classe String 
	I. É mutável. 
	2. Classe StringBuffer 
	II. É imutável. 
	 
	III. É thread safe.  
	 
	IV. Não é thread safe. 
	 
	V. Utiliza memória heap. 
	 
	VI. Utiliza memória string pool e heap.  
A seguir, assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
1 – II; 1 – IV; 1 - VI; 2 – I; 2 – III; 2 – V.
Comentário
A alternativa que apresenta a associação correta é 1 – II; 1 – IV; 1 - VI; 2 – I; 2 – III; 2 – V. Assim, a classe String é imutável não é thread safe e utiliza as memórias string pool e heap. Já a classe StringBuffer é mutável é thread safe e utiliza memória heap.

Continue navegando